RDS Collection settings added
This commit is contained in:
parent
b13ad8cc41
commit
636b3e22ca
28 changed files with 1610 additions and 61 deletions
|
@ -6184,7 +6184,7 @@ CREATE PROCEDURE [dbo].[UpdateRDSCollectionSettings]
|
||||||
)
|
)
|
||||||
AS
|
AS
|
||||||
|
|
||||||
UPDATE UpdateRDSCollectionSettings
|
UPDATE RDSCollectionSettings
|
||||||
SET
|
SET
|
||||||
RDSCollectionId = @RDSCollectionId,
|
RDSCollectionId = @RDSCollectionId,
|
||||||
DisconnectedSessionLimitMin = @DisconnectedSessionLimitMin,
|
DisconnectedSessionLimitMin = @DisconnectedSessionLimitMin,
|
||||||
|
|
|
@ -32,12 +32,16 @@ namespace WebsitePanel.EnterpriseServer {
|
||||||
|
|
||||||
private System.Threading.SendOrPostCallback GetRdsCollectionOperationCompleted;
|
private System.Threading.SendOrPostCallback GetRdsCollectionOperationCompleted;
|
||||||
|
|
||||||
|
private System.Threading.SendOrPostCallback GetRdsCollectionSettingsOperationCompleted;
|
||||||
|
|
||||||
private System.Threading.SendOrPostCallback GetOrganizationRdsCollectionsOperationCompleted;
|
private System.Threading.SendOrPostCallback GetOrganizationRdsCollectionsOperationCompleted;
|
||||||
|
|
||||||
private System.Threading.SendOrPostCallback AddRdsCollectionOperationCompleted;
|
private System.Threading.SendOrPostCallback AddRdsCollectionOperationCompleted;
|
||||||
|
|
||||||
private System.Threading.SendOrPostCallback EditRdsCollectionOperationCompleted;
|
private System.Threading.SendOrPostCallback EditRdsCollectionOperationCompleted;
|
||||||
|
|
||||||
|
private System.Threading.SendOrPostCallback EditRdsCollectionSettingsOperationCompleted;
|
||||||
|
|
||||||
private System.Threading.SendOrPostCallback GetRdsCollectionsPagedOperationCompleted;
|
private System.Threading.SendOrPostCallback GetRdsCollectionsPagedOperationCompleted;
|
||||||
|
|
||||||
private System.Threading.SendOrPostCallback RemoveRdsCollectionOperationCompleted;
|
private System.Threading.SendOrPostCallback RemoveRdsCollectionOperationCompleted;
|
||||||
|
@ -104,6 +108,9 @@ namespace WebsitePanel.EnterpriseServer {
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
public event GetRdsCollectionCompletedEventHandler GetRdsCollectionCompleted;
|
public event GetRdsCollectionCompletedEventHandler GetRdsCollectionCompleted;
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public event GetRdsCollectionSettingsCompletedEventHandler GetRdsCollectionSettingsCompleted;
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
public event GetOrganizationRdsCollectionsCompletedEventHandler GetOrganizationRdsCollectionsCompleted;
|
public event GetOrganizationRdsCollectionsCompletedEventHandler GetOrganizationRdsCollectionsCompleted;
|
||||||
|
|
||||||
|
@ -113,6 +120,9 @@ namespace WebsitePanel.EnterpriseServer {
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
public event EditRdsCollectionCompletedEventHandler EditRdsCollectionCompleted;
|
public event EditRdsCollectionCompletedEventHandler EditRdsCollectionCompleted;
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public event EditRdsCollectionSettingsCompletedEventHandler EditRdsCollectionSettingsCompleted;
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
public event GetRdsCollectionsPagedCompletedEventHandler GetRdsCollectionsPagedCompleted;
|
public event GetRdsCollectionsPagedCompletedEventHandler GetRdsCollectionsPagedCompleted;
|
||||||
|
|
||||||
|
@ -241,6 +251,47 @@ namespace WebsitePanel.EnterpriseServer {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/GetRdsCollectionSettings", RequestNamespace="http://smbsaas/websitepanel/enterpriseserver", ResponseNamespace="http://smbsaas/websitepanel/enterpriseserver", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
||||||
|
public RdsCollectionSettings GetRdsCollectionSettings(int collectionId) {
|
||||||
|
object[] results = this.Invoke("GetRdsCollectionSettings", new object[] {
|
||||||
|
collectionId});
|
||||||
|
return ((RdsCollectionSettings)(results[0]));
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public System.IAsyncResult BeginGetRdsCollectionSettings(int collectionId, System.AsyncCallback callback, object asyncState) {
|
||||||
|
return this.BeginInvoke("GetRdsCollectionSettings", new object[] {
|
||||||
|
collectionId}, callback, asyncState);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public RdsCollectionSettings EndGetRdsCollectionSettings(System.IAsyncResult asyncResult) {
|
||||||
|
object[] results = this.EndInvoke(asyncResult);
|
||||||
|
return ((RdsCollectionSettings)(results[0]));
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public void GetRdsCollectionSettingsAsync(int collectionId) {
|
||||||
|
this.GetRdsCollectionSettingsAsync(collectionId, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public void GetRdsCollectionSettingsAsync(int collectionId, object userState) {
|
||||||
|
if ((this.GetRdsCollectionSettingsOperationCompleted == null)) {
|
||||||
|
this.GetRdsCollectionSettingsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetRdsCollectionSettingsOperationCompleted);
|
||||||
|
}
|
||||||
|
this.InvokeAsync("GetRdsCollectionSettings", new object[] {
|
||||||
|
collectionId}, this.GetRdsCollectionSettingsOperationCompleted, userState);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnGetRdsCollectionSettingsOperationCompleted(object arg) {
|
||||||
|
if ((this.GetRdsCollectionSettingsCompleted != null)) {
|
||||||
|
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
|
||||||
|
this.GetRdsCollectionSettingsCompleted(this, new GetRdsCollectionSettingsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/GetOrganizationRdsCollections", RequestNamespace="http://smbsaas/websitepanel/enterpriseserver", ResponseNamespace="http://smbsaas/websitepanel/enterpriseserver", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/GetOrganizationRdsCollections", RequestNamespace="http://smbsaas/websitepanel/enterpriseserver", ResponseNamespace="http://smbsaas/websitepanel/enterpriseserver", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
||||||
public RdsCollection[] GetOrganizationRdsCollections(int itemId) {
|
public RdsCollection[] GetOrganizationRdsCollections(int itemId) {
|
||||||
|
@ -370,6 +421,50 @@ namespace WebsitePanel.EnterpriseServer {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/EditRdsCollectionSettings", RequestNamespace="http://smbsaas/websitepanel/enterpriseserver", ResponseNamespace="http://smbsaas/websitepanel/enterpriseserver", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
||||||
|
public ResultObject EditRdsCollectionSettings(int itemId, RdsCollection collection) {
|
||||||
|
object[] results = this.Invoke("EditRdsCollectionSettings", new object[] {
|
||||||
|
itemId,
|
||||||
|
collection});
|
||||||
|
return ((ResultObject)(results[0]));
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public System.IAsyncResult BeginEditRdsCollectionSettings(int itemId, RdsCollection collection, System.AsyncCallback callback, object asyncState) {
|
||||||
|
return this.BeginInvoke("EditRdsCollectionSettings", new object[] {
|
||||||
|
itemId,
|
||||||
|
collection}, callback, asyncState);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public ResultObject EndEditRdsCollectionSettings(System.IAsyncResult asyncResult) {
|
||||||
|
object[] results = this.EndInvoke(asyncResult);
|
||||||
|
return ((ResultObject)(results[0]));
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public void EditRdsCollectionSettingsAsync(int itemId, RdsCollection collection) {
|
||||||
|
this.EditRdsCollectionSettingsAsync(itemId, collection, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public void EditRdsCollectionSettingsAsync(int itemId, RdsCollection collection, object userState) {
|
||||||
|
if ((this.EditRdsCollectionSettingsOperationCompleted == null)) {
|
||||||
|
this.EditRdsCollectionSettingsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnEditRdsCollectionSettingsOperationCompleted);
|
||||||
|
}
|
||||||
|
this.InvokeAsync("EditRdsCollectionSettings", new object[] {
|
||||||
|
itemId,
|
||||||
|
collection}, this.EditRdsCollectionSettingsOperationCompleted, userState);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnEditRdsCollectionSettingsOperationCompleted(object arg) {
|
||||||
|
if ((this.EditRdsCollectionSettingsCompleted != null)) {
|
||||||
|
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
|
||||||
|
this.EditRdsCollectionSettingsCompleted(this, new EditRdsCollectionSettingsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/GetRdsCollectionsPaged", RequestNamespace="http://smbsaas/websitepanel/enterpriseserver", ResponseNamespace="http://smbsaas/websitepanel/enterpriseserver", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/GetRdsCollectionsPaged", RequestNamespace="http://smbsaas/websitepanel/enterpriseserver", ResponseNamespace="http://smbsaas/websitepanel/enterpriseserver", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
||||||
public RdsCollectionPaged GetRdsCollectionsPaged(int itemId, string filterColumn, string filterValue, string sortColumn, int startRow, int maximumRows) {
|
public RdsCollectionPaged GetRdsCollectionsPaged(int itemId, string filterColumn, string filterValue, string sortColumn, int startRow, int maximumRows) {
|
||||||
|
@ -1737,6 +1832,32 @@ namespace WebsitePanel.EnterpriseServer {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||||
|
public delegate void GetRdsCollectionSettingsCompletedEventHandler(object sender, GetRdsCollectionSettingsCompletedEventArgs e);
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||||
|
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||||
|
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||||
|
public partial class GetRdsCollectionSettingsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||||
|
|
||||||
|
private object[] results;
|
||||||
|
|
||||||
|
internal GetRdsCollectionSettingsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
|
||||||
|
base(exception, cancelled, userState) {
|
||||||
|
this.results = results;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public RdsCollectionSettings Result {
|
||||||
|
get {
|
||||||
|
this.RaiseExceptionIfNecessary();
|
||||||
|
return ((RdsCollectionSettings)(this.results[0]));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||||
public delegate void GetOrganizationRdsCollectionsCompletedEventHandler(object sender, GetOrganizationRdsCollectionsCompletedEventArgs e);
|
public delegate void GetOrganizationRdsCollectionsCompletedEventHandler(object sender, GetOrganizationRdsCollectionsCompletedEventArgs e);
|
||||||
|
@ -1815,6 +1936,32 @@ namespace WebsitePanel.EnterpriseServer {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||||
|
public delegate void EditRdsCollectionSettingsCompletedEventHandler(object sender, EditRdsCollectionSettingsCompletedEventArgs e);
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||||
|
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||||
|
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||||
|
public partial class EditRdsCollectionSettingsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||||
|
|
||||||
|
private object[] results;
|
||||||
|
|
||||||
|
internal EditRdsCollectionSettingsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
|
||||||
|
base(exception, cancelled, userState) {
|
||||||
|
this.results = results;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public ResultObject Result {
|
||||||
|
get {
|
||||||
|
this.RaiseExceptionIfNecessary();
|
||||||
|
return ((ResultObject)(this.results[0]));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||||
public delegate void GetRdsCollectionsPagedCompletedEventHandler(object sender, GetRdsCollectionsPagedCompletedEventArgs e);
|
public delegate void GetRdsCollectionsPagedCompletedEventHandler(object sender, GetRdsCollectionsPagedCompletedEventArgs e);
|
||||||
|
|
|
@ -4556,6 +4556,95 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
|
|
||||||
#region RDS
|
#region RDS
|
||||||
|
|
||||||
|
public static IDataReader GetRdsCollectionSettingsByCollectionId(int collectionId)
|
||||||
|
{
|
||||||
|
return SqlHelper.ExecuteReader(
|
||||||
|
ConnectionString,
|
||||||
|
CommandType.StoredProcedure,
|
||||||
|
"GetRDSCollectionSettingsByCollectionId",
|
||||||
|
new SqlParameter("@RDSCollectionID", collectionId)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int AddRdsCollectionSettings(RdsCollectionSettings settings)
|
||||||
|
{
|
||||||
|
return AddRdsCollectionSettings(settings.RdsCollectionId, settings.DisconnectedSessionLimitMin, settings.ActiveSessionLimitMin, settings.IdleSessionLimitMin, settings.BrokenConnectionAction,
|
||||||
|
settings.AutomaticReconnectionEnabled, settings.TemporaryFoldersDeletedOnExit, settings.TemporaryFoldersPerSession, settings.ClientDeviceRedirectionOptions, settings.ClientPrinterRedirected,
|
||||||
|
settings.ClientPrinterAsDefault, settings.RDEasyPrintDriverEnabled, settings.MaxRedirectedMonitors);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static int AddRdsCollectionSettings(int rdsCollectionId, int disconnectedSessionLimitMin, int activeSessionLimitMin, int idleSessionLimitMin, string brokenConnectionAction,
|
||||||
|
bool automaticReconnectionEnabled, bool temporaryFoldersDeletedOnExit, bool temporaryFoldersPerSession, string clientDeviceRedirectionOptions, bool ClientPrinterRedirected,
|
||||||
|
bool clientPrinterAsDefault, bool rdEasyPrintDriverEnabled, int maxRedirectedMonitors)
|
||||||
|
{
|
||||||
|
SqlParameter rdsCollectionSettingsId = new SqlParameter("@RDSCollectionSettingsID", SqlDbType.Int);
|
||||||
|
rdsCollectionSettingsId.Direction = ParameterDirection.Output;
|
||||||
|
|
||||||
|
SqlHelper.ExecuteNonQuery(
|
||||||
|
ConnectionString,
|
||||||
|
CommandType.StoredProcedure,
|
||||||
|
"AddRDSCollectionSettings",
|
||||||
|
rdsCollectionSettingsId,
|
||||||
|
new SqlParameter("@RdsCollectionId", rdsCollectionId),
|
||||||
|
new SqlParameter("@DisconnectedSessionLimitMin", disconnectedSessionLimitMin),
|
||||||
|
new SqlParameter("@ActiveSessionLimitMin", activeSessionLimitMin),
|
||||||
|
new SqlParameter("@IdleSessionLimitMin", idleSessionLimitMin),
|
||||||
|
new SqlParameter("@BrokenConnectionAction", brokenConnectionAction),
|
||||||
|
new SqlParameter("@AutomaticReconnectionEnabled", automaticReconnectionEnabled),
|
||||||
|
new SqlParameter("@TemporaryFoldersDeletedOnExit", temporaryFoldersDeletedOnExit),
|
||||||
|
new SqlParameter("@TemporaryFoldersPerSession", temporaryFoldersPerSession),
|
||||||
|
new SqlParameter("@ClientDeviceRedirectionOptions", clientDeviceRedirectionOptions),
|
||||||
|
new SqlParameter("@ClientPrinterRedirected", ClientPrinterRedirected),
|
||||||
|
new SqlParameter("@ClientPrinterAsDefault", clientPrinterAsDefault),
|
||||||
|
new SqlParameter("@RDEasyPrintDriverEnabled", rdEasyPrintDriverEnabled),
|
||||||
|
new SqlParameter("@MaxRedirectedMonitors", maxRedirectedMonitors)
|
||||||
|
);
|
||||||
|
|
||||||
|
return Convert.ToInt32(rdsCollectionSettingsId.Value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void UpdateRDSCollectionSettings(RdsCollectionSettings settings)
|
||||||
|
{
|
||||||
|
UpdateRDSCollectionSettings(settings.Id, settings.RdsCollectionId, settings.DisconnectedSessionLimitMin, settings.ActiveSessionLimitMin, settings.IdleSessionLimitMin, settings.BrokenConnectionAction,
|
||||||
|
settings.AutomaticReconnectionEnabled, settings.TemporaryFoldersDeletedOnExit, settings.TemporaryFoldersPerSession, settings.ClientDeviceRedirectionOptions, settings.ClientPrinterRedirected,
|
||||||
|
settings.ClientPrinterAsDefault, settings.RDEasyPrintDriverEnabled, settings.MaxRedirectedMonitors);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void UpdateRDSCollectionSettings(int id, int rdsCollectionId, int disconnectedSessionLimitMin, int activeSessionLimitMin, int idleSessionLimitMin, string brokenConnectionAction,
|
||||||
|
bool automaticReconnectionEnabled, bool temporaryFoldersDeletedOnExit, bool temporaryFoldersPerSession, string clientDeviceRedirectionOptions, bool ClientPrinterRedirected,
|
||||||
|
bool clientPrinterAsDefault, bool rdEasyPrintDriverEnabled, int maxRedirectedMonitors)
|
||||||
|
{
|
||||||
|
SqlHelper.ExecuteNonQuery(
|
||||||
|
ConnectionString,
|
||||||
|
CommandType.StoredProcedure,
|
||||||
|
"UpdateRDSCollectionSettings",
|
||||||
|
new SqlParameter("@Id", id),
|
||||||
|
new SqlParameter("@RdsCollectionId", rdsCollectionId),
|
||||||
|
new SqlParameter("@DisconnectedSessionLimitMin", disconnectedSessionLimitMin),
|
||||||
|
new SqlParameter("@ActiveSessionLimitMin", activeSessionLimitMin),
|
||||||
|
new SqlParameter("@IdleSessionLimitMin", idleSessionLimitMin),
|
||||||
|
new SqlParameter("@BrokenConnectionAction", brokenConnectionAction),
|
||||||
|
new SqlParameter("@AutomaticReconnectionEnabled", automaticReconnectionEnabled),
|
||||||
|
new SqlParameter("@TemporaryFoldersDeletedOnExit", temporaryFoldersDeletedOnExit),
|
||||||
|
new SqlParameter("@TemporaryFoldersPerSession", temporaryFoldersPerSession),
|
||||||
|
new SqlParameter("@ClientDeviceRedirectionOptions", clientDeviceRedirectionOptions),
|
||||||
|
new SqlParameter("@ClientPrinterRedirected", ClientPrinterRedirected),
|
||||||
|
new SqlParameter("@ClientPrinterAsDefault", clientPrinterAsDefault),
|
||||||
|
new SqlParameter("@RDEasyPrintDriverEnabled", rdEasyPrintDriverEnabled),
|
||||||
|
new SqlParameter("@MaxRedirectedMonitors", maxRedirectedMonitors)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void DeleteRDSCollectionSettings(int id)
|
||||||
|
{
|
||||||
|
SqlHelper.ExecuteNonQuery(
|
||||||
|
ConnectionString,
|
||||||
|
CommandType.StoredProcedure,
|
||||||
|
"DeleteRDSCollectionSettings",
|
||||||
|
new SqlParameter("@Id", id)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
public static IDataReader GetRDSCollectionsByItemId(int itemId)
|
public static IDataReader GetRDSCollectionsByItemId(int itemId)
|
||||||
{
|
{
|
||||||
return SqlHelper.ExecuteReader(
|
return SqlHelper.ExecuteReader(
|
||||||
|
@ -4614,7 +4703,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
new SqlParameter("@ItemID", itemId),
|
new SqlParameter("@ItemID", itemId),
|
||||||
new SqlParameter("@Name", name),
|
new SqlParameter("@Name", name),
|
||||||
new SqlParameter("@Description", description),
|
new SqlParameter("@Description", description),
|
||||||
new SqlParameter("DisplayName", displayName)
|
new SqlParameter("@DisplayName", displayName)
|
||||||
);
|
);
|
||||||
|
|
||||||
// read identity
|
// read identity
|
||||||
|
|
|
@ -58,6 +58,11 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
return GetRdsCollectionInternal(collectionId);
|
return GetRdsCollectionInternal(collectionId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static RdsCollectionSettings GetRdsCollectionSettings(int collectionId)
|
||||||
|
{
|
||||||
|
return GetRdsCollectionSettingsInternal(collectionId);
|
||||||
|
}
|
||||||
|
|
||||||
public static List<RdsCollection> GetOrganizationRdsCollections(int itemId)
|
public static List<RdsCollection> GetOrganizationRdsCollections(int itemId)
|
||||||
{
|
{
|
||||||
return GetOrganizationRdsCollectionsInternal(itemId);
|
return GetOrganizationRdsCollectionsInternal(itemId);
|
||||||
|
@ -73,6 +78,11 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
return EditRdsCollectionInternal(itemId, collection);
|
return EditRdsCollectionInternal(itemId, collection);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static ResultObject EditRdsCollectionSettings(int itemId, RdsCollection collection)
|
||||||
|
{
|
||||||
|
return EditRdsCollectionSettingsInternal(itemId, collection);
|
||||||
|
}
|
||||||
|
|
||||||
public static RdsCollectionPaged GetRdsCollectionsPaged(int itemId, string filterColumn, string filterValue, string sortColumn, int startRow, int maximumRows)
|
public static RdsCollectionPaged GetRdsCollectionsPaged(int itemId, string filterColumn, string filterValue, string sortColumn, int startRow, int maximumRows)
|
||||||
{
|
{
|
||||||
return GetRdsCollectionsPagedInternal(itemId, filterColumn, filterValue, sortColumn, startRow, maximumRows);
|
return GetRdsCollectionsPagedInternal(itemId, filterColumn, filterValue, sortColumn, startRow, maximumRows);
|
||||||
|
@ -226,13 +236,15 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
private static RdsCollection GetRdsCollectionInternal(int collectionId)
|
private static RdsCollection GetRdsCollectionInternal(int collectionId)
|
||||||
{
|
{
|
||||||
var collection = ObjectUtils.FillObjectFromDataReader<RdsCollection>(DataProvider.GetRDSCollectionById(collectionId));
|
var collection = ObjectUtils.FillObjectFromDataReader<RdsCollection>(DataProvider.GetRDSCollectionById(collectionId));
|
||||||
|
var collectionSettings = ObjectUtils.FillObjectFromDataReader<RdsCollectionSettings>(DataProvider.GetRdsCollectionSettingsByCollectionId(collectionId));
|
||||||
|
collection.Settings = collectionSettings;
|
||||||
|
|
||||||
var result = TaskManager.StartResultTask<ResultObject>("REMOTE_DESKTOP_SERVICES", "ADD_RDS_COLLECTION");
|
var result = TaskManager.StartResultTask<ResultObject>("REMOTE_DESKTOP_SERVICES", "ADD_RDS_COLLECTION");
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
// load organization
|
// load organization
|
||||||
Organization org = OrganizationController.GetOrganization(4115);
|
Organization org = OrganizationController.GetOrganization(collection.ItemId);
|
||||||
if (org == null)
|
if (org == null)
|
||||||
{
|
{
|
||||||
result.IsSuccess = false;
|
result.IsSuccess = false;
|
||||||
|
@ -253,6 +265,13 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
return collection;
|
return collection;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static RdsCollectionSettings GetRdsCollectionSettingsInternal(int collectionId)
|
||||||
|
{
|
||||||
|
var collection = ObjectUtils.FillObjectFromDataReader<RdsCollection>(DataProvider.GetRDSCollectionById(collectionId));
|
||||||
|
|
||||||
|
return ObjectUtils.FillObjectFromDataReader<RdsCollectionSettings>(DataProvider.GetRdsCollectionSettingsByCollectionId(collectionId));
|
||||||
|
}
|
||||||
|
|
||||||
private static List<RdsCollection> GetOrganizationRdsCollectionsInternal(int itemId)
|
private static List<RdsCollection> GetOrganizationRdsCollectionsInternal(int itemId)
|
||||||
{
|
{
|
||||||
var collections = ObjectUtils.CreateListFromDataReader<RdsCollection>(DataProvider.GetRDSCollectionsByItemId(itemId));
|
var collections = ObjectUtils.CreateListFromDataReader<RdsCollection>(DataProvider.GetRDSCollectionsByItemId(itemId));
|
||||||
|
@ -280,9 +299,38 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
|
|
||||||
var rds = GetRemoteDesktopServices(GetRemoteDesktopServiceID(org.PackageId));
|
var rds = GetRemoteDesktopServices(GetRemoteDesktopServiceID(org.PackageId));
|
||||||
collection.Name = GetFormattedCollectionName(collection.DisplayName, org.OrganizationId);
|
collection.Name = GetFormattedCollectionName(collection.DisplayName, org.OrganizationId);
|
||||||
|
|
||||||
|
collection.Settings = new RdsCollectionSettings
|
||||||
|
{
|
||||||
|
DisconnectedSessionLimitMin = 0,
|
||||||
|
ActiveSessionLimitMin = 0,
|
||||||
|
IdleSessionLimitMin = 0,
|
||||||
|
BrokenConnectionAction = BrokenConnectionActionValues.Disconnect.ToString(),
|
||||||
|
AutomaticReconnectionEnabled = true,
|
||||||
|
TemporaryFoldersDeletedOnExit = true,
|
||||||
|
TemporaryFoldersPerSession = true,
|
||||||
|
ClientDeviceRedirectionOptions = string.Join(",", new List<string>
|
||||||
|
{
|
||||||
|
ClientDeviceRedirectionOptionValues.AudioVideoPlayBack.ToString(),
|
||||||
|
ClientDeviceRedirectionOptionValues.AudioRecording.ToString(),
|
||||||
|
ClientDeviceRedirectionOptionValues.SmartCard.ToString(),
|
||||||
|
ClientDeviceRedirectionOptionValues.Clipboard.ToString(),
|
||||||
|
ClientDeviceRedirectionOptionValues.Drive.ToString(),
|
||||||
|
ClientDeviceRedirectionOptionValues.PlugAndPlayDevice.ToString()
|
||||||
|
}.ToArray()),
|
||||||
|
ClientPrinterRedirected = true,
|
||||||
|
ClientPrinterAsDefault = true,
|
||||||
|
RDEasyPrintDriverEnabled = true,
|
||||||
|
MaxRedirectedMonitors = 16
|
||||||
|
};
|
||||||
|
|
||||||
rds.CreateCollection(org.OrganizationId, collection);
|
rds.CreateCollection(org.OrganizationId, collection);
|
||||||
collection.Id = DataProvider.AddRDSCollection(itemId, collection.Name, collection.Description, collection.DisplayName);
|
collection.Id = DataProvider.AddRDSCollection(itemId, collection.Name, collection.Description, collection.DisplayName);
|
||||||
|
|
||||||
|
collection.Settings.RdsCollectionId = collection.Id;
|
||||||
|
int settingsId = DataProvider.AddRdsCollectionSettings(collection.Settings);
|
||||||
|
collection.Settings.Id = settingsId;
|
||||||
|
|
||||||
foreach (var server in collection.Servers)
|
foreach (var server in collection.Servers)
|
||||||
{
|
{
|
||||||
DataProvider.AddRDSServerToCollection(server.Id, collection.Id);
|
DataProvider.AddRDSServerToCollection(server.Id, collection.Id);
|
||||||
|
@ -359,6 +407,54 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static ResultObject EditRdsCollectionSettingsInternal(int itemId, RdsCollection collection)
|
||||||
|
{
|
||||||
|
var result = TaskManager.StartResultTask<ResultObject>("REMOTE_DESKTOP_SERVICES", "EDIT_RDS_COLLECTION_SETTINGS");
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Organization org = OrganizationController.GetOrganization(itemId);
|
||||||
|
|
||||||
|
if (org == null)
|
||||||
|
{
|
||||||
|
result.IsSuccess = false;
|
||||||
|
result.AddError("", new NullReferenceException("Organization not found"));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
var rds = GetRemoteDesktopServices(GetRemoteDesktopServiceID(org.PackageId));
|
||||||
|
rds.EditRdsCollectionSettings(collection);
|
||||||
|
var collectionSettings = ObjectUtils.FillObjectFromDataReader<RdsCollectionSettings>(DataProvider.GetRdsCollectionSettingsByCollectionId(collection.Id));
|
||||||
|
|
||||||
|
if (collectionSettings == null)
|
||||||
|
{
|
||||||
|
DataProvider.AddRdsCollectionSettings(collection.Settings);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
DataProvider.UpdateRDSCollectionSettings(collection.Settings);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
result.AddError("REMOTE_DESKTOP_SERVICES_ADD_RDS_COLLECTION", ex);
|
||||||
|
throw TaskManager.WriteError(ex);
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
if (!result.IsSuccess)
|
||||||
|
{
|
||||||
|
TaskManager.CompleteResultTask(result);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TaskManager.CompleteResultTask();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
private static RdsCollectionPaged GetRdsCollectionsPagedInternal(int itemId, string filterColumn, string filterValue, string sortColumn, int startRow, int maximumRows)
|
private static RdsCollectionPaged GetRdsCollectionsPagedInternal(int itemId, string filterColumn, string filterValue, string sortColumn, int startRow, int maximumRows)
|
||||||
{
|
{
|
||||||
DataSet ds = DataProvider.GetRDSCollectionsPaged(itemId, filterColumn, filterValue, sortColumn, startRow, maximumRows);
|
DataSet ds = DataProvider.GetRDSCollectionsPaged(itemId, filterColumn, filterValue, sortColumn, startRow, maximumRows);
|
||||||
|
|
|
@ -58,6 +58,12 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
return RemoteDesktopServicesController.GetRdsCollection(collectionId);
|
return RemoteDesktopServicesController.GetRdsCollection(collectionId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[WebMethod]
|
||||||
|
public RdsCollectionSettings GetRdsCollectionSettings(int collectionId)
|
||||||
|
{
|
||||||
|
return RemoteDesktopServicesController.GetRdsCollectionSettings(collectionId);
|
||||||
|
}
|
||||||
|
|
||||||
[WebMethod]
|
[WebMethod]
|
||||||
public List<RdsCollection> GetOrganizationRdsCollections(int itemId)
|
public List<RdsCollection> GetOrganizationRdsCollections(int itemId)
|
||||||
{
|
{
|
||||||
|
@ -76,6 +82,12 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
return RemoteDesktopServicesController.EditRdsCollection(itemId, collection);
|
return RemoteDesktopServicesController.EditRdsCollection(itemId, collection);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[WebMethod]
|
||||||
|
public ResultObject EditRdsCollectionSettings(int itemId, RdsCollection collection)
|
||||||
|
{
|
||||||
|
return RemoteDesktopServicesController.EditRdsCollectionSettings(itemId, collection);
|
||||||
|
}
|
||||||
|
|
||||||
[WebMethod]
|
[WebMethod]
|
||||||
public RdsCollectionPaged GetRdsCollectionsPaged(int itemId, string filterColumn, string filterValue,
|
public RdsCollectionPaged GetRdsCollectionsPaged(int itemId, string filterColumn, string filterValue,
|
||||||
string sortColumn, int startRow, int maximumRows)
|
string sortColumn, int startRow, int maximumRows)
|
||||||
|
|
|
@ -65,5 +65,6 @@ namespace WebsitePanel.Providers.RemoteDesktopServices
|
||||||
bool SetApplicationUsers(string collectionName, RemoteApplication remoteApp, string[] users);
|
bool SetApplicationUsers(string collectionName, RemoteApplication remoteApp, string[] users);
|
||||||
bool CheckRDSServerAvaliable(string hostname);
|
bool CheckRDSServerAvaliable(string hostname);
|
||||||
List<string> GetServersExistingInCollections();
|
List<string> GetServersExistingInCollections();
|
||||||
|
void EditRdsCollectionSettings(RdsCollection collection);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,6 +37,7 @@ namespace WebsitePanel.Providers.RemoteDesktopServices
|
||||||
public RdsCollection()
|
public RdsCollection()
|
||||||
{
|
{
|
||||||
Servers = new List<RdsServer>();
|
Servers = new List<RdsServer>();
|
||||||
|
Settings = new RdsCollectionSettings();
|
||||||
}
|
}
|
||||||
|
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
|
@ -45,5 +46,6 @@ namespace WebsitePanel.Providers.RemoteDesktopServices
|
||||||
public string Description { get; set; }
|
public string Description { get; set; }
|
||||||
public string DisplayName { get; set; }
|
public string DisplayName { get; set; }
|
||||||
public List<RdsServer> Servers { get; set; }
|
public List<RdsServer> Servers { get; set; }
|
||||||
|
public RdsCollectionSettings Settings { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,26 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace WebsitePanel.Providers.RemoteDesktopServices
|
||||||
|
{
|
||||||
|
[Serializable]
|
||||||
|
public class RdsCollectionSettings
|
||||||
|
{
|
||||||
|
public int Id { get; set; }
|
||||||
|
public int RdsCollectionId { get; set; }
|
||||||
|
public int DisconnectedSessionLimitMin { get; set; }
|
||||||
|
public int ActiveSessionLimitMin { get; set; }
|
||||||
|
public int IdleSessionLimitMin { get; set; }
|
||||||
|
public string BrokenConnectionAction { get; set; }
|
||||||
|
public bool AutomaticReconnectionEnabled { get; set; }
|
||||||
|
public bool TemporaryFoldersDeletedOnExit { get; set; }
|
||||||
|
public bool TemporaryFoldersPerSession { get; set; }
|
||||||
|
public string ClientDeviceRedirectionOptions { get; set; }
|
||||||
|
public bool ClientPrinterRedirected { get; set; }
|
||||||
|
public bool ClientPrinterAsDefault { get; set; }
|
||||||
|
public bool RDEasyPrintDriverEnabled { get; set; }
|
||||||
|
public int MaxRedirectedMonitors { get; set; }
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,38 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace WebsitePanel.Providers.RemoteDesktopServices
|
||||||
|
{
|
||||||
|
public enum BrokenConnectionActionValues
|
||||||
|
{
|
||||||
|
Disconnect,
|
||||||
|
LogOff
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum ClientDeviceRedirectionOptionValues
|
||||||
|
{
|
||||||
|
AudioVideoPlayBack,
|
||||||
|
AudioRecording,
|
||||||
|
SmartCard,
|
||||||
|
PlugAndPlayDevice,
|
||||||
|
Drive,
|
||||||
|
Clipboard
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum SecurityLayerValues
|
||||||
|
{
|
||||||
|
RDP,
|
||||||
|
Negotiate,
|
||||||
|
SSL
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum EncryptionLevel
|
||||||
|
{
|
||||||
|
Low,
|
||||||
|
ClientCompatible,
|
||||||
|
High,
|
||||||
|
FipsCompliant
|
||||||
|
}
|
||||||
|
}
|
|
@ -131,6 +131,8 @@
|
||||||
<Compile Include="RemoteDesktopServices\IRemoteDesktopServices.cs" />
|
<Compile Include="RemoteDesktopServices\IRemoteDesktopServices.cs" />
|
||||||
<Compile Include="RemoteDesktopServices\RdsCollection.cs" />
|
<Compile Include="RemoteDesktopServices\RdsCollection.cs" />
|
||||||
<Compile Include="RemoteDesktopServices\RdsCollectionPaged.cs" />
|
<Compile Include="RemoteDesktopServices\RdsCollectionPaged.cs" />
|
||||||
|
<Compile Include="RemoteDesktopServices\RdsCollectionSettings.cs" />
|
||||||
|
<Compile Include="RemoteDesktopServices\RdsEnums.cs" />
|
||||||
<Compile Include="RemoteDesktopServices\RdsPolicyTypes.cs" />
|
<Compile Include="RemoteDesktopServices\RdsPolicyTypes.cs" />
|
||||||
<Compile Include="RemoteDesktopServices\RdsServer.cs" />
|
<Compile Include="RemoteDesktopServices\RdsServer.cs" />
|
||||||
<Compile Include="RemoteDesktopServices\RdsServersPaged.cs" />
|
<Compile Include="RemoteDesktopServices\RdsServersPaged.cs" />
|
||||||
|
|
|
@ -35,6 +35,7 @@ using System.Net.NetworkInformation;
|
||||||
using System.Net.Sockets;
|
using System.Net.Sockets;
|
||||||
using System.Runtime.Remoting;
|
using System.Runtime.Remoting;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
using System.Reflection;
|
||||||
using Microsoft.Win32;
|
using Microsoft.Win32;
|
||||||
using WebsitePanel.Providers.HostedSolution;
|
using WebsitePanel.Providers.HostedSolution;
|
||||||
using WebsitePanel.Server.Utils;
|
using WebsitePanel.Server.Utils;
|
||||||
|
@ -258,6 +259,7 @@ namespace WebsitePanel.Providers.RemoteDesktopServices
|
||||||
throw new Exception("Collection not created");
|
throw new Exception("Collection not created");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EditRdsCollectionSettingsInternal(collection, runSpace);
|
||||||
var orgPath = GetOrganizationPath(organizationId);
|
var orgPath = GetOrganizationPath(organizationId);
|
||||||
|
|
||||||
if (!ActiveDirectoryUtils.AdObjectExists(GetComputerGroupPath(organizationId, collection.Name)))
|
if (!ActiveDirectoryUtils.AdObjectExists(GetComputerGroupPath(organizationId, collection.Name)))
|
||||||
|
@ -310,6 +312,30 @@ namespace WebsitePanel.Providers.RemoteDesktopServices
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void EditRdsCollectionSettings(RdsCollection collection)
|
||||||
|
{
|
||||||
|
Runspace runSpace = null;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
runSpace = OpenRunspace();
|
||||||
|
|
||||||
|
if (collection.Settings != null)
|
||||||
|
{
|
||||||
|
var errors = EditRdsCollectionSettingsInternal(collection, runSpace);
|
||||||
|
|
||||||
|
if (errors.Count > 0)
|
||||||
|
{
|
||||||
|
throw new Exception(string.Format("Settings not setted:\r\n{0}", string.Join("r\\n\\", errors.ToArray())));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
CloseRunspace(runSpace);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public List<string> GetServersExistingInCollections()
|
public List<string> GetServersExistingInCollections()
|
||||||
{
|
{
|
||||||
Runspace runSpace = null;
|
Runspace runSpace = null;
|
||||||
|
@ -1618,6 +1644,38 @@ namespace WebsitePanel.Providers.RemoteDesktopServices
|
||||||
return existingHosts;
|
return existingHosts;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal List<string> EditRdsCollectionSettingsInternal(RdsCollection collection, Runspace runspace)
|
||||||
|
{
|
||||||
|
object[] errors;
|
||||||
|
Command cmd = new Command("Set-RDSessionCollectionConfiguration");
|
||||||
|
cmd.Parameters.Add("CollectionName", collection.Name);
|
||||||
|
cmd.Parameters.Add("ConnectionBroker", ConnectionBroker);
|
||||||
|
|
||||||
|
var properties = collection.Settings.GetType().GetProperties();
|
||||||
|
|
||||||
|
foreach(var prop in properties)
|
||||||
|
{
|
||||||
|
if (prop.Name.ToLower() != "id" && prop.Name.ToLower() != "rdscollectionid")
|
||||||
|
{
|
||||||
|
var value = prop.GetValue(collection.Settings, null);
|
||||||
|
|
||||||
|
if (value != null)
|
||||||
|
{
|
||||||
|
cmd.Parameters.Add(prop.Name, value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ExecuteShellCommand(runspace, cmd, false, out errors);
|
||||||
|
|
||||||
|
if (errors != null)
|
||||||
|
{
|
||||||
|
return errors.Select(e => e.ToString()).ToList();
|
||||||
|
}
|
||||||
|
|
||||||
|
return new List<string>();
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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>
|
// <auto-generated>
|
||||||
// This code was generated by a tool.
|
// This code was generated by a tool.
|
||||||
|
@ -59,6 +31,8 @@ namespace WebsitePanel.Providers.RemoteDesktopServices {
|
||||||
|
|
||||||
private System.Threading.SendOrPostCallback CreateCollectionOperationCompleted;
|
private System.Threading.SendOrPostCallback CreateCollectionOperationCompleted;
|
||||||
|
|
||||||
|
private System.Threading.SendOrPostCallback EditRdsCollectionSettingsOperationCompleted;
|
||||||
|
|
||||||
private System.Threading.SendOrPostCallback AddRdsServersToDeploymentOperationCompleted;
|
private System.Threading.SendOrPostCallback AddRdsServersToDeploymentOperationCompleted;
|
||||||
|
|
||||||
private System.Threading.SendOrPostCallback GetCollectionOperationCompleted;
|
private System.Threading.SendOrPostCallback GetCollectionOperationCompleted;
|
||||||
|
@ -109,6 +83,9 @@ namespace WebsitePanel.Providers.RemoteDesktopServices {
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
public event CreateCollectionCompletedEventHandler CreateCollectionCompleted;
|
public event CreateCollectionCompletedEventHandler CreateCollectionCompleted;
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public event EditRdsCollectionSettingsCompletedEventHandler EditRdsCollectionSettingsCompleted;
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
public event AddRdsServersToDeploymentCompletedEventHandler AddRdsServersToDeploymentCompleted;
|
public event AddRdsServersToDeploymentCompletedEventHandler AddRdsServersToDeploymentCompleted;
|
||||||
|
|
||||||
|
@ -217,6 +194,46 @@ namespace WebsitePanel.Providers.RemoteDesktopServices {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
|
||||||
|
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/EditRdsCollectionSettings", RequestNamespace="http://smbsaas/websitepanel/server/", ResponseNamespace="http://smbsaas/websitepanel/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
||||||
|
public void EditRdsCollectionSettings(RdsCollection collection) {
|
||||||
|
this.Invoke("EditRdsCollectionSettings", new object[] {
|
||||||
|
collection});
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public System.IAsyncResult BeginEditRdsCollectionSettings(RdsCollection collection, System.AsyncCallback callback, object asyncState) {
|
||||||
|
return this.BeginInvoke("EditRdsCollectionSettings", new object[] {
|
||||||
|
collection}, callback, asyncState);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public void EndEditRdsCollectionSettings(System.IAsyncResult asyncResult) {
|
||||||
|
this.EndInvoke(asyncResult);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public void EditRdsCollectionSettingsAsync(RdsCollection collection) {
|
||||||
|
this.EditRdsCollectionSettingsAsync(collection, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public void EditRdsCollectionSettingsAsync(RdsCollection collection, object userState) {
|
||||||
|
if ((this.EditRdsCollectionSettingsOperationCompleted == null)) {
|
||||||
|
this.EditRdsCollectionSettingsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnEditRdsCollectionSettingsOperationCompleted);
|
||||||
|
}
|
||||||
|
this.InvokeAsync("EditRdsCollectionSettings", new object[] {
|
||||||
|
collection}, this.EditRdsCollectionSettingsOperationCompleted, userState);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnEditRdsCollectionSettingsOperationCompleted(object arg) {
|
||||||
|
if ((this.EditRdsCollectionSettingsCompleted != null)) {
|
||||||
|
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
|
||||||
|
this.EditRdsCollectionSettingsCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
|
[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
|
||||||
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/AddRdsServersToDeployment", RequestNamespace="http://smbsaas/websitepanel/server/", ResponseNamespace="http://smbsaas/websitepanel/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/AddRdsServersToDeployment", RequestNamespace="http://smbsaas/websitepanel/server/", ResponseNamespace="http://smbsaas/websitepanel/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
||||||
|
@ -1172,6 +1189,10 @@ namespace WebsitePanel.Providers.RemoteDesktopServices {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||||
|
public delegate void EditRdsCollectionSettingsCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||||
public delegate void AddRdsServersToDeploymentCompletedEventHandler(object sender, AddRdsServersToDeploymentCompletedEventArgs e);
|
public delegate void AddRdsServersToDeploymentCompletedEventHandler(object sender, AddRdsServersToDeploymentCompletedEventArgs e);
|
||||||
|
|
|
@ -76,6 +76,22 @@ namespace WebsitePanel.Server
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[WebMethod, SoapHeader("settings")]
|
||||||
|
public void EditRdsCollectionSettings(RdsCollection collection)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Log.WriteStart("'{0}' EditRdsCollectionSettings", ProviderSettings.ProviderName);
|
||||||
|
RDSProvider.EditRdsCollectionSettings(collection);
|
||||||
|
Log.WriteEnd("'{0}' EditRdsCollectionSettings", ProviderSettings.ProviderName);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Log.WriteError(String.Format("'{0}' EditRdsCollectionSettings", ProviderSettings.ProviderName), ex);
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[WebMethod, SoapHeader("settings")]
|
[WebMethod, SoapHeader("settings")]
|
||||||
public bool AddRdsServersToDeployment(RdsServer[] servers)
|
public bool AddRdsServersToDeployment(RdsServer[] servers)
|
||||||
{
|
{
|
||||||
|
|
|
@ -149,4 +149,5 @@
|
||||||
<Control key="rds_collection_edit_users" general_key="rds_collections" />
|
<Control key="rds_collection_edit_users" general_key="rds_collections" />
|
||||||
<Control key="rds_application_edit_users" general_key="rds_collections" />
|
<Control key="rds_application_edit_users" general_key="rds_collections" />
|
||||||
<Control key="rds_edit_collection" general_key="rds_collections" />
|
<Control key="rds_edit_collection" general_key="rds_collections" />
|
||||||
|
<Control key="rds_edit_collection_settings" general_key="rds_collections" />
|
||||||
</Controls>
|
</Controls>
|
||||||
|
|
|
@ -580,6 +580,7 @@
|
||||||
<Control key="deleted_user_memberof" src="WebsitePanel/ExchangeServer/OrganizationDeletedUserMemberOf.ascx" title="DeletedUserMemberOf" type="View" />
|
<Control key="deleted_user_memberof" src="WebsitePanel/ExchangeServer/OrganizationDeletedUserMemberOf.ascx" title="DeletedUserMemberOf" type="View" />
|
||||||
<Control key="rds_application_edit_users" src="WebsitePanel/RDS/RDSEditApplicationUsers.ascx" title="RDSEditApplicationUsers" type="View" />
|
<Control key="rds_application_edit_users" src="WebsitePanel/RDS/RDSEditApplicationUsers.ascx" title="RDSEditApplicationUsers" type="View" />
|
||||||
<Control key="rds_edit_collection" src="WebsitePanel/RDS/RDSEditCollection.ascx" title="RDSEditCollection" type="View" />
|
<Control key="rds_edit_collection" src="WebsitePanel/RDS/RDSEditCollection.ascx" title="RDSEditCollection" type="View" />
|
||||||
|
<Control key="rds_edit_collection_settings" src="WebsitePanel/RDS/RDSEditCollectionSettings.ascx" title="RDSEditCollectionSettings" type="View" />
|
||||||
</Controls>
|
</Controls>
|
||||||
</ModuleDefinition>
|
</ModuleDefinition>
|
||||||
|
|
||||||
|
|
|
@ -5638,4 +5638,7 @@
|
||||||
<data name="ERROR.RDSCOLLECTION_NOT_CREATED" xml:space="preserve">
|
<data name="ERROR.RDSCOLLECTION_NOT_CREATED" xml:space="preserve">
|
||||||
<value>Collection not created</value>
|
<value>Collection not created</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="ERROR.RDSCOLLECTIONSETTINGS_NOT_UPDATES" xml:space="preserve">
|
||||||
|
<value>RDS Collection settings not updated</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
|
@ -25,9 +25,10 @@ td.Normal > br {display:none;}
|
||||||
.NormalTextBox + br + span {font-size:11px; color:#888;}
|
.NormalTextBox + br + span {font-size:11px; color:#888;}
|
||||||
td.Normal .NormalTextBox + span {display:inline-block; padding:0;}
|
td.Normal .NormalTextBox + span {display:inline-block; padding:0;}
|
||||||
.FormSimpleLabel {padding:9px 8px 14px 0; color:#555; vertical-align:top;}
|
.FormSimpleLabel {padding:9px 8px 14px 0; color:#555; vertical-align:top;}
|
||||||
.FormLabel150, .FormLabel200 {padding:9px 8px 14px 0; color:#888; vertical-align:top;}
|
.FormLabel150, .FormLabel200, .FormLabel260 {padding:9px 8px 14px 0; color:#888; vertical-align:top;}
|
||||||
.FormLabel150 {width:150px;}
|
.FormLabel150 {width:150px;}
|
||||||
.FormLabel200 {width:200px;}
|
.FormLabel200 {width:200px;}
|
||||||
|
.FormLabel260 {width:260px;}
|
||||||
.Huge {font-family:'Segoe UI Light','Open Sans',Arial!important; font-size:36px; font-weight:300; color:#333; background:none !important; border:none !important; padding:0 !important; letter-spacing:-1px;}
|
.Huge {font-family:'Segoe UI Light','Open Sans',Arial!important; font-size:36px; font-weight:300; color:#333; background:none !important; border:none !important; padding:0 !important; letter-spacing:-1px;}
|
||||||
.FormBody .Huge {font-size:18px; font-weight:600; letter-spacing:0;}
|
.FormBody .Huge {font-size:18px; font-weight:600; letter-spacing:0;}
|
||||||
.Right .SubHead {width:80px;}
|
.Right .SubHead {width:80px;}
|
||||||
|
|
|
@ -0,0 +1,159 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<data name="locActiveSessionLimit.Text" xml:space="preserve">
|
||||||
|
<value>Active session limit:</value>
|
||||||
|
</data>
|
||||||
|
<data name="locCollectionBroken.Text" xml:space="preserve">
|
||||||
|
<value>When session limit is reached or connection is broken:</value>
|
||||||
|
</data>
|
||||||
|
<data name="locDisconnectedSessionLimit.Text" xml:space="preserve">
|
||||||
|
<value>End a disconneted session:</value>
|
||||||
|
</data>
|
||||||
|
<data name="locEnableRedirection.Text" xml:space="preserve">
|
||||||
|
<value>Enable redirection for the following:</value>
|
||||||
|
</data>
|
||||||
|
<data name="locIdleSessionLimit.Text" xml:space="preserve">
|
||||||
|
<value>Idle session limit:</value>
|
||||||
|
</data>
|
||||||
|
<data name="locMonitors.Text" xml:space="preserve">
|
||||||
|
<value>Monitors</value>
|
||||||
|
</data>
|
||||||
|
<data name="locMonitorsNumber.Text" xml:space="preserve">
|
||||||
|
<value>Maximum number of redirected monitors:</value>
|
||||||
|
</data>
|
||||||
|
<data name="locPrinters.Text" xml:space="preserve">
|
||||||
|
<value>Printers</value>
|
||||||
|
</data>
|
||||||
|
<data name="locSessionLimitHeader.Text" xml:space="preserve">
|
||||||
|
<value>Set RD Session Host server timeout and reconnection settings for the session collection.</value>
|
||||||
|
</data>
|
||||||
|
<data name="locTempFolder.Text" xml:space="preserve">
|
||||||
|
<value>Temporary folder settings:</value>
|
||||||
|
</data>
|
||||||
|
<data name="locTitle.Text" xml:space="preserve">
|
||||||
|
<value>Edit RDS Collection Settings</value>
|
||||||
|
</data>
|
||||||
|
<data name="secRdsClientSettings.Text" xml:space="preserve">
|
||||||
|
<value>Client Settings</value>
|
||||||
|
</data>
|
||||||
|
<data name="secRdsSessionSettings.Text" xml:space="preserve">
|
||||||
|
<value>Session Settings</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
|
@ -38,7 +38,6 @@ namespace WebsitePanel.Portal.RDS
|
||||||
{
|
{
|
||||||
public partial class RDSEditCollectionApps : WebsitePanelModuleBase
|
public partial class RDSEditCollectionApps : WebsitePanelModuleBase
|
||||||
{
|
{
|
||||||
|
|
||||||
protected void Page_Load(object sender, EventArgs e)
|
protected void Page_Load(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
remoreApps.Module = Module;
|
remoreApps.Module = Module;
|
||||||
|
|
|
@ -0,0 +1,186 @@
|
||||||
|
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="RDSEditCollectionSettings.ascx.cs" Inherits="WebsitePanel.Portal.RDS.RDSEditCollectionSettings" %>
|
||||||
|
<%@ Register Src="../UserControls/SimpleMessageBox.ascx" TagName="SimpleMessageBox" TagPrefix="wsp" %>
|
||||||
|
<%@ Register Src="../UserControls/EnableAsyncTasksSupport.ascx" TagName="EnableAsyncTasksSupport" TagPrefix="wsp" %>
|
||||||
|
<%@ Register Src="UserControls/RDSCollectionApps.ascx" TagName="CollectionApps" TagPrefix="wsp"%>
|
||||||
|
<%@ Register Src="UserControls/RDSCollectionTabs.ascx" TagName="CollectionTabs" TagPrefix="wsp" %>
|
||||||
|
<%@ Register Src="UserControls/RDSSessionLimit.ascx" TagName="SessionLimit" TagPrefix="wsp" %>
|
||||||
|
<%@ Register TagPrefix="wsp" TagName="CollapsiblePanel" Src="../UserControls/CollapsiblePanel.ascx" %>
|
||||||
|
<%@ Register Src="../UserControls/ItemButtonPanel.ascx" TagName="ItemButtonPanel" TagPrefix="wsp" %>
|
||||||
|
<script type="text/javascript" src="/JavaScript/jquery.min.js?v=1.4.4"></script>
|
||||||
|
|
||||||
|
<wsp:EnableAsyncTasksSupport id="asyncTasks" runat="server"/>
|
||||||
|
|
||||||
|
<div id="ExchangeContainer">
|
||||||
|
<div class="Module">
|
||||||
|
<div class="Left">
|
||||||
|
</div>
|
||||||
|
<div class="Content">
|
||||||
|
<div class="Center">
|
||||||
|
<div class="Title">
|
||||||
|
<asp:Image ID="imgEditRDSCollection" SkinID="EnterpriseStorageSpace48" runat="server" />
|
||||||
|
<asp:Localize ID="locTitle" runat="server" meta:resourcekey="locTitle" Text="Edit RDS Collection Settings"></asp:Localize>
|
||||||
|
-
|
||||||
|
<asp:Literal ID="litCollectionName" runat="server" Text="" />
|
||||||
|
</div>
|
||||||
|
<div class="FormBody">
|
||||||
|
<wsp:CollectionTabs id="tabs" runat="server" SelectedTab="rds_edit_collection_settings" />
|
||||||
|
<wsp:SimpleMessageBox id="messageBox" runat="server" />
|
||||||
|
|
||||||
|
<wsp:CollapsiblePanel id="secRdsSessionSettings" runat="server"
|
||||||
|
TargetControlID="panelRdsSessionSettings" meta:resourcekey="secRdsSessionSettings" Text="">
|
||||||
|
</wsp:CollapsiblePanel>
|
||||||
|
|
||||||
|
<asp:Panel runat="server" ID="panelRdsSessionSettings">
|
||||||
|
<div style="padding: 10px;">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td class="FormLabel260" colspan="3" style="width:auto;"><asp:Localize ID="locSessionLimitHeader" runat="server" meta:resourcekey="locSessionLimitHeader" Text=""></asp:Localize></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="Label" style="width:260px;" colspan="2"><asp:Localize ID="locDisconnectedSessionLimit" runat="server" meta:resourcekey="locDisconnectedSessionLimit" Text=""></asp:Localize></td>
|
||||||
|
<td style="width:250px;">
|
||||||
|
<wsp:SessionLimit ID="slDisconnectedSessionLimit" runat="server" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="Label" style="width:260px;" colspan="2"><asp:Localize ID="locActiveSessionLimit" runat="server" meta:resourcekey="locActiveSessionLimit" Text=""></asp:Localize></td>
|
||||||
|
<td>
|
||||||
|
<wsp:SessionLimit ID="slActiveSessionLimit" runat="server"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="Label" style="width:260px;" colspan="2"><asp:Localize ID="locIdleSessionLimit" runat="server" meta:resourcekey="locIdleSessionLimit" Text=""></asp:Localize></td>
|
||||||
|
<td>
|
||||||
|
<wsp:SessionLimit ID="slIdleSessionLimit" runat="server"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<br />
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td class="FormLabel260" colspan="2" style="width:auto;"><asp:Localize ID="locCollectionBroken" runat="server" meta:resourcekey="locCollectionBroken" Text=""></asp:Localize></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td colspan="2">
|
||||||
|
<asp:RadioButton ID="chDisconnect" GroupName="collectionBroken" runat="server" Text="Disconnect from the session"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="width:20px;"></td>
|
||||||
|
<td>
|
||||||
|
<asp:CheckBox ID="chAutomaticReconnection" Text="Enable automatic reconnection" runat="server"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td colspan="2">
|
||||||
|
<asp:RadioButton ID="chEndSession" GroupName="collectionBroken" runat="server" Text="End the session"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<br />
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td class="FormLabel260" colspan="2" style="width:auto;"><asp:Localize ID="locTempFolder" runat="server" meta:resourcekey="locTempFolder" Text=""></asp:Localize></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<asp:CheckBox id="chDeleteOnExit" runat="server" Text="Delete temporary folders on exit"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<asp:CheckBox ID="chUseFolders" Text="Use temporary folders per session" runat="server"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</asp:Panel>
|
||||||
|
|
||||||
|
<wsp:CollapsiblePanel id="secRdsClientSettings" runat="server"
|
||||||
|
TargetControlID="panelRdsClientSettings" meta:resourcekey="secRdsClientSettings" Text="">
|
||||||
|
</wsp:CollapsiblePanel>
|
||||||
|
|
||||||
|
<asp:Panel runat="server" ID="panelRdsClientSettings">
|
||||||
|
<div style="padding: 10px;">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td class="FormLabel260" colspan="2" style="width:auto;"><asp:Localize ID="locEnableRedirection" runat="server" meta:resourcekey="locEnableRedirection" Text=""></asp:Localize></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<asp:CheckBox ID="chAudioVideo" Text="Audio and video playback" runat="server"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<asp:CheckBox ID="chAudioRecording" Text="Audio recording" runat="server"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<asp:CheckBox ID="chSmartCards" Text="Smart cards" runat="server"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<asp:CheckBox ID="chPlugPlay" Text="Plug and play devices" runat="server"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<asp:CheckBox ID="chDrives" Text="Drives" runat="server"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<asp:CheckBox ID="chClipboard" Text="Clipboard" runat="server"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<br />
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td class="FormLabel260" colspan="2" style="width:auto;"><asp:Localize ID="locPrinters" runat="server" meta:resourcekey="locPrinters" Text=""></asp:Localize></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td colspan="2">
|
||||||
|
<asp:CheckBox ID="chPrinterRedirection" Text="Allow client printer redirection" runat="server"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="width:20px;"></td>
|
||||||
|
<td>
|
||||||
|
<asp:CheckBox ID="chDefaultDevice" Text="Use the client default printing device" runat="server"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="width:20px;"></td>
|
||||||
|
<td>
|
||||||
|
<asp:CheckBox ID="chEasyPrint" Text="Use the Remote Desktop Easy Print print driver first " runat="server"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<br />
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td class="FormLabel260" colspan="2" style="width:auto;"><asp:Localize ID="locMonitors" runat="server" meta:resourcekey="locMonitors" Text=""></asp:Localize></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="Label" style="width:260px;"><asp:Localize ID="locMonitorsNumber" runat="server" meta:resourcekey="locMonitorsNumber" Text=""></asp:Localize></td>
|
||||||
|
<td style="width:250px;">
|
||||||
|
<asp:TextBox ID="tbMonitorsNumber" runat="server" CssClass="NormalTextBox" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</asp:Panel>
|
||||||
|
|
||||||
|
<div class="FormFooterClean">
|
||||||
|
<wsp:ItemButtonPanel id="buttonPanel" runat="server" ValidationGroup="SaveRDSCollection"
|
||||||
|
OnSaveClick="btnSave_Click" OnSaveExitClick="btnSaveExit_Click" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -0,0 +1,228 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Web;
|
||||||
|
using System.Web.UI;
|
||||||
|
using System.Web.UI.WebControls;
|
||||||
|
using WebsitePanel.Providers.RemoteDesktopServices;
|
||||||
|
|
||||||
|
namespace WebsitePanel.Portal.RDS
|
||||||
|
{
|
||||||
|
public partial class RDSEditCollectionSettings : WebsitePanelModuleBase
|
||||||
|
{
|
||||||
|
protected void Page_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
WriteScriptBlock();
|
||||||
|
|
||||||
|
if (!IsPostBack)
|
||||||
|
{
|
||||||
|
RdsCollection collection = ES.Services.RDS.GetRdsCollection(PanelRequest.CollectionID);
|
||||||
|
RdsCollectionSettings settings = ES.Services.RDS.GetRdsCollectionSettings(PanelRequest.CollectionID);
|
||||||
|
collection.Settings = settings;
|
||||||
|
|
||||||
|
if (collection.Settings == null)
|
||||||
|
{
|
||||||
|
collection.Settings = new RdsCollectionSettings
|
||||||
|
{
|
||||||
|
DisconnectedSessionLimitMin = 0,
|
||||||
|
ActiveSessionLimitMin = 0,
|
||||||
|
IdleSessionLimitMin = 0,
|
||||||
|
BrokenConnectionAction = BrokenConnectionActionValues.Disconnect.ToString(),
|
||||||
|
AutomaticReconnectionEnabled = true,
|
||||||
|
TemporaryFoldersDeletedOnExit = true,
|
||||||
|
TemporaryFoldersPerSession = true,
|
||||||
|
ClientDeviceRedirectionOptions = string.Join(",", new List<string>
|
||||||
|
{
|
||||||
|
ClientDeviceRedirectionOptionValues.AudioVideoPlayBack.ToString(),
|
||||||
|
ClientDeviceRedirectionOptionValues.AudioRecording.ToString(),
|
||||||
|
ClientDeviceRedirectionOptionValues.SmartCard.ToString(),
|
||||||
|
ClientDeviceRedirectionOptionValues.Clipboard.ToString(),
|
||||||
|
ClientDeviceRedirectionOptionValues.Drive.ToString(),
|
||||||
|
ClientDeviceRedirectionOptionValues.PlugAndPlayDevice.ToString()
|
||||||
|
}.ToArray()),
|
||||||
|
ClientPrinterRedirected = true,
|
||||||
|
ClientPrinterAsDefault = true,
|
||||||
|
RDEasyPrintDriverEnabled = true,
|
||||||
|
MaxRedirectedMonitors = 16
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
litCollectionName.Text = collection.DisplayName;
|
||||||
|
BindControls(collection);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void BindControls(RdsCollection collection)
|
||||||
|
{
|
||||||
|
slDisconnectedSessionLimit.SelectedLimit = collection.Settings.DisconnectedSessionLimitMin;
|
||||||
|
slActiveSessionLimit.SelectedLimit = collection.Settings.ActiveSessionLimitMin;
|
||||||
|
slIdleSessionLimit.SelectedLimit = collection.Settings.IdleSessionLimitMin;
|
||||||
|
|
||||||
|
if (collection.Settings.BrokenConnectionAction == BrokenConnectionActionValues.Disconnect.ToString())
|
||||||
|
{
|
||||||
|
chDisconnect.Checked = true;
|
||||||
|
chAutomaticReconnection.Enabled = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
chEndSession.Checked = true;
|
||||||
|
chAutomaticReconnection.Enabled = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
chAutomaticReconnection.Checked = collection.Settings.AutomaticReconnectionEnabled;
|
||||||
|
chDeleteOnExit.Checked = collection.Settings.TemporaryFoldersDeletedOnExit;
|
||||||
|
chUseFolders.Checked = collection.Settings.TemporaryFoldersPerSession;
|
||||||
|
|
||||||
|
if (collection.Settings.ClientDeviceRedirectionOptions != null)
|
||||||
|
{
|
||||||
|
chAudioVideo.Checked = collection.Settings.ClientDeviceRedirectionOptions.Contains(ClientDeviceRedirectionOptionValues.AudioVideoPlayBack.ToString());
|
||||||
|
chAudioRecording.Checked = collection.Settings.ClientDeviceRedirectionOptions.Contains(ClientDeviceRedirectionOptionValues.AudioRecording.ToString());
|
||||||
|
chDrives.Checked = collection.Settings.ClientDeviceRedirectionOptions.Contains(ClientDeviceRedirectionOptionValues.Drive.ToString());
|
||||||
|
chSmartCards.Checked = collection.Settings.ClientDeviceRedirectionOptions.Contains(ClientDeviceRedirectionOptionValues.SmartCard.ToString());
|
||||||
|
chPlugPlay.Checked = collection.Settings.ClientDeviceRedirectionOptions.Contains(ClientDeviceRedirectionOptionValues.PlugAndPlayDevice.ToString());
|
||||||
|
chClipboard.Checked = collection.Settings.ClientDeviceRedirectionOptions.Contains(ClientDeviceRedirectionOptionValues.Clipboard.ToString());
|
||||||
|
}
|
||||||
|
|
||||||
|
chPrinterRedirection.Checked = collection.Settings.ClientPrinterRedirected;
|
||||||
|
chDefaultDevice.Checked = collection.Settings.ClientPrinterAsDefault;
|
||||||
|
chDefaultDevice.Enabled = collection.Settings.ClientPrinterRedirected;
|
||||||
|
chEasyPrint.Checked = collection.Settings.RDEasyPrintDriverEnabled;
|
||||||
|
chEasyPrint.Enabled = collection.Settings.ClientPrinterRedirected;
|
||||||
|
tbMonitorsNumber.Text = collection.Settings.MaxRedirectedMonitors.ToString();
|
||||||
|
}
|
||||||
|
|
||||||
|
private bool EditCollectionSettings()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
RdsCollection collection = ES.Services.RDS.GetRdsCollection(PanelRequest.CollectionID);
|
||||||
|
collection.Settings.RdsCollectionId = collection.Id;
|
||||||
|
collection.Settings = GetSettings(collection.Settings);
|
||||||
|
ES.Services.RDS.EditRdsCollectionSettings(PanelRequest.ItemID, collection);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
ShowErrorMessage("RDSCOLLECTIONSETTINGS_NOT_UPDATES", ex);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private RdsCollectionSettings GetSettings(RdsCollectionSettings settings)
|
||||||
|
{
|
||||||
|
settings.DisconnectedSessionLimitMin = slDisconnectedSessionLimit.SelectedLimit;
|
||||||
|
settings.ActiveSessionLimitMin = slActiveSessionLimit.SelectedLimit;
|
||||||
|
settings.IdleSessionLimitMin = slIdleSessionLimit.SelectedLimit;
|
||||||
|
settings.AutomaticReconnectionEnabled = chAutomaticReconnection.Checked;
|
||||||
|
|
||||||
|
if (chDisconnect.Checked)
|
||||||
|
{
|
||||||
|
settings.BrokenConnectionAction = BrokenConnectionActionValues.Disconnect.ToString();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
settings.BrokenConnectionAction = BrokenConnectionActionValues.LogOff.ToString();
|
||||||
|
}
|
||||||
|
|
||||||
|
settings.TemporaryFoldersDeletedOnExit = chDeleteOnExit.Checked;
|
||||||
|
settings.TemporaryFoldersPerSession = chUseFolders.Checked;
|
||||||
|
settings.ClientPrinterRedirected = chPrinterRedirection.Checked;
|
||||||
|
settings.ClientPrinterAsDefault = chDefaultDevice.Checked;
|
||||||
|
settings.RDEasyPrintDriverEnabled = chEasyPrint.Checked;
|
||||||
|
settings.MaxRedirectedMonitors = Convert.ToInt32(tbMonitorsNumber.Text);
|
||||||
|
|
||||||
|
List<string> redirectionOptions = new List<string>();
|
||||||
|
|
||||||
|
if (chAudioVideo.Checked)
|
||||||
|
{
|
||||||
|
redirectionOptions.Add(ClientDeviceRedirectionOptionValues.AudioVideoPlayBack.ToString());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (chAudioRecording.Checked)
|
||||||
|
{
|
||||||
|
redirectionOptions.Add(ClientDeviceRedirectionOptionValues.AudioRecording.ToString());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (chSmartCards.Checked)
|
||||||
|
{
|
||||||
|
redirectionOptions.Add(ClientDeviceRedirectionOptionValues.SmartCard.ToString());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (chPlugPlay.Checked)
|
||||||
|
{
|
||||||
|
redirectionOptions.Add(ClientDeviceRedirectionOptionValues.PlugAndPlayDevice.ToString());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (chDrives.Checked)
|
||||||
|
{
|
||||||
|
redirectionOptions.Add(ClientDeviceRedirectionOptionValues.Drive.ToString());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (chClipboard.Checked)
|
||||||
|
{
|
||||||
|
redirectionOptions.Add(ClientDeviceRedirectionOptionValues.Clipboard.ToString());
|
||||||
|
}
|
||||||
|
|
||||||
|
settings.ClientDeviceRedirectionOptions = string.Join(",", redirectionOptions.ToArray());
|
||||||
|
|
||||||
|
return settings;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void btnSave_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (!Page.IsValid)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
EditCollectionSettings();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void btnSaveExit_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (!Page.IsValid)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (EditCollectionSettings())
|
||||||
|
{
|
||||||
|
Response.Redirect(EditUrl("ItemID", PanelRequest.ItemID.ToString(), "rds_collections", "SpaceID=" + PanelSecurity.PackageId));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnPreRender(EventArgs e)
|
||||||
|
{
|
||||||
|
chPrinterRedirection.Attributes["onclick"] = String.Format("TogglePrinterCheckboxes('{0}', '{1}', '{2}');", chPrinterRedirection.ClientID, chDefaultDevice.ClientID, chEasyPrint.ClientID);
|
||||||
|
chDisconnect.Attributes["onclick"] = String.Format("EnableReconnectionCheckbox('{0}', true);", chAutomaticReconnection.ClientID);
|
||||||
|
chEndSession.Attributes["onclick"] = String.Format("EnableReconnectionCheckbox('{0}', false);", chAutomaticReconnection.ClientID);
|
||||||
|
base.OnPreRender(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void WriteScriptBlock()
|
||||||
|
{
|
||||||
|
string scriptKey = "RdsSettingsScript";
|
||||||
|
if (!Page.ClientScript.IsClientScriptBlockRegistered(scriptKey))
|
||||||
|
{
|
||||||
|
Page.ClientScript.RegisterClientScriptBlock(GetType(), scriptKey, @"<script language='javascript' type='text/javascript'>
|
||||||
|
function TogglePrinterCheckboxes(chkId, chDefaultId, chEasyId)
|
||||||
|
{
|
||||||
|
var chPrinter = document.getElementById(chkId);
|
||||||
|
var chDefaultDevice = document.getElementById(chDefaultId);
|
||||||
|
chDefaultDevice.disabled = !chPrinter.checked;
|
||||||
|
var chEasyPrint = document.getElementById(chEasyId);
|
||||||
|
chEasyPrint.disabled = !chPrinter.checked;
|
||||||
|
}
|
||||||
|
|
||||||
|
function EnableReconnectionCheckbox(checkBoxId, enabled)
|
||||||
|
{
|
||||||
|
var checkBox = document.getElementById(checkBoxId);
|
||||||
|
checkBox.disabled = !enabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,366 @@
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// This code was generated by a tool.
|
||||||
|
//
|
||||||
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
|
// the code is regenerated.
|
||||||
|
// </auto-generated>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
namespace WebsitePanel.Portal.RDS {
|
||||||
|
|
||||||
|
|
||||||
|
public partial class RDSEditCollectionSettings {
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// asyncTasks control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.EnableAsyncTasksSupport asyncTasks;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// imgEditRDSCollection 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.Image imgEditRDSCollection;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locTitle 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 locTitle;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// litCollectionName 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 litCollectionName;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// tabs control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.RDS.UserControls.RdsServerTabs tabs;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// messageBox control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.UserControls.SimpleMessageBox messageBox;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// secRdsSessionSettings control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.CollapsiblePanel secRdsSessionSettings;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// panelRdsSessionSettings 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 panelRdsSessionSettings;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locSessionLimitHeader 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 locSessionLimitHeader;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locDisconnectedSessionLimit 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 locDisconnectedSessionLimit;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// slDisconnectedSessionLimit control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.RDS.UserControls.RDSSessionLimit slDisconnectedSessionLimit;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locActiveSessionLimit 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 locActiveSessionLimit;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// slActiveSessionLimit control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.RDS.UserControls.RDSSessionLimit slActiveSessionLimit;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locIdleSessionLimit 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 locIdleSessionLimit;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// slIdleSessionLimit control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.RDS.UserControls.RDSSessionLimit slIdleSessionLimit;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locCollectionBroken 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 locCollectionBroken;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// chDisconnect 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.RadioButton chDisconnect;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// chAutomaticReconnection 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.CheckBox chAutomaticReconnection;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// chEndSession 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.RadioButton chEndSession;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locTempFolder 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 locTempFolder;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// chDeleteOnExit 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.CheckBox chDeleteOnExit;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// chUseFolders 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.CheckBox chUseFolders;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// secRdsClientSettings control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.CollapsiblePanel secRdsClientSettings;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// panelRdsClientSettings 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 panelRdsClientSettings;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locEnableRedirection 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 locEnableRedirection;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// chAudioVideo 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.CheckBox chAudioVideo;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// chAudioRecording 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.CheckBox chAudioRecording;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// chSmartCards 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.CheckBox chSmartCards;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// chPlugPlay 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.CheckBox chPlugPlay;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// chDrives 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.CheckBox chDrives;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// chClipboard 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.CheckBox chClipboard;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locPrinters 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 locPrinters;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// chPrinterRedirection 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.CheckBox chPrinterRedirection;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// chDefaultDevice 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.CheckBox chDefaultDevice;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// chEasyPrint 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.CheckBox chEasyPrint;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locMonitors 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 locMonitors;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locMonitorsNumber 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 locMonitorsNumber;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// tbMonitorsNumber 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 tbMonitorsNumber;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// buttonPanel 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;
|
||||||
|
}
|
||||||
|
}
|
|
@ -5,13 +5,13 @@
|
||||||
<asp:DataList ID="rdsTabs" runat="server" RepeatDirection="Horizontal" RepeatLayout="Flow" EnableViewState="false">
|
<asp:DataList ID="rdsTabs" runat="server" RepeatDirection="Horizontal" RepeatLayout="Flow" EnableViewState="false">
|
||||||
<ItemStyle Wrap="False" />
|
<ItemStyle Wrap="False" />
|
||||||
<ItemTemplate >
|
<ItemTemplate >
|
||||||
<asp:HyperLink ID="lnkTab" runat="server" CssClass="Tab" NavigateUrl='<%# Eval("Url") %>'>
|
<asp:HyperLink ID="lnkTab" runat="server" CssClass="Tab" NavigateUrl='<%# Eval("Url") %>' OnClientClick="ShowProgressDialog('Adding server...'); return false;">
|
||||||
<%# Eval("Name") %>
|
<%# Eval("Name") %>
|
||||||
</asp:HyperLink>
|
</asp:HyperLink>
|
||||||
</ItemTemplate>
|
</ItemTemplate>
|
||||||
<SelectedItemStyle Wrap="False" />
|
<SelectedItemStyle Wrap="False" />
|
||||||
<SelectedItemTemplate>
|
<SelectedItemTemplate>
|
||||||
<asp:HyperLink ID="lnkSelTab" runat="server" CssClass="ActiveTab" NavigateUrl='<%# Eval("Url") %>'>
|
<asp:HyperLink ID="lnkSelTab" runat="server" CssClass="ActiveTab" NavigateUrl='<%# Eval("Url") %>' OnClientClick="ShowProgressDialog('Adding server...'); return false;">
|
||||||
<%# Eval("Name") %>
|
<%# Eval("Name") %>
|
||||||
</asp:HyperLink>
|
</asp:HyperLink>
|
||||||
</SelectedItemTemplate>
|
</SelectedItemTemplate>
|
||||||
|
|
|
@ -21,6 +21,7 @@ namespace WebsitePanel.Portal.RDS.UserControls
|
||||||
{
|
{
|
||||||
List<Tab> tabsList = new List<Tab>();
|
List<Tab> tabsList = new List<Tab>();
|
||||||
tabsList.Add(CreateTab("rds_edit_collection", "Tab.RdsServers"));
|
tabsList.Add(CreateTab("rds_edit_collection", "Tab.RdsServers"));
|
||||||
|
tabsList.Add(CreateTab("rds_edit_collection_settings", "Tab.Settings"));
|
||||||
tabsList.Add(CreateTab("rds_collection_edit_apps", "Tab.RdsApplications"));
|
tabsList.Add(CreateTab("rds_collection_edit_apps", "Tab.RdsApplications"));
|
||||||
tabsList.Add(CreateTab("rds_collection_edit_users", "Tab.RdsUsers"));
|
tabsList.Add(CreateTab("rds_collection_edit_users", "Tab.RdsUsers"));
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,22 @@
|
||||||
|
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="RDSSessionLimit.ascx.cs" Inherits="WebsitePanel.Portal.RDS.UserControls.RDSSessionLimit" %>
|
||||||
|
<asp:DropDownList ID="SessionLimit" runat="server" CssClass="NormalTextBox">
|
||||||
|
<asp:ListItem Value="0" Text="Never" />
|
||||||
|
<asp:ListItem Value="1" Text="1 minute" />
|
||||||
|
<asp:ListItem Value="5" Text="5 minutes" />
|
||||||
|
<asp:ListItem Value="10" Text="10 minutes" />
|
||||||
|
<asp:ListItem Value="15" Text="15 minutes" />
|
||||||
|
<asp:ListItem Value="30" Text="30 minutes" />
|
||||||
|
<asp:ListItem Value="60" Text="1 hour" />
|
||||||
|
<asp:ListItem Value="120" Text="2 hours" />
|
||||||
|
<asp:ListItem Value="180" Text="3 hours" />
|
||||||
|
<asp:ListItem Value="360" Text="6 hours" />
|
||||||
|
<asp:ListItem Value="480" Text="8 hours" />
|
||||||
|
<asp:ListItem Value="720" Text="12 hours" />
|
||||||
|
<asp:ListItem Value="960" Text="16 hours" />
|
||||||
|
<asp:ListItem Value="1080" Text="18 hours" />
|
||||||
|
<asp:ListItem Value="1440" Text="1 day" />
|
||||||
|
<asp:ListItem Value="2880" Text="2 days" />
|
||||||
|
<asp:ListItem Value="4320" Text="3 days" />
|
||||||
|
<asp:ListItem Value="5760" Text="4 days" />
|
||||||
|
<asp:ListItem Value="7200" Text="5 days" />
|
||||||
|
</asp:DropDownList>
|
|
@ -0,0 +1,29 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Web;
|
||||||
|
using System.Web.UI;
|
||||||
|
using System.Web.UI.WebControls;
|
||||||
|
|
||||||
|
namespace WebsitePanel.Portal.RDS.UserControls
|
||||||
|
{
|
||||||
|
public partial class RDSSessionLimit : System.Web.UI.UserControl
|
||||||
|
{
|
||||||
|
public int SelectedLimit
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return Convert.ToInt32(SessionLimit.SelectedItem.Value);
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
SessionLimit.SelectedValue = value.ToString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void Page_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,24 @@
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// This code was generated by a tool.
|
||||||
|
//
|
||||||
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
|
// the code is regenerated.
|
||||||
|
// </auto-generated>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
namespace WebsitePanel.Portal.RDS.UserControls {
|
||||||
|
|
||||||
|
|
||||||
|
public partial class RDSSessionLimit {
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// SessionLimit 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.DropDownList SessionLimit;
|
||||||
|
}
|
||||||
|
}
|
|
@ -211,35 +211,35 @@
|
||||||
<Compile Include="Code\ReportingServices\IResourceStorage.cs" />
|
<Compile Include="Code\ReportingServices\IResourceStorage.cs" />
|
||||||
<Compile Include="Code\ReportingServices\ReportingServicesUtils.cs" />
|
<Compile Include="Code\ReportingServices\ReportingServicesUtils.cs" />
|
||||||
<Compile Include="Code\UserControls\Tab.cs" />
|
<Compile Include="Code\UserControls\Tab.cs" />
|
||||||
<Compile Include="ExchangeServer\OrganizationDeletedUsers.ascx.cs">
|
<Compile Include="ExchangeServer\OrganizationDeletedUsers.ascx.cs">
|
||||||
<DependentUpon>OrganizationDeletedUsers.ascx</DependentUpon>
|
<DependentUpon>OrganizationDeletedUsers.ascx</DependentUpon>
|
||||||
<SubType>ASPXCodeBehind</SubType>
|
<SubType>ASPXCodeBehind</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="ExchangeServer\ExchangeCheckDomainName.ascx.cs">
|
<Compile Include="ExchangeServer\ExchangeCheckDomainName.ascx.cs">
|
||||||
<DependentUpon>ExchangeCheckDomainName.ascx</DependentUpon>
|
|
||||||
<SubType>ASPXCodeBehind</SubType>
|
|
||||||
</Compile>
|
|
||||||
<Compile Include="ExchangeServer\OrganizationDeletedUsers.ascx.designer.cs">
|
|
||||||
<DependentUpon>OrganizationDeletedUsers.ascx</DependentUpon>
|
|
||||||
</Compile>
|
|
||||||
<Compile Include="ExchangeServer\ExchangeCheckDomainName.ascx.designer.cs">
|
|
||||||
<DependentUpon>ExchangeCheckDomainName.ascx</DependentUpon>
|
<DependentUpon>ExchangeCheckDomainName.ascx</DependentUpon>
|
||||||
</Compile>
|
<SubType>ASPXCodeBehind</SubType>
|
||||||
<Compile Include="ExchangeServer\OrganizationDeletedUserGeneralSettings.ascx.cs">
|
</Compile>
|
||||||
|
<Compile Include="ExchangeServer\OrganizationDeletedUsers.ascx.designer.cs">
|
||||||
|
<DependentUpon>OrganizationDeletedUsers.ascx</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="ExchangeServer\ExchangeCheckDomainName.ascx.designer.cs">
|
||||||
|
<DependentUpon>ExchangeCheckDomainName.ascx</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="ExchangeServer\OrganizationDeletedUserGeneralSettings.ascx.cs">
|
||||||
<DependentUpon>OrganizationDeletedUserGeneralSettings.ascx</DependentUpon>
|
<DependentUpon>OrganizationDeletedUserGeneralSettings.ascx</DependentUpon>
|
||||||
<SubType>ASPXCodeBehind</SubType>
|
<SubType>ASPXCodeBehind</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="ProviderControls\Windows2012_Settings.ascx.cs">
|
<Compile Include="ProviderControls\Windows2012_Settings.ascx.cs">
|
||||||
<DependentUpon>Windows2012_Settings.ascx</DependentUpon>
|
<DependentUpon>Windows2012_Settings.ascx</DependentUpon>
|
||||||
<SubType>ASPXCodeBehind</SubType>
|
<SubType>ASPXCodeBehind</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="ExchangeServer\OrganizationDeletedUserGeneralSettings.ascx.designer.cs">
|
<Compile Include="ExchangeServer\OrganizationDeletedUserGeneralSettings.ascx.designer.cs">
|
||||||
<DependentUpon>OrganizationDeletedUserGeneralSettings.ascx</DependentUpon>
|
<DependentUpon>OrganizationDeletedUserGeneralSettings.ascx</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="ProviderControls\Windows2012_Settings.ascx.designer.cs">
|
<Compile Include="ProviderControls\Windows2012_Settings.ascx.designer.cs">
|
||||||
<DependentUpon>Windows2012_Settings.ascx</DependentUpon>
|
<DependentUpon>Windows2012_Settings.ascx</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="ExchangeServer\OrganizationDeletedUserMemberOf.ascx.cs">
|
<Compile Include="ExchangeServer\OrganizationDeletedUserMemberOf.ascx.cs">
|
||||||
<DependentUpon>OrganizationDeletedUserMemberOf.ascx</DependentUpon>
|
<DependentUpon>OrganizationDeletedUserMemberOf.ascx</DependentUpon>
|
||||||
<SubType>ASPXCodeBehind</SubType>
|
<SubType>ASPXCodeBehind</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
@ -302,6 +302,13 @@
|
||||||
<Compile Include="RDS\RDSEditCollectionApps.ascx.designer.cs">
|
<Compile Include="RDS\RDSEditCollectionApps.ascx.designer.cs">
|
||||||
<DependentUpon>RDSEditCollectionApps.ascx</DependentUpon>
|
<DependentUpon>RDSEditCollectionApps.ascx</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="RDS\RDSEditCollectionSettings.ascx.cs">
|
||||||
|
<DependentUpon>RDSEditCollectionSettings.ascx</DependentUpon>
|
||||||
|
<SubType>ASPXCodeBehind</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="RDS\RDSEditCollectionSettings.ascx.designer.cs">
|
||||||
|
<DependentUpon>RDSEditCollectionSettings.ascx</DependentUpon>
|
||||||
|
</Compile>
|
||||||
<Compile Include="RDS\RDSEditCollectionUsers.ascx.cs">
|
<Compile Include="RDS\RDSEditCollectionUsers.ascx.cs">
|
||||||
<DependentUpon>RDSEditCollectionUsers.ascx</DependentUpon>
|
<DependentUpon>RDSEditCollectionUsers.ascx</DependentUpon>
|
||||||
<SubType>ASPXCodeBehind</SubType>
|
<SubType>ASPXCodeBehind</SubType>
|
||||||
|
@ -351,6 +358,13 @@
|
||||||
<Compile Include="RDS\UserControls\RDSCollectionTabs.ascx.designer.cs">
|
<Compile Include="RDS\UserControls\RDSCollectionTabs.ascx.designer.cs">
|
||||||
<DependentUpon>RDSCollectionTabs.ascx</DependentUpon>
|
<DependentUpon>RDSCollectionTabs.ascx</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="RDS\UserControls\RDSSessionLimit.ascx.cs">
|
||||||
|
<DependentUpon>RDSSessionLimit.ascx</DependentUpon>
|
||||||
|
<SubType>ASPXCodeBehind</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="RDS\UserControls\RDSSessionLimit.ascx.designer.cs">
|
||||||
|
<DependentUpon>RDSSessionLimit.ascx</DependentUpon>
|
||||||
|
</Compile>
|
||||||
<Compile Include="ScheduleTaskControls\App_LocalResources\DomainLookupView.ascx.Designer.cs">
|
<Compile Include="ScheduleTaskControls\App_LocalResources\DomainLookupView.ascx.Designer.cs">
|
||||||
<AutoGen>True</AutoGen>
|
<AutoGen>True</AutoGen>
|
||||||
<DesignTime>True</DesignTime>
|
<DesignTime>True</DesignTime>
|
||||||
|
@ -4341,11 +4355,13 @@
|
||||||
<Content Include="ExchangeServer\UserControls\DeletedUserTabs.ascx" />
|
<Content Include="ExchangeServer\UserControls\DeletedUserTabs.ascx" />
|
||||||
<Content Include="RDSServersAddserver.ascx" />
|
<Content Include="RDSServersAddserver.ascx" />
|
||||||
<Content Include="RDSServers.ascx" />
|
<Content Include="RDSServers.ascx" />
|
||||||
|
<EmbeddedResource Include="RDS\App_LocalResources\RDSEditCollectionSettings.ascx.resx" />
|
||||||
<Content Include="RDS\AssignedRDSServers.ascx" />
|
<Content Include="RDS\AssignedRDSServers.ascx" />
|
||||||
<Content Include="RDS\AddRDSServer.ascx" />
|
<Content Include="RDS\AddRDSServer.ascx" />
|
||||||
<Content Include="RDS\RDSEditApplicationUsers.ascx" />
|
<Content Include="RDS\RDSEditApplicationUsers.ascx" />
|
||||||
<Content Include="RDS\RDSEditCollection.ascx" />
|
<Content Include="RDS\RDSEditCollection.ascx" />
|
||||||
<Content Include="RDS\RDSEditCollectionApps.ascx" />
|
<Content Include="RDS\RDSEditCollectionApps.ascx" />
|
||||||
|
<Content Include="RDS\RDSEditCollectionSettings.ascx" />
|
||||||
<Content Include="RDS\RDSEditCollectionUsers.ascx" />
|
<Content Include="RDS\RDSEditCollectionUsers.ascx" />
|
||||||
<Content Include="RDS\RDSCreateCollection.ascx" />
|
<Content Include="RDS\RDSCreateCollection.ascx" />
|
||||||
<Content Include="RDS\RDSCollections.ascx" />
|
<Content Include="RDS\RDSCollections.ascx" />
|
||||||
|
@ -4353,6 +4369,7 @@
|
||||||
<Content Include="RDS\UserControls\RDSCollectionServers.ascx" />
|
<Content Include="RDS\UserControls\RDSCollectionServers.ascx" />
|
||||||
<Content Include="RDS\UserControls\RDSCollectionUsers.ascx" />
|
<Content Include="RDS\UserControls\RDSCollectionUsers.ascx" />
|
||||||
<Content Include="RDS\UserControls\RDSCollectionTabs.ascx" />
|
<Content Include="RDS\UserControls\RDSCollectionTabs.ascx" />
|
||||||
|
<Content Include="RDS\UserControls\RDSSessionLimit.ascx" />
|
||||||
<Content Include="ScheduleTaskControls\App_LocalResources\DomainExpirationView.ascx.resx" />
|
<Content Include="ScheduleTaskControls\App_LocalResources\DomainExpirationView.ascx.resx" />
|
||||||
<Content Include="App_LocalResources\SettingsDomainExpirationLetter.ascx.resx" />
|
<Content Include="App_LocalResources\SettingsDomainExpirationLetter.ascx.resx" />
|
||||||
<Content Include="App_LocalResources\SettingsDomainLookupLetter.ascx.resx" />
|
<Content Include="App_LocalResources\SettingsDomainLookupLetter.ascx.resx" />
|
||||||
|
@ -4366,7 +4383,9 @@
|
||||||
<Content Include="ExchangeServer\App_LocalResources\ExchangeCheckDomainName.ascx.resx">
|
<Content Include="ExchangeServer\App_LocalResources\ExchangeCheckDomainName.ascx.resx">
|
||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
</Content>
|
</Content>
|
||||||
<Content Include="RDS\UserControls\App_LocalResources\RDSCollectionTabs.ascx.resx" />
|
<Content Include="RDS\UserControls\App_LocalResources\RDSCollectionTabs.ascx.resx">
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
</Content>
|
||||||
<EmbeddedResource Include="ScheduleTaskControls\App_LocalResources\DomainLookupView.ascx.resx">
|
<EmbeddedResource Include="ScheduleTaskControls\App_LocalResources\DomainLookupView.ascx.resx">
|
||||||
<Generator>ResXFileCodeGenerator</Generator>
|
<Generator>ResXFileCodeGenerator</Generator>
|
||||||
<LastGenOutput>DomainLookupView.ascx.Designer.cs</LastGenOutput>
|
<LastGenOutput>DomainLookupView.ascx.Designer.cs</LastGenOutput>
|
||||||
|
@ -5649,7 +5668,9 @@
|
||||||
<Content Include="Lync\App_LocalResources\LyncPhoneNumbers.ascx.resx">
|
<Content Include="Lync\App_LocalResources\LyncPhoneNumbers.ascx.resx">
|
||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
</Content>
|
</Content>
|
||||||
<Content Include="App_LocalResources\OrganizationMenu.ascx.resx" />
|
<Content Include="App_LocalResources\OrganizationMenu.ascx.resx">
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
</Content>
|
||||||
<Content Include="App_LocalResources\SettingsExchangeRetentionPolicyTag.ascx.resx" />
|
<Content Include="App_LocalResources\SettingsExchangeRetentionPolicyTag.ascx.resx" />
|
||||||
<Content Include="ExchangeServer\App_LocalResources\ExchangeRetentionPolicyTag.ascx.resx" />
|
<Content Include="ExchangeServer\App_LocalResources\ExchangeRetentionPolicyTag.ascx.resx" />
|
||||||
<Content Include="ExchangeServer\App_LocalResources\EnterpriseStorageDriveMaps.ascx.resx">
|
<Content Include="ExchangeServer\App_LocalResources\EnterpriseStorageDriveMaps.ascx.resx">
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue