Skip to content

Commit 1022906

Browse files
committed
Merge pull request #1 from postsharp/feature/story-13182
2 parents b7b36b1 + 4ad4fcd commit 1022906

File tree

9 files changed

+257
-139
lines changed

9 files changed

+257
-139
lines changed

.nuget/nuget.exe

3.61 MB
Binary file not shown.

src/PostSharp.LicenseServer/Admin/Details.aspx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,12 @@
3434

3535
</p>
3636

37+
<p>
38+
<asp:LinkButton ID="disableHyperlink" runat="server" Text="Disable license key" OnClick="disableHyperlink_OnClick" /> <br/>
39+
<asp:LinkButton ID="enableHyperlink" runat="server" Text="Enable license key" OnClick="enableHyperlink_OnClick"/> <br/>
40+
<asp:LinkButton ID="deleteHyperlink" runat="server" Text="Delete license key and its leases" OnClick="deleteHyperlink_OnClick" OnClientClick="return confirm('Are you certain you want to delete this license key and all associate leases?');"/>
41+
</p>
42+
3743
<p>
3844
Page generated on <%=VirtualDateTime.UtcNow.ToLocalTime()%>.
3945
</p>

src/PostSharp.LicenseServer/Admin/Details.aspx.cs

Lines changed: 44 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
using System;
1212
using System.Collections.Generic;
1313
using System.Linq;
14+
using System.Web;
1415
using System.Web.UI;
1516

1617
namespace PostSharp.LicenseServer.Admin
@@ -22,7 +23,8 @@ protected override void OnLoad( EventArgs e )
2223
int licenseId = int.Parse( this.Request.QueryString["id"] );
2324
this.licenseIdLabel.Text = licenseId.ToString();
2425

25-
Database db = new Database();
26+
Database db = new Database();
27+
License license = db.Licenses.Single(l => l.LicenseId == licenseId);
2628

2729
DateTime now = VirtualDateTime.UtcNow;
2830
List<Lease> leases = (from l in db.Leases
@@ -42,6 +44,47 @@ orderby l.StartTime
4244

4345
this.leaseCountLiteral.Text = leases.Count.ToString();
4446
this.concurrentUserCountLiteral.Text = db.GetActiveLeads( licenseId, now ).ToString();
47+
48+
bool disabled = license.Priority < 0;
49+
this.enableHyperlink.Visible = disabled;
50+
this.deleteHyperlink.Visible = disabled;
51+
this.disableHyperlink.Visible = !disabled;
52+
53+
}
54+
55+
private void ChangePriority(int priority)
56+
{
57+
int licenseId = int.Parse(this.Request.QueryString["id"]);
58+
59+
Database db = new Database();
60+
License license = db.Licenses.Single(l => l.LicenseId == licenseId);
61+
license.Priority = priority;
62+
db.SubmitChanges();
63+
64+
this.Response.Redirect("..");
65+
}
66+
67+
protected void disableHyperlink_OnClick(object sender, EventArgs e)
68+
{
69+
this.ChangePriority(-1);
70+
}
71+
72+
protected void enableHyperlink_OnClick(object sender, EventArgs e)
73+
{
74+
this.ChangePriority(0);
75+
}
76+
77+
protected void deleteHyperlink_OnClick(object sender, EventArgs e)
78+
{
79+
int licenseId = int.Parse(this.Request.QueryString["id"]);
80+
81+
Database db = new Database();
82+
License license = db.Licenses.Single(l => l.LicenseId == licenseId);
83+
db.Leases.DeleteAllOnSubmit(license.Leases);
84+
db.Licenses.DeleteOnSubmit(license);
85+
db.SubmitChanges();
86+
87+
this.Response.Redirect("..");
4588
}
4689
}
4790
}

src/PostSharp.LicenseServer/Admin/Details.aspx.designer.cs

Lines changed: 78 additions & 51 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/PostSharp.LicenseServer/Admin/GenerateDemoData.aspx.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -193,9 +193,10 @@ protected void Button1_Click( object sender, EventArgs e )
193193
// Which machine will he use this day?
194194
int machineIndex = (int) Math.Floor( random.NextDouble()*user.Machines.Count );
195195
string machine = user.Machines[machineIndex];
196-
List<string> errors = new List<string>();
196+
Dictionary<int, string> errors = new Dictionary<int, string>();
197197
time = time.AddHours( random.NextDouble()*3.0/activeUsers.Count );
198-
Lease lease = leaseService.GetLease( db, product, machine, user.UserName, user.AuthenticatedName, time, errors );
198+
DateTime buildDate = time;
199+
Lease lease = leaseService.GetLease( db, product, buildDate, machine, user.UserName, user.AuthenticatedName, time, errors );
199200
if ( lease != null )
200201
{
201202
db.SubmitChanges();

src/PostSharp.LicenseServer/Default.aspx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
<asp:BoundField DataField="GraceStartTime" HeaderText="Grace Period Started On" />
1818
<asp:BoundField DataField="MaxUsers" HeaderText="Max Number of Users" />
1919
<asp:BoundField DataField="CurrentUsers" HeaderText="Current Number Of Users" />
20+
<asp:BoundField DataField="MaintenanceEndDate" HeaderText="End of Maintenance" DataFormatString="{0:d}"/>
21+
<asp:BoundField DataField="Status" HeaderText="Status"/>
2022
<asp:HyperLinkField DataNavigateUrlFields="LicenseId" DataNavigateUrlFormatString="Admin/Details.aspx?id={0}"
2123
Text="Detail" />
2224
<asp:HyperLinkField DataNavigateUrlFields="LicenseId" DataNavigateUrlFormatString="Graph.aspx?id={0}"

src/PostSharp.LicenseServer/Default.aspx.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public partial class DefaultPage : Page
2121
protected override void OnLoad( EventArgs e )
2222
{
2323
Database db = new Database();
24-
License[] licenses = (from l in db.Licenses orderby l.ProductCode , l.Priority select l).ToArray();
24+
License[] licenses = (from l in db.Licenses orderby l.Priority, l.LicenseId descending select l).ToArray();
2525
List<LicenseInfo> licenseInfos = new List<LicenseInfo>();
2626

2727
for ( int i = 0; i < licenses.Length; i++ )
@@ -40,6 +40,8 @@ protected override void OnLoad( EventArgs e )
4040
licenseInfo.CurrentUsers = db.GetActiveLeads( license.LicenseId, VirtualDateTime.UtcNow );
4141
licenseInfo.ProductCode = parsedLicense.Product.ToString();
4242
licenseInfo.GraceStartTime = license.GraceStartTime;
43+
licenseInfo.Status = license.Priority >= 0 ? "Active" : "Disabled";
44+
licenseInfo.MaintenanceEndDate = parsedLicense.SubscriptionEndDate;
4345
}
4446

4547
licenseInfos.Add( licenseInfo );
@@ -58,6 +60,8 @@ private class LicenseInfo
5860
public int? MaxUsers { get; set; }
5961
public int CurrentUsers { get; set; }
6062
public DateTime? GraceStartTime { get; set; }
63+
public string Status { get; set; }
64+
public DateTime? MaintenanceEndDate { get; set; }
6165
}
6266
}
6367
}

0 commit comments

Comments
 (0)