forked from aspnet/AspNetWebStack
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathInstall.cshtml
More file actions
91 lines (77 loc) · 3.21 KB
/
Install.cshtml
File metadata and controls
91 lines (77 loc) · 3.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
@* Generator: WebPage *@
@using System.Globalization;
@using System.IO;
@using System.Linq;
@using NuGet;
@section PackageHead {
<script type="text/javascript" src="@Href("scripts/PackageAction.js")"></script>
<noscript>@PackageManagerResources.JavascriptRequired</noscript>
}
@{
// Read params from request
var sourceName = Request["source"];
var packageId = Request["package"];
var version = Request["version"];
var packageSource = PageUtils.GetPackageSource(sourceName);
WebProjectManager projectManager;
try {
projectManager = new WebProjectManager(packageSource.Source, PackageManagerModule.SiteRoot);
} catch (Exception exception) {
<div class="error message">@exception.Message</div>
return;
}
IPackage package = projectManager.SourceRepository.FindPackage(packageId, version != null ? SemanticVersion.Parse(version) : null);
if (package == null) {
ModelState.AddFormError(PackageManagerResources.BadRequest);
@Html.ValidationSummary()
return;
}
Page.SectionTitle = String.Format(CultureInfo.CurrentCulture, PackageManagerResources.InstallPackageDesc, package.GetDisplayName());
var packagesHomeUrl = Href(PageUtils.GetPackagesHome(), Request.Url.Query);
if (IsPost) {
AntiForgery.Validate();
try {
projectManager.InstallPackage(package);
} catch (Exception exception) {
ModelState.AddFormError(exception.Message);
}
if (ModelState.IsValid) {
Response.Redirect(packagesHomeUrl + "&action-completed=Install");
}
else {
@Html.ValidationSummary(String.Format(CultureInfo.CurrentCulture, PackageManagerResources.PackageInstallationError, package.GetDisplayName()))
return;
}
}
}
@RenderPage("_PackageDetails.cshtml", new Dictionary<string, object>{ {"Package", package} })
@{
var licensePackages = projectManager.GetPackagesRequiringLicenseAcceptance(package);
if (licensePackages.Any()) {
<hr />
<ul>
@foreach(var licensePackage in licensePackages.Where(p => PageUtils.IsValidLicenseUrl(p.LicenseUrl))){
<li>
<strong>@licensePackage.Id @licensePackage.Version</strong>
(@PackageManagerResources.AuthorsLabel: <span class="package-author">@String.Join(PackageManagerResources.WordSeparator, licensePackage.Authors)</span>)
<br />
<a href="@licensePackage.LicenseUrl" target="_blank">@PackageManagerResources.ViewLicenseTerms</a>
</li>
}
</ul>
}else {
<br />
<hr />
}
}
<form method="post" action="" id="submitForm">
<p>@PackageManagerResources.Disclaimer</p>
<fieldset class="no-border install">
<input type="hidden" name="source" value="@sourceName" />
<input type="hidden" name="package" value="@packageId" />
<input type="hidden" name="version" value="@version" />
@AntiForgery.GetHtml()
<input type="submit" value="@PackageManagerResources.InstallPackage" />
<input type="reset" value="@PackageManagerResources.Cancel" data-returnurl="@packagesHomeUrl" />
</fieldset>
</form>