Session Host certificates
This commit is contained in:
parent
789cd6ca11
commit
1969cd398c
45 changed files with 1196 additions and 377 deletions
|
@ -120,6 +120,9 @@
|
|||
<data name="btnAddRDSServer.Text" xml:space="preserve">
|
||||
<value>Add RDS Server</value>
|
||||
</data>
|
||||
<data name="gvPopupStatus.HeaderText" xml:space="preserve">
|
||||
<value>Status</value>
|
||||
</data>
|
||||
<data name="gvRDSServers.Empty" xml:space="preserve">
|
||||
<value>The list of RDS Servers is empty.<br><br>To add a new Server click "Add RDS Sever" button.</value>
|
||||
</data>
|
||||
|
|
|
@ -52,11 +52,15 @@ namespace WebsitePanel.Portal
|
|||
{
|
||||
rdsServers = ES.Services.RDS.GetRdsServersPaged("", filterValue, sortColumn, startRowIndex, maximumRows);
|
||||
|
||||
return rdsServers.Servers;
|
||||
//return new RdsServer[] { new RdsServer { Name = "rds.1.server", FqdName = "", Address = "127.0.0.1" },
|
||||
// new RdsServer { Name = "rds.2.server", FqdName = "", Address = "127.0.0.2" },
|
||||
// new RdsServer { Name = "rds.3.server", FqdName = "", Address = "127.0.0.3" },
|
||||
// new RdsServer { Name = "rds.4.server", FqdName = "", Address = "127.0.0.4" }};
|
||||
foreach (var rdsServer in rdsServers.Servers)
|
||||
{
|
||||
if (rdsServer.ItemId.HasValue)
|
||||
{
|
||||
rdsServer.Status = ES.Services.RDS.GetRdsServerStatus(rdsServer.ItemId.Value, rdsServer.FqdName);
|
||||
}
|
||||
}
|
||||
|
||||
return rdsServers.Servers;
|
||||
}
|
||||
|
||||
public int GetOrganizationRdsServersPagedCount(int itemId, string filterValue)
|
||||
|
|
|
@ -126,4 +126,7 @@
|
|||
<data name="ServerNameColumn.HeaderText" xml:space="preserve">
|
||||
<value>Server Name</value>
|
||||
</data>
|
||||
<data name="lblPFXInstallPassword.Text" xml:space="preserve">
|
||||
<value>Certificate Password:</value>
|
||||
</data>
|
||||
</root>
|
|
@ -1,5 +1,17 @@
|
|||
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="RDS_Settings.ascx.cs" Inherits="WebsitePanel.Portal.ProviderControls.RDS_Settings" %>
|
||||
<table>
|
||||
<table>
|
||||
<tr>
|
||||
<td colspan ="2" style="padding: 10px 0 10px 0;"><asp:FileUpload ID="upPFX" runat="server"/></td>
|
||||
</tr>
|
||||
<tr><td></td></tr>
|
||||
<tr>
|
||||
<td class="SubHead" style="width:200px" nowrap>
|
||||
<asp:Localize runat="server" meta:resourcekey="lblPFXInstallPassword" />
|
||||
</td>
|
||||
<td>
|
||||
<asp:TextBox ID="txtPFXInstallPassword" runat="server" TextMode="Password" Width="200px" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="SubHead" width="200" nowrap>
|
||||
<asp:Label runat="server" ID="lblConnectionBroker" meta:resourcekey="lblConnectionBroker" Text="Connection Broker:"/>
|
||||
|
|
|
@ -31,6 +31,7 @@ using System.Collections.Generic;
|
|||
using System.Web.UI.WebControls;
|
||||
using WebsitePanel.EnterpriseServer;
|
||||
using WebsitePanel.Providers.Common;
|
||||
using WebsitePanel.Providers.RemoteDesktopServices;
|
||||
|
||||
namespace WebsitePanel.Portal.ProviderControls
|
||||
{
|
||||
|
@ -54,11 +55,10 @@ namespace WebsitePanel.Portal.ProviderControls
|
|||
}
|
||||
|
||||
public void BindSettings(System.Collections.Specialized.StringDictionary settings)
|
||||
{
|
||||
{
|
||||
txtConnectionBroker.Text = settings["ConnectionBroker"];
|
||||
|
||||
GWServers = settings["GWServrsList"];
|
||||
|
||||
UpdateLyncServersGrid();
|
||||
|
||||
txtRootOU.Text = settings["RootOU"];
|
||||
|
@ -86,7 +86,26 @@ namespace WebsitePanel.Portal.ProviderControls
|
|||
settings["UseCentralNPS"] = chkUseCentralNPS.Checked.ToString();
|
||||
settings["CentralNPS"] = chkUseCentralNPS.Checked ? txtCentralNPS.Text : string.Empty;
|
||||
|
||||
settings["GWServrsList"] = GWServers;
|
||||
settings["GWServrsList"] = GWServers;
|
||||
|
||||
try
|
||||
{
|
||||
if (upPFX.HasFile.Equals(true))
|
||||
{
|
||||
var certificate = new RdsCertificate
|
||||
{
|
||||
ServiceId = PanelRequest.ServiceId,
|
||||
Content = Convert.ToBase64String(upPFX.FileBytes),
|
||||
FileName = upPFX.FileName,
|
||||
Hash = txtPFXInstallPassword.Text
|
||||
};
|
||||
|
||||
ES.Services.RDS.AddRdsCertificate(certificate);
|
||||
}
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
protected void chkUseCentralNPS_CheckedChanged(object sender, EventArgs e)
|
||||
|
|
|
@ -1,31 +1,3 @@
|
|||
// Copyright (c) 2015, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
|
@ -40,6 +12,24 @@ namespace WebsitePanel.Portal.ProviderControls {
|
|||
|
||||
public partial class RDS_Settings {
|
||||
|
||||
/// <summary>
|
||||
/// upPFX control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.FileUpload upPFX;
|
||||
|
||||
/// <summary>
|
||||
/// txtPFXInstallPassword control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox txtPFXInstallPassword;
|
||||
|
||||
/// <summary>
|
||||
/// lblConnectionBroker control.
|
||||
/// </summary>
|
||||
|
|
|
@ -145,7 +145,7 @@
|
|||
<value>Assigned RDS Servers</value>
|
||||
</data>
|
||||
<data name="locQuota.Text" xml:space="preserve">
|
||||
<value>Total RDS Servers Allocated:</value>
|
||||
<value>Total Remote Desktop Servers Allocated:</value>
|
||||
</data>
|
||||
<data name="cmdDisable.Text" xml:space="preserve">
|
||||
<value>Disable</value>
|
||||
|
|
|
@ -147,4 +147,7 @@
|
|||
<data name="gvServer.Header" xml:space="preserve">
|
||||
<value>RDS Server</value>
|
||||
</data>
|
||||
<data name="locQuota.Text" xml:space="preserve">
|
||||
<value>Total Remote Desktop Collections Created:</value>
|
||||
</data>
|
||||
</root>
|
|
@ -153,4 +153,10 @@
|
|||
<data name="locLblApplicationName" xml:space="preserve">
|
||||
<value>Application Name</value>
|
||||
</data>
|
||||
<data name="btnExit.Text" xml:space="preserve">
|
||||
<value>Back to Applications List</value>
|
||||
</data>
|
||||
<data name="btnSaveExit.Text" xml:space="preserve">
|
||||
<value>Save Changes and Exit</value>
|
||||
</data>
|
||||
</root>
|
|
@ -144,4 +144,7 @@
|
|||
<data name="secRdsUsers.Text" xml:space="preserve">
|
||||
<value>RDS Users</value>
|
||||
</data>
|
||||
<data name="locQuota.Text" xml:space="preserve">
|
||||
<value>Total RDS Users Assigned:</value>
|
||||
</data>
|
||||
</root>
|
|
@ -72,6 +72,11 @@
|
|||
</asp:TemplateField>
|
||||
</Columns>
|
||||
</asp:GridView>
|
||||
<div>
|
||||
<asp:Localize ID="locQuota" runat="server" meta:resourcekey="locQuota" Text="RDS Servers:"></asp:Localize>
|
||||
|
||||
<wsp:QuotaViewer ID="rdsServersQuota" runat="server" QuotaTypeId="2" DisplayGauge="true"/>
|
||||
</div>
|
||||
<asp:ObjectDataSource ID="odsRDSAssignedServersPaged" runat="server" EnablePaging="True"
|
||||
SelectCountMethod="GetOrganizationRdsServersPagedCount"
|
||||
SelectMethod="GetOrganizationRdsServersPaged"
|
||||
|
|
|
@ -41,18 +41,32 @@ namespace WebsitePanel.Portal.RDS
|
|||
{
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
PackageContext cntx = PackagesHelper.GetCachedPackageContext(PanelSecurity.PackageId);
|
||||
|
||||
if (!IsPostBack)
|
||||
{
|
||||
|
||||
BindQuota(cntx);
|
||||
}
|
||||
|
||||
PackageContext cntx = PackagesHelper.GetCachedPackageContext(PanelSecurity.PackageId);
|
||||
|
||||
if (cntx.Quotas.ContainsKey(Quotas.RDS_SERVERS))
|
||||
{
|
||||
btnAddServerToOrg.Enabled = (!(cntx.Quotas[Quotas.RDS_SERVERS].QuotaAllocatedValue <= gvRDSAssignedServers.Rows.Count) || (cntx.Quotas[Quotas.RDS_SERVERS].QuotaAllocatedValue == -1));
|
||||
}
|
||||
}
|
||||
|
||||
private void BindQuota(PackageContext cntx)
|
||||
{
|
||||
OrganizationStatistics stats = ES.Services.Organizations.GetOrganizationStatisticsByOrganization(PanelRequest.ItemID);
|
||||
OrganizationStatistics tenantStats = ES.Services.Organizations.GetOrganizationStatistics(PanelRequest.ItemID);
|
||||
rdsServersQuota.QuotaUsedValue = stats.CreatedRdsServers;
|
||||
rdsServersQuota.QuotaValue = stats.AllocatedRdsServers;
|
||||
|
||||
if (stats.AllocatedUsers != -1)
|
||||
{
|
||||
rdsServersQuota.QuotaAvailable = tenantStats.AllocatedRdsServers - tenantStats.CreatedRdsServers;
|
||||
}
|
||||
}
|
||||
|
||||
protected void btnAddServerToOrg_Click(object sender, EventArgs e)
|
||||
{
|
||||
Response.Redirect(EditUrl("ItemID", PanelRequest.ItemID.ToString(), "rds_add_server",
|
||||
|
|
|
@ -1,31 +1,3 @@
|
|||
// Copyright (c) 2015, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
|
@ -139,6 +111,24 @@ namespace WebsitePanel.Portal.RDS {
|
|||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.GridView gvRDSAssignedServers;
|
||||
|
||||
/// <summary>
|
||||
/// locQuota control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Localize locQuota;
|
||||
|
||||
/// <summary>
|
||||
/// rdsServersQuota control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::WebsitePanel.Portal.QuotaViewer rdsServersQuota;
|
||||
|
||||
/// <summary>
|
||||
/// odsRDSAssignedServersPaged control.
|
||||
/// </summary>
|
||||
|
|
|
@ -66,6 +66,11 @@
|
|||
</asp:TemplateField>
|
||||
</Columns>
|
||||
</asp:GridView>
|
||||
<div>
|
||||
<asp:Localize ID="locQuota" runat="server" meta:resourcekey="locQuota" Text="Collections Created:"></asp:Localize>
|
||||
|
||||
<wsp:QuotaViewer ID="collectionsQuota" runat="server" QuotaTypeId="2" DisplayGauge="true" />
|
||||
</div>
|
||||
<asp:ObjectDataSource ID="odsRDSCollectionsPaged" runat="server" EnablePaging="True"
|
||||
SelectCountMethod="GetRDSCollectonsPagedCount"
|
||||
SelectMethod="GetRDSCollectonsPaged"
|
||||
|
|
|
@ -42,17 +42,32 @@ namespace WebsitePanel.Portal.RDS
|
|||
{
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
PackageContext cntx = PackagesHelper.GetCachedPackageContext(PanelSecurity.PackageId);
|
||||
|
||||
if (!IsPostBack)
|
||||
{
|
||||
BindQuota(cntx);
|
||||
}
|
||||
|
||||
PackageContext cntx = PackagesHelper.GetCachedPackageContext(PanelSecurity.PackageId);
|
||||
|
||||
if (cntx.Quotas.ContainsKey(Quotas.RDS_COLLECTIONS))
|
||||
{
|
||||
btnAddCollection.Enabled = (!(cntx.Quotas[Quotas.RDS_COLLECTIONS].QuotaAllocatedValue <= gvRDSCollections.Rows.Count) || (cntx.Quotas[Quotas.RDS_COLLECTIONS].QuotaAllocatedValue == -1));
|
||||
}
|
||||
}
|
||||
|
||||
private void BindQuota(PackageContext cntx)
|
||||
{
|
||||
OrganizationStatistics stats = ES.Services.Organizations.GetOrganizationStatisticsByOrganization(PanelRequest.ItemID);
|
||||
OrganizationStatistics tenantStats = ES.Services.Organizations.GetOrganizationStatistics(PanelRequest.ItemID);
|
||||
collectionsQuota.QuotaUsedValue = stats.CreatedRdsCollections;
|
||||
collectionsQuota.QuotaValue = stats.AllocatedRdsCollections;
|
||||
|
||||
if (stats.AllocatedUsers != -1)
|
||||
{
|
||||
collectionsQuota.QuotaAvailable = tenantStats.AllocatedRdsCollections - tenantStats.CreatedRdsCollections;
|
||||
}
|
||||
}
|
||||
|
||||
public string GetServerName(string collectionId)
|
||||
{
|
||||
int id = int.Parse(collectionId);
|
||||
|
|
|
@ -111,6 +111,24 @@ namespace WebsitePanel.Portal.RDS {
|
|||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.GridView gvRDSCollections;
|
||||
|
||||
/// <summary>
|
||||
/// locQuota control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Localize locQuota;
|
||||
|
||||
/// <summary>
|
||||
/// collectionsQuota control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::WebsitePanel.Portal.QuotaViewer collectionsQuota;
|
||||
|
||||
/// <summary>
|
||||
/// odsRDSCollectionsPaged control.
|
||||
/// </summary>
|
||||
|
|
|
@ -28,27 +28,7 @@
|
|||
<asp:RequiredFieldValidator ID="valCollectionName" runat="server" ErrorMessage="*" ControlToValidate="txtCollectionName" ValidationGroup="SaveRDSCollection"></asp:RequiredFieldValidator>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<wsp:CollapsiblePanel id="secSelectSertificate" runat="server"
|
||||
TargetControlID="panelSelectSertificate" meta:resourcekey="secSelectSertificate" Text="">
|
||||
</wsp:CollapsiblePanel>
|
||||
|
||||
<asp:Panel runat="server" ID="panelSelectSertificate">
|
||||
<div style="padding: 10px;">
|
||||
<div class="FormBody">
|
||||
<div class="FormField">
|
||||
<asp:FileUpload ID="upPFX" runat="server"/>
|
||||
</div>
|
||||
<div class="FormFieldDescription">
|
||||
<asp:Localize runat="server" meta:resourcekey="lblPFXInstallPassword" />
|
||||
</div>
|
||||
<div class="FormField">
|
||||
<asp:TextBox ID="txtPFXInstallPassword" runat="server" TextMode="Password" CssClass="NormalTextBox" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</asp:Panel>
|
||||
</table>
|
||||
|
||||
<fieldset id="RDSServersPanel" runat="server">
|
||||
<legend><asp:Localize ID="locRDSServersSection" runat="server" meta:resourcekey="locRDSServersSection" Text="RDS Servers"></asp:Localize></legend>
|
||||
|
|
|
@ -63,21 +63,7 @@ namespace WebsitePanel.Portal.RDS
|
|||
}
|
||||
|
||||
RdsCollection collection = new RdsCollection{ Name = txtCollectionName.Text, DisplayName = txtCollectionName.Text, Servers = servers.GetServers(), Description = "" };
|
||||
int collectionId = ES.Services.RDS.AddRdsCollection(PanelRequest.ItemID, collection);
|
||||
|
||||
try
|
||||
{
|
||||
if (upPFX.HasFile.Equals(true))
|
||||
{
|
||||
byte[] pfx = upPFX.FileBytes;
|
||||
string certPassword = txtPFXInstallPassword.Text;
|
||||
//ES.Services.RDS.InstallSessionHostsCertificate(collectionId, pfx, certPassword);
|
||||
}
|
||||
}
|
||||
catch(Exception ex)
|
||||
{
|
||||
messageBox.ShowErrorMessage("RDSSESSIONHOST_CERTIFICATE_NOT_INSTALLED", ex);
|
||||
}
|
||||
int collectionId = ES.Services.RDS.AddRdsCollection(PanelRequest.ItemID, collection);
|
||||
|
||||
Response.Redirect(EditUrl("SpaceID", PanelSecurity.PackageId.ToString(), "rds_edit_collection", "CollectionId=" + collectionId, "ItemID=" + PanelRequest.ItemID));
|
||||
}
|
||||
|
|
|
@ -75,42 +75,6 @@ namespace WebsitePanel.Portal.RDS {
|
|||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.RequiredFieldValidator valCollectionName;
|
||||
|
||||
/// <summary>
|
||||
/// secSelectSertificate control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::WebsitePanel.Portal.CollapsiblePanel secSelectSertificate;
|
||||
|
||||
/// <summary>
|
||||
/// panelSelectSertificate control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Panel panelSelectSertificate;
|
||||
|
||||
/// <summary>
|
||||
/// upPFX control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.FileUpload upPFX;
|
||||
|
||||
/// <summary>
|
||||
/// txtPFXInstallPassword control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox txtPFXInstallPassword;
|
||||
|
||||
/// <summary>
|
||||
/// RDSServersPanel control.
|
||||
/// </summary>
|
||||
|
|
|
@ -55,8 +55,12 @@
|
|||
</div>
|
||||
</asp:Panel>
|
||||
<div class="FormFooterClean">
|
||||
<wsp:ItemButtonPanel id="buttonPanel" runat="server" ValidationGroup="SaveRDSCollection"
|
||||
OnSaveClick="btnSave_Click" OnSaveExitClick="btnSaveExit_Click" />
|
||||
<asp:Button id="btnSave" runat="server" Text="Save Changes" CssClass="Button1" meta:resourcekey="btnSave"
|
||||
OnClick="btnSave_Click" OnClientClick="ShowProgressDialog('Updating ...');"></asp:Button>
|
||||
<asp:Button id="btnSaveExit" runat="server" Text="Save Changes and Exit" CssClass="Button1" meta:resourcekey="btnSaveExit"
|
||||
OnClick="btnSaveExit_Click" OnClientClick="ShowProgressDialog('Updating ...');"></asp:Button>
|
||||
<asp:Button id="btnExit" runat="server" Text="Back to Applications List" CssClass="Button1" meta:resourcekey="btnExit"
|
||||
OnClick="btnExit_Click" OnClientClick="ShowProgressDialog('Loading ...');"></asp:Button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -100,5 +100,10 @@ namespace WebsitePanel.Portal.RDS
|
|||
Response.Redirect(EditUrl("SpaceID", PanelSecurity.PackageId.ToString(), "rds_collection_edit_apps", "CollectionId=" + PanelRequest.CollectionID, "ItemID=" + PanelRequest.ItemID));
|
||||
}
|
||||
}
|
||||
|
||||
protected void btnExit_Click(object sender, EventArgs e)
|
||||
{
|
||||
Response.Redirect(EditUrl("SpaceID", PanelSecurity.PackageId.ToString(), "rds_collection_edit_apps", "CollectionId=" + PanelRequest.CollectionID, "ItemID=" + PanelRequest.ItemID));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -139,12 +139,30 @@ namespace WebsitePanel.Portal.RDS {
|
|||
protected global::WebsitePanel.Portal.RDS.UserControls.RDSCollectionUsers users;
|
||||
|
||||
/// <summary>
|
||||
/// buttonPanel control.
|
||||
/// btnSave control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::WebsitePanel.Portal.ItemButtonPanel buttonPanel;
|
||||
protected global::System.Web.UI.WebControls.Button btnSave;
|
||||
|
||||
/// <summary>
|
||||
/// btnSaveExit control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Button btnSaveExit;
|
||||
|
||||
/// <summary>
|
||||
/// btnExit control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Button btnExit;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="RDSEditCollectionUsers.ascx.cs" Inherits="WebsitePanel.Portal.RDS.RDSEditCollectionUsers" %>
|
||||
<%@ Register Src="../UserControls/SimpleMessageBox.ascx" TagName="SimpleMessageBox" TagPrefix="wsp" %>
|
||||
<%@ Register Src="../UserControls/EnableAsyncTasksSupport.ascx" TagName="EnableAsyncTasksSupport" TagPrefix="wsp" %>
|
||||
<%@ Register Src="../UserControls/QuotaViewer.ascx" TagName="QuotaViewer" TagPrefix="wsp" %>
|
||||
<%@ Register Src="UserControls/RDSCollectionUsers.ascx" TagName="CollectionUsers" TagPrefix="wsp"%>
|
||||
<%@ Register Src="UserControls/RDSCollectionTabs.ascx" TagName="CollectionTabs" TagPrefix="wsp" %>
|
||||
<%@ Register TagPrefix="wsp" TagName="CollapsiblePanel" Src="../UserControls/CollapsiblePanel.ascx" %>
|
||||
|
@ -34,6 +35,11 @@
|
|||
<wsp:CollectionUsers id="users" runat="server" />
|
||||
</div>
|
||||
</asp:Panel>
|
||||
<div>
|
||||
<asp:Localize ID="locQuota" runat="server" meta:resourcekey="locQuota" Text="Users Created:"></asp:Localize>
|
||||
|
||||
<wsp:QuotaViewer ID="usersQuota" runat="server" QuotaTypeId="2" DisplayGauge="true" />
|
||||
</div>
|
||||
<div class="FormFooterClean">
|
||||
<wsp:ItemButtonPanel id="buttonPanel" runat="server" ValidationGroup="SaveRDSCollection"
|
||||
OnSaveClick="btnSave_Click" OnSaveExitClick="btnSaveExit_Click" />
|
||||
|
|
|
@ -39,9 +39,10 @@ namespace WebsitePanel.Portal.RDS
|
|||
{
|
||||
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
{
|
||||
if (!IsPostBack)
|
||||
{
|
||||
BindQuota();
|
||||
var collectionUsers = ES.Services.RDS.GetRdsCollectionUsers(PanelRequest.CollectionID);
|
||||
var collection = ES.Services.RDS.GetRdsCollection(PanelRequest.CollectionID);
|
||||
|
||||
|
@ -50,6 +51,20 @@ namespace WebsitePanel.Portal.RDS
|
|||
}
|
||||
}
|
||||
|
||||
private void BindQuota()
|
||||
{
|
||||
PackageContext cntx = PackagesHelper.GetCachedPackageContext(PanelSecurity.PackageId);
|
||||
OrganizationStatistics stats = ES.Services.Organizations.GetOrganizationStatisticsByOrganization(PanelRequest.ItemID);
|
||||
OrganizationStatistics tenantStats = ES.Services.Organizations.GetOrganizationStatistics(PanelRequest.ItemID);
|
||||
usersQuota.QuotaUsedValue = stats.CreatedRdsUsers;
|
||||
usersQuota.QuotaValue = stats.AllocatedRdsUsers;
|
||||
|
||||
if (stats.AllocatedUsers != -1)
|
||||
{
|
||||
usersQuota.QuotaAvailable = tenantStats.AllocatedRdsUsers - tenantStats.CreatedRdsUsers;
|
||||
}
|
||||
}
|
||||
|
||||
private bool SaveRdsUsers()
|
||||
{
|
||||
try
|
||||
|
@ -73,6 +88,7 @@ namespace WebsitePanel.Portal.RDS
|
|||
}
|
||||
|
||||
SaveRdsUsers();
|
||||
BindQuota();
|
||||
}
|
||||
|
||||
protected void btnSaveExit_Click(object sender, EventArgs e)
|
||||
|
|
|
@ -93,6 +93,24 @@ namespace WebsitePanel.Portal.RDS {
|
|||
/// </remarks>
|
||||
protected global::WebsitePanel.Portal.RDS.UserControls.RDSCollectionUsers users;
|
||||
|
||||
/// <summary>
|
||||
/// locQuota control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Localize locQuota;
|
||||
|
||||
/// <summary>
|
||||
/// usersQuota control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::WebsitePanel.Portal.QuotaViewer usersQuota;
|
||||
|
||||
/// <summary>
|
||||
/// buttonPanel control.
|
||||
/// </summary>
|
||||
|
|
|
@ -38,10 +38,11 @@
|
|||
<asp:GridView ID="gvRDSUserSessions" runat="server" AutoGenerateColumns="False" EnableViewState="true"
|
||||
Width="100%" EmptyDataText="gvRDSUserSessions" CssSelectorClass="NormalGridView"
|
||||
OnRowCommand="gvRDSCollections_RowCommand" AllowPaging="True" AllowSorting="True">
|
||||
<Columns>
|
||||
<Columns>
|
||||
<asp:TemplateField meta:resourcekey="gvUserName" HeaderText="gvUserName">
|
||||
<ItemStyle Width="30%" Wrap="false"/>
|
||||
<ItemTemplate>
|
||||
<asp:Image ID="vipImage" runat="server" ImageUrl='<%# GetAccountImage(Convert.ToBoolean(Eval("IsVip"))) %>' ImageAlign="AbsMiddle"/>
|
||||
<asp:Literal ID="litUserName" runat="server" Text='<%# Eval("UserName") %>'/>
|
||||
<asp:HiddenField ID="hfUnifiedSessionId" runat="server" Value='<%# Eval("UnifiedSessionId") %>'/>
|
||||
</ItemTemplate>
|
||||
|
|
|
@ -5,6 +5,8 @@ using System.Linq;
|
|||
using System.Web;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
using WebsitePanel.EnterpriseServer;
|
||||
using WebsitePanel.Providers.HostedSolution;
|
||||
using WebsitePanel.Providers.RemoteDesktopServices;
|
||||
|
||||
namespace WebsitePanel.Portal.RDS
|
||||
|
@ -101,5 +103,15 @@ namespace WebsitePanel.Portal.RDS
|
|||
gvRDSUserSessions.DataSource = userSessions;
|
||||
gvRDSUserSessions.DataBind();
|
||||
}
|
||||
|
||||
public string GetAccountImage(bool vip)
|
||||
{
|
||||
if (vip)
|
||||
{
|
||||
return GetThemedImage("Exchange/vip_user_16.png");
|
||||
}
|
||||
|
||||
return GetThemedImage("Exchange/accounting_mail_16.png");
|
||||
}
|
||||
}
|
||||
}
|
|
@ -210,7 +210,7 @@ namespace WebsitePanel.Portal.RDS.UserControls
|
|||
|
||||
RemoteApplication app = new RemoteApplication();
|
||||
app.Alias = (string)gvApps.DataKeys[i][0];
|
||||
app.DisplayName = ((HyperLink)row.FindControl("lnkDisplayName")).Text;
|
||||
app.DisplayName = ((LinkButton)row.FindControl("lnkDisplayName")).Text;
|
||||
app.FilePath = ((HiddenField)row.FindControl("hfFilePath")).Value;
|
||||
app.RequiredCommandLine = ((HiddenField)row.FindControl("hfRequiredCommandLine")).Value;
|
||||
|
||||
|
|
|
@ -5,11 +5,18 @@
|
|||
<%@ Register Src="UserControls/UserDetails.ascx" TagName="UserDetails" TagPrefix="uc2" %>
|
||||
<%@ Register Src="UserControls/CollapsiblePanel.ascx" TagName="CollapsiblePanel" TagPrefix="wsp" %>
|
||||
<%@ Register Src="UserControls/SimpleMessageBox.ascx" TagName="SimpleMessageBox" TagPrefix="wsp" %>
|
||||
<%@ Register Src="UserControls/PopupHeader.ascx" TagName="PopupHeader" TagPrefix="wsp" %>
|
||||
<%@ Register Src="UserControls/EnableAsyncTasksSupport.ascx" TagName="EnableAsyncTasksSupport" TagPrefix="wsp" %>
|
||||
|
||||
<asp:UpdatePanel runat="server" ID="updatePanelUsers">
|
||||
<ContentTemplate>
|
||||
<wsp:EnableAsyncTasksSupport id="asyncTasks" runat="server"/>
|
||||
|
||||
<asp:UpdatePanel runat="server" ID="messageBoxPanel" UpdateMode="Conditional">
|
||||
<ContentTemplate>
|
||||
<wsp:SimpleMessageBox id="messageBox" runat="server" />
|
||||
</ContentTemplate>
|
||||
</asp:UpdatePanel>
|
||||
<asp:UpdatePanel runat="server" ID="updatePanelUsers">
|
||||
<ContentTemplate>
|
||||
|
||||
<div class="FormButtonsBar">
|
||||
<div class="Left">
|
||||
|
@ -43,11 +50,45 @@
|
|||
<Columns>
|
||||
<asp:BoundField DataField="Name" HtmlEncode="true" SortExpression="Name" HeaderText="Server name">
|
||||
<HeaderStyle Wrap="false" />
|
||||
<ItemStyle Wrap="False" Width="25%"/>
|
||||
<ItemStyle Wrap="False" Width="15%"/>
|
||||
</asp:BoundField>
|
||||
<asp:BoundField DataField="Address" HeaderText="IP Address"><ItemStyle Width="15%"/></asp:BoundField>
|
||||
<asp:BoundField DataField="ItemName" HeaderText="Organization"><ItemStyle Width="20%"/></asp:BoundField>
|
||||
<asp:BoundField DataField="Description" HeaderText="Comments"><ItemStyle Width="30%"/></asp:BoundField>
|
||||
<asp:BoundField DataField="Address" HeaderText="IP Address"><ItemStyle Width="10%"/></asp:BoundField>
|
||||
<asp:BoundField DataField="ItemName" HeaderText="Organization"><ItemStyle Width="10%"/></asp:BoundField>
|
||||
<asp:BoundField DataField="Description" HeaderText="Comments"><ItemStyle Width="20%"/></asp:BoundField>
|
||||
<asp:TemplateField meta:resourcekey="gvPopupStatus">
|
||||
<ItemStyle Width="20%" HorizontalAlign="Left" />
|
||||
<ItemTemplate>
|
||||
<asp:Literal ID="litStatus" runat="server" Text='<%# Eval("Status") %>'></asp:Literal>
|
||||
<asp:HiddenField ID="hdnRdsCollectionId" runat="server" Value='<%# Eval("RdsCollectionId") %>' />
|
||||
</ItemTemplate>
|
||||
</asp:TemplateField>
|
||||
<asp:TemplateField meta:resourcekey="gvViewInfo">
|
||||
<ItemStyle Width="8%" HorizontalAlign="Right"/>
|
||||
<ItemTemplate>
|
||||
<asp:LinkButton OnClientClick="ShowProgressDialog('Getting Server Info ...');return true;" Visible='<%# Eval("Status") != null && Eval("Status").ToString().StartsWith("Online") %>' CommandName="ViewInfo" CommandArgument='<%# Eval("Id")%>' ID="lbViewInfo" runat="server" Text="View Info"/>
|
||||
</ItemTemplate>
|
||||
</asp:TemplateField>
|
||||
<asp:TemplateField meta:resourcekey="gvRestart">
|
||||
<ItemStyle HorizontalAlign="Right"/>
|
||||
<ItemTemplate>
|
||||
<asp:LinkButton ID="lbRestart" CommandName="Restart" CommandArgument='<%# Eval("Id")%>' Visible='<%# Eval("Status") != null && Eval("Status").ToString().StartsWith("Online") %>'
|
||||
runat="server" Text="Restart" OnClientClick="if(confirm('Are you sure you want to restart selected server?')) ShowProgressDialog('Loading...'); else return false;"/>
|
||||
</ItemTemplate>
|
||||
</asp:TemplateField>
|
||||
<asp:TemplateField meta:resourcekey="gvShutdown">
|
||||
<ItemStyle Width="9%" HorizontalAlign="Right"/>
|
||||
<ItemTemplate>
|
||||
<asp:LinkButton ID="lbShutdown" CommandName="ShutDown" CommandArgument='<%# Eval("Id")%>' Visible='<%# Eval("Status") != null && Eval("Status").ToString().StartsWith("Online") %>'
|
||||
runat="server" Text="Shut Down" OnClientClick="if(confirm('Are you sure you want to shut down selected server?')) ShowProgressDialog('Loading...'); else return false;"/>
|
||||
</ItemTemplate>
|
||||
</asp:TemplateField>
|
||||
<asp:TemplateField>
|
||||
<ItemTemplate>
|
||||
<asp:LinkButton ID="lnkInstallCertificate" runat="server" Text="Certificate" Visible='<%# Eval("ItemId") != null && Eval("Status") != null && Eval("Status").ToString().StartsWith("Online") %>'
|
||||
CommandName="InstallCertificate" CommandArgument='<%# Eval("Id") %>' ToolTip="Repair Certificate"
|
||||
OnClientClick="if(confirm('Are you sure you want to install certificate?')) ShowProgressDialog('Installing certificate...'); else return false;"></asp:LinkButton>
|
||||
</ItemTemplate>
|
||||
</asp:TemplateField>
|
||||
<asp:TemplateField>
|
||||
<ItemTemplate>
|
||||
<asp:LinkButton ID="lnkRemove" runat="server" Text="Remove" Visible='<%# Eval("ItemId") == null %>'
|
||||
|
@ -60,8 +101,107 @@
|
|||
<asp:ObjectDataSource ID="odsRDSServersPaged" runat="server" EnablePaging="True" SelectCountMethod="GetRDSServersPagedCount"
|
||||
SelectMethod="GetRDSServersPaged" SortParameterName="sortColumn" TypeName="WebsitePanel.Portal.RDSHelper" OnSelected="odsRDSServersPaged_Selected">
|
||||
<SelectParameters>
|
||||
<asp:ControlParameter Name="filterValue" ControlID="txtSearchValue" PropertyName="Text" />
|
||||
<asp:ControlParameter Name="filterValue" ControlID="txtSearchValue" PropertyName="Text" />
|
||||
</SelectParameters>
|
||||
</asp:ObjectDataSource>
|
||||
</ContentTemplate>
|
||||
|
||||
<asp:Panel ID="ServerInfoPanel" runat="server" CssClass="Popup" style="display:none">
|
||||
<table class="Popup-Header" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td class="Popup-HeaderLeft"/>
|
||||
<td class="Popup-HeaderTitle">
|
||||
<asp:Localize ID="Localize1" runat="server" meta:resourcekey="headerServerInfo"/>
|
||||
</td>
|
||||
<td class="Popup-HeaderRight"/>
|
||||
</tr>
|
||||
</table>
|
||||
<div class="Popup-Content">
|
||||
<div class="Popup-Body">
|
||||
<br />
|
||||
<asp:UpdatePanel ID="serverInfoUpdatePanel" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="true">
|
||||
<ContentTemplate>
|
||||
<div class="Popup-Scroll" style="height:auto;">
|
||||
<wsp:CollapsiblePanel id="secServerInfo" runat="server" TargetControlID="panelHardwareInfo" meta:resourcekey="secRdsApplicationEdit" Text=""/>
|
||||
<asp:Panel runat="server" ID="panelHardwareInfo">
|
||||
<table>
|
||||
<tr>
|
||||
<td class="FormLabel150" style="width: 150px;">
|
||||
<asp:Literal ID="locProcessor" runat="server" Text="Processor:"/>
|
||||
</td>
|
||||
<td class="FormLabel150" style="width: 150px;">
|
||||
<asp:Literal ID="litProcessor" runat="server"/>
|
||||
</td>
|
||||
<td class="FormLabel150" style="width: 150px;">
|
||||
<asp:Literal ID="locLoadPercentage" Text="Load Percentage:" runat="server"/>
|
||||
</td>
|
||||
<td class="FormLabel150" style="width: 150px;">
|
||||
<asp:Literal ID="litLoadPercentage" runat="server"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="FormLabel150" style="width: 150px;">
|
||||
<asp:Literal ID="locMemoryAllocated" runat="server" Text="Allocated Memory:"/>
|
||||
</td>
|
||||
<td class="FormLabel150" style="width: 150px;">
|
||||
<asp:Literal ID="litMemoryAllocated" runat="server"/>
|
||||
</td>
|
||||
<td class="FormLabel150" style="width: 150px;">
|
||||
<asp:Literal ID="locFreeMemory" Text="Free Memory:" runat="server"/>
|
||||
</td>
|
||||
<td class="FormLabel150" style="width: 150px;">
|
||||
<asp:Literal ID="litFreeMemory" runat="server"/>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</asp:Panel>
|
||||
<wsp:CollapsiblePanel id="secRdsApplicationEdit" runat="server" TargetControlID="panelDiskDrives" meta:resourcekey="secRdsApplicationEdit" Text="Disk Drives"/>
|
||||
<asp:Panel runat="server" ID="panelDiskDrives">
|
||||
<table>
|
||||
<asp:Repeater ID="rpServerDrives" runat="server" EnableViewState="false">
|
||||
<ItemTemplate>
|
||||
<tr>
|
||||
<td class="FormLabel150" style="width: 150px;">
|
||||
<asp:Literal ID="litDeviceId" runat="server" Text='<%# Eval("DeviceId") %>'/>
|
||||
</td>
|
||||
<td class="FormLabel150" style="width: 150px;"/>
|
||||
<td class="FormLabel150" style="width: 150px;">
|
||||
<asp:Literal ID="locVolumeName" Text="Volume Name:" runat="server"/>
|
||||
</td>
|
||||
<td class="FormLabel150" style="width: 150px;">
|
||||
<asp:Literal ID="litVolumeName" Text='<%# Eval("VolumeName") %>' runat="server"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="FormLabel150" style="width: 150px;">
|
||||
<asp:Literal ID="locSize" Text="Size:" runat="server"/>
|
||||
</td>
|
||||
<td class="FormLabel150" style="width: 150px;">
|
||||
<asp:Literal ID="litSize" Text='<%# Eval("SizeMb") + " MB" %>' runat="server"/>
|
||||
</td>
|
||||
<td class="FormLabel150" style="width: 150px;">
|
||||
<asp:Literal ID="locFreeSpace" Text="Free Space:" runat="server"/>
|
||||
</td>
|
||||
<td class="FormLabel150" style="width: 150px;">
|
||||
<asp:Literal ID="litFreeSpace" Text='<%# Eval("FreeSpaceMb") + " MB" %>' runat="server"/>
|
||||
</td>
|
||||
</tr>
|
||||
</ItemTemplate>
|
||||
</asp:Repeater>
|
||||
</table>
|
||||
</asp:Panel>
|
||||
</div>
|
||||
</ContentTemplate>
|
||||
</asp:UpdatePanel>
|
||||
<br />
|
||||
</div>
|
||||
<div class="FormFooter">
|
||||
<asp:Button ID="btnCancelServerInfo" runat="server" CssClass="Button1" meta:resourcekey="btnServerInfoCancel" Text="Cancel" CausesValidation="false" />
|
||||
</div>
|
||||
</div>
|
||||
</asp:Panel>
|
||||
|
||||
<asp:Button ID="btnViewInfoFake" runat="server" style="display:none;" />
|
||||
<ajaxToolkit:ModalPopupExtender ID="ViewInfoModal" runat="server" TargetControlID="btnViewInfoFake" PopupControlID="ServerInfoPanel"
|
||||
BackgroundCssClass="modalBackground" DropShadow="false" CancelControlID="btnCancelServerInfo"/>
|
||||
</ContentTemplate>
|
||||
</asp:UpdatePanel>
|
||||
|
|
|
@ -31,6 +31,7 @@ using System.Data;
|
|||
using System.Configuration;
|
||||
using System.Collections;
|
||||
using System.Web;
|
||||
using System.Linq;
|
||||
using System.Web.Security;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
|
@ -39,13 +40,14 @@ using System.Web.UI.HtmlControls;
|
|||
|
||||
using WebsitePanel.EnterpriseServer;
|
||||
using WebsitePanel.Providers.Common;
|
||||
using AjaxControlToolkit;
|
||||
|
||||
namespace WebsitePanel.Portal
|
||||
{
|
||||
public partial class RDSServers : WebsitePanelModuleBase
|
||||
{
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
{
|
||||
if (!IsPostBack)
|
||||
{
|
||||
gvRDSServers.PageSize = Convert.ToInt16(ddlPageSize.SelectedValue);
|
||||
|
@ -99,6 +101,28 @@ namespace WebsitePanel.Portal
|
|||
ShowErrorMessage("REMOTE_DESKTOP_SERVICES_REMOVE_RDSSERVER", ex);
|
||||
}
|
||||
}
|
||||
else if (e.CommandName == "ViewInfo")
|
||||
{
|
||||
try
|
||||
{
|
||||
ShowInfo(e.CommandArgument.ToString());
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
}
|
||||
}
|
||||
else if (e.CommandName == "Restart")
|
||||
{
|
||||
Restart(e.CommandArgument.ToString());
|
||||
}
|
||||
else if (e.CommandName == "ShutDown")
|
||||
{
|
||||
ShutDown(e.CommandArgument.ToString());
|
||||
}
|
||||
else if (e.CommandName == "InstallCertificate")
|
||||
{
|
||||
InstallCertificate(e.CommandArgument.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e)
|
||||
|
@ -107,5 +131,60 @@ namespace WebsitePanel.Portal
|
|||
|
||||
gvRDSServers.DataBind();
|
||||
}
|
||||
|
||||
private void ShowInfo(string serverId)
|
||||
{
|
||||
ViewInfoModal.Show();
|
||||
var rdsServer = ES.Services.RDS.GetRdsServer(Convert.ToInt32(serverId));
|
||||
var serverInfo = ES.Services.RDS.GetRdsServerInfo(rdsServer.ItemId.Value, rdsServer.FqdName);
|
||||
litProcessor.Text = string.Format("{0}x{1} MHz", serverInfo.NumberOfCores, serverInfo.MaxClockSpeed);
|
||||
litLoadPercentage.Text = string.Format("{0}%", serverInfo.LoadPercentage);
|
||||
litMemoryAllocated.Text = string.Format("{0} MB", serverInfo.MemoryAllocatedMb);
|
||||
litFreeMemory.Text = string.Format("{0} MB", serverInfo.FreeMemoryMb);
|
||||
rpServerDrives.DataSource = serverInfo.Drives;
|
||||
rpServerDrives.DataBind();
|
||||
((ModalPopupExtender)asyncTasks.FindControl("ModalPopupProperties")).Hide();
|
||||
}
|
||||
|
||||
private void Restart(string serverId)
|
||||
{
|
||||
var rdsServer = ES.Services.RDS.GetRdsServer(Convert.ToInt32(serverId));
|
||||
ES.Services.RDS.RestartRdsServer(rdsServer.ItemId.Value, rdsServer.FqdName);
|
||||
Response.Redirect(Request.Url.ToString(), true);
|
||||
}
|
||||
|
||||
private void ShutDown(string serverId)
|
||||
{
|
||||
var rdsServer = ES.Services.RDS.GetRdsServer(Convert.ToInt32(serverId));
|
||||
ES.Services.RDS.ShutDownRdsServer(rdsServer.ItemId.Value, rdsServer.FqdName);
|
||||
Response.Redirect(Request.Url.ToString(), true);
|
||||
}
|
||||
|
||||
private void RefreshServerInfo()
|
||||
{
|
||||
var servers = odsRDSServersPaged.Select();
|
||||
gvRDSServers.DataSource = servers;
|
||||
gvRDSServers.DataBind();
|
||||
((ModalPopupExtender)asyncTasks.FindControl("ModalPopupProperties")).Hide();
|
||||
}
|
||||
|
||||
private void InstallCertificate(string serverId)
|
||||
{
|
||||
var rdsServer = ES.Services.RDS.GetRdsServer(Convert.ToInt32(serverId));
|
||||
|
||||
try
|
||||
{
|
||||
ES.Services.RDS.InstallSessionHostsCertificate(rdsServer);
|
||||
((ModalPopupExtender)asyncTasks.FindControl("ModalPopupProperties")).Hide();
|
||||
ShowSuccessMessage("RDSSESSIONHOST_CERTIFICATE_INSTALLED");
|
||||
}
|
||||
catch(Exception ex)
|
||||
{
|
||||
ShowErrorMessage("RDSSESSIONHOST_CERTIFICATE_NOT_INSTALLED", ex);
|
||||
}
|
||||
|
||||
messageBoxPanel.Update();
|
||||
// Response.Redirect(Request.Url.ToString(), true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,31 +1,3 @@
|
|||
// Copyright (c) 2015, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
|
@ -41,13 +13,22 @@ namespace WebsitePanel.Portal {
|
|||
public partial class RDSServers {
|
||||
|
||||
/// <summary>
|
||||
/// updatePanelUsers control.
|
||||
/// asyncTasks control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.UpdatePanel updatePanelUsers;
|
||||
protected global::WebsitePanel.Portal.EnableAsyncTasksSupport asyncTasks;
|
||||
|
||||
/// <summary>
|
||||
/// messageBoxPanel control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.UpdatePanel messageBoxPanel;
|
||||
|
||||
/// <summary>
|
||||
/// messageBox control.
|
||||
|
@ -58,6 +39,15 @@ namespace WebsitePanel.Portal {
|
|||
/// </remarks>
|
||||
protected global::WebsitePanel.Portal.UserControls.SimpleMessageBox messageBox;
|
||||
|
||||
/// <summary>
|
||||
/// updatePanelUsers control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.UpdatePanel updatePanelUsers;
|
||||
|
||||
/// <summary>
|
||||
/// btnAddRDSServer control.
|
||||
/// </summary>
|
||||
|
@ -129,5 +119,176 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.ObjectDataSource odsRDSServersPaged;
|
||||
|
||||
/// <summary>
|
||||
/// ServerInfoPanel control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Panel ServerInfoPanel;
|
||||
|
||||
/// <summary>
|
||||
/// Localize1 control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Localize Localize1;
|
||||
|
||||
/// <summary>
|
||||
/// serverInfoUpdatePanel control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.UpdatePanel serverInfoUpdatePanel;
|
||||
|
||||
/// <summary>
|
||||
/// secServerInfo control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::WebsitePanel.Portal.CollapsiblePanel secServerInfo;
|
||||
|
||||
/// <summary>
|
||||
/// panelHardwareInfo control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Panel panelHardwareInfo;
|
||||
|
||||
/// <summary>
|
||||
/// locProcessor control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Literal locProcessor;
|
||||
|
||||
/// <summary>
|
||||
/// litProcessor control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Literal litProcessor;
|
||||
|
||||
/// <summary>
|
||||
/// locLoadPercentage control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Literal locLoadPercentage;
|
||||
|
||||
/// <summary>
|
||||
/// litLoadPercentage control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Literal litLoadPercentage;
|
||||
|
||||
/// <summary>
|
||||
/// locMemoryAllocated control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Literal locMemoryAllocated;
|
||||
|
||||
/// <summary>
|
||||
/// litMemoryAllocated control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Literal litMemoryAllocated;
|
||||
|
||||
/// <summary>
|
||||
/// locFreeMemory control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Literal locFreeMemory;
|
||||
|
||||
/// <summary>
|
||||
/// litFreeMemory control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Literal litFreeMemory;
|
||||
|
||||
/// <summary>
|
||||
/// secRdsApplicationEdit control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::WebsitePanel.Portal.CollapsiblePanel secRdsApplicationEdit;
|
||||
|
||||
/// <summary>
|
||||
/// panelDiskDrives control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Panel panelDiskDrives;
|
||||
|
||||
/// <summary>
|
||||
/// rpServerDrives control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Repeater rpServerDrives;
|
||||
|
||||
/// <summary>
|
||||
/// btnCancelServerInfo control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Button btnCancelServerInfo;
|
||||
|
||||
/// <summary>
|
||||
/// btnViewInfoFake control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Button btnViewInfoFake;
|
||||
|
||||
/// <summary>
|
||||
/// ViewInfoModal control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::AjaxControlToolkit.ModalPopupExtender ViewInfoModal;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5678,7 +5678,9 @@
|
|||
<Content Include="VPSForPC\App_LocalResources\VpsDetailsGeneral.ascx.resx">
|
||||
<SubType>Designer</SubType>
|
||||
</Content>
|
||||
<Content Include="App_LocalResources\WebsitesSSL.ascx.resx" />
|
||||
<Content Include="App_LocalResources\WebsitesSSL.ascx.resx">
|
||||
<SubType>Designer</SubType>
|
||||
</Content>
|
||||
<Content Include="VPSForPC\App_LocalResources\VpsDetailsHelp.ascx.resx">
|
||||
<SubType>Designer</SubType>
|
||||
</Content>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue