diff --git a/WebsitePanel/Database/update_db.sql b/WebsitePanel/Database/update_db.sql index ed3b4c52..f248b6cc 100644 --- a/WebsitePanel/Database/update_db.sql +++ b/WebsitePanel/Database/update_db.sql @@ -6074,15 +6074,84 @@ GO -- wsp-10269: Changed php extension path in default properties for IIS70 and IIS80 provider update ServiceDefaultProperties -set PhpPath='%PROGRAMFILES(x86)%\PHP\php-cgi.exe' -where ProviderId in(101, 105) +set PropertyValue='%PROGRAMFILES(x86)%\PHP\php-cgi.exe' +where PropertyName='PhpPath' and ProviderId in(101, 105) update ServiceDefaultProperties -set Php4Path='%PROGRAMFILES(x86)%\PHP\ph.exe' -where ProviderId in(101, 105) +set PropertyValue='%PROGRAMFILES(x86)%\PHP\php.exe' +where PropertyName='Php4Path' and ProviderId in(101, 105) GO +-- Exchange2013 Shared and resource mailboxes + +-- Exchange2013 Shared and resource mailboxes Quotas + +IF NOT EXISTS (SELECT * FROM [dbo].[Quotas] WHERE [QuotaName] = 'Exchange2013.SharedMailboxes') +BEGIN +INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID], [HideQuota]) +VALUES (429, 12, 30, N'Exchange2013.SharedMailboxes', N'Shared Mailboxes per Organization', 2, 0, NULL, NULL) +END +GO + +IF NOT EXISTS (SELECT * FROM [dbo].[Quotas] WHERE [QuotaName] = 'Exchange2013.ResourceMailboxes') +BEGIN +INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID], [HideQuota]) +VALUES (428, 12, 31, N'Exchange2013.ResourceMailboxes', N'Resource Mailboxes per Organization', 2, 0, NULL, NULL) +END +GO + +-- Exchange2013 Shared and resource mailboxes Organization statistics + +ALTER PROCEDURE [dbo].[GetExchangeOrganizationStatistics] +( + @ItemID int +) +AS + +DECLARE @ARCHIVESIZE INT +IF -1 in (SELECT B.ArchiveSizeMB FROM ExchangeAccounts AS A INNER JOIN ExchangeMailboxPlans AS B ON A.MailboxPlanId = B.MailboxPlanId WHERE A.ItemID=@ItemID) +BEGIN + SET @ARCHIVESIZE = -1 +END +ELSE +BEGIN + SET @ARCHIVESIZE = (SELECT SUM(B.ArchiveSizeMB) FROM ExchangeAccounts AS A INNER JOIN ExchangeMailboxPlans AS B ON A.MailboxPlanId = B.MailboxPlanId WHERE A.ItemID=@ItemID) +END + +IF -1 IN (SELECT B.MailboxSizeMB FROM ExchangeAccounts AS A INNER JOIN ExchangeMailboxPlans AS B ON A.MailboxPlanId = B.MailboxPlanId WHERE A.ItemID=@ItemID) +BEGIN +SELECT + (SELECT COUNT(*) FROM ExchangeAccounts WHERE (AccountType = 1 OR AccountType = 5 OR AccountType = 6) AND ItemID = @ItemID) AS CreatedMailboxes, + (SELECT COUNT(*) FROM ExchangeAccounts WHERE (AccountType = 10) AND ItemID = @ItemID) AS CreatedSharedMailboxes, + (SELECT COUNT(*) FROM ExchangeAccounts WHERE (AccountType = 11) AND ItemID = @ItemID) AS CreatedResourceMailboxes, + (SELECT COUNT(*) FROM ExchangeAccounts WHERE AccountType = 2 AND ItemID = @ItemID) AS CreatedContacts, + (SELECT COUNT(*) FROM ExchangeAccounts WHERE AccountType = 3 AND ItemID = @ItemID) AS CreatedDistributionLists, + (SELECT COUNT(*) FROM ExchangeAccounts WHERE AccountType = 4 AND ItemID = @ItemID) AS CreatedPublicFolders, + (SELECT COUNT(*) FROM ExchangeOrganizationDomains WHERE ItemID = @ItemID) AS CreatedDomains, + (SELECT MIN(B.MailboxSizeMB) FROM ExchangeAccounts AS A INNER JOIN ExchangeMailboxPlans AS B ON A.MailboxPlanId = B.MailboxPlanId WHERE A.ItemID=@ItemID) AS UsedDiskSpace, + (SELECT MIN(B.RecoverableItemsSpace) FROM ExchangeAccounts AS A INNER JOIN ExchangeMailboxPlans AS B ON A.MailboxPlanId = B.MailboxPlanId WHERE A.ItemID=@ItemID) AS UsedLitigationHoldSpace, + @ARCHIVESIZE AS UsedArchingStorage +END +ELSE +BEGIN +SELECT + (SELECT COUNT(*) FROM ExchangeAccounts WHERE (AccountType = 1 OR AccountType = 5 OR AccountType = 6) AND ItemID = @ItemID) AS CreatedMailboxes, + (SELECT COUNT(*) FROM ExchangeAccounts WHERE (AccountType = 10) AND ItemID = @ItemID) AS CreatedSharedMailboxes, + (SELECT COUNT(*) FROM ExchangeAccounts WHERE (AccountType = 11) AND ItemID = @ItemID) AS CreatedResourceMailboxes, + (SELECT COUNT(*) FROM ExchangeAccounts WHERE AccountType = 2 AND ItemID = @ItemID) AS CreatedContacts, + (SELECT COUNT(*) FROM ExchangeAccounts WHERE AccountType = 3 AND ItemID = @ItemID) AS CreatedDistributionLists, + (SELECT COUNT(*) FROM ExchangeAccounts WHERE AccountType = 4 AND ItemID = @ItemID) AS CreatedPublicFolders, + (SELECT COUNT(*) FROM ExchangeOrganizationDomains WHERE ItemID = @ItemID) AS CreatedDomains, + (SELECT SUM(B.MailboxSizeMB) FROM ExchangeAccounts AS A INNER JOIN ExchangeMailboxPlans AS B ON A.MailboxPlanId = B.MailboxPlanId WHERE A.ItemID=@ItemID) AS UsedDiskSpace, + (SELECT SUM(B.RecoverableItemsSpace) FROM ExchangeAccounts AS A INNER JOIN ExchangeMailboxPlans AS B ON A.MailboxPlanId = B.MailboxPlanId WHERE A.ItemID=@ItemID) AS UsedLitigationHoldSpace, + @ARCHIVESIZE AS UsedArchingStorage +END + + +RETURN +GO + -- Hyper-V 2012 R2 IF NOT EXISTS (SELECT * FROM [dbo].[Providers] WHERE [ProviderName] = 'Microsoft Hyper-V 2012 R2') BEGIN diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/Packages/Quotas.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/Packages/Quotas.cs index 1d2702c2..2c3ec20d 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/Packages/Quotas.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/Packages/Quotas.cs @@ -123,6 +123,9 @@ order by rg.groupOrder public const string EXCHANGE2013_ARCHIVINGSTORAGE = "Exchange2013.ArchivingStorage"; // Archiving public const string EXCHANGE2013_ARCHIVINGMAILBOXES = "Exchange2013.ArchivingMailboxes"; + public const string EXCHANGE2013_SHAREDMAILBOXES = "Exchange2013.SharedMailboxes"; // Shared and resource mailboxes + public const string EXCHANGE2013_RESOURCEMAILBOXES = "Exchange2013.ResourceMailboxes"; + public const string MSSQL2000_DATABASES = "MsSQL2000.Databases"; // Databases public const string MSSQL2000_USERS = "MsSQL2000.Users"; // Users public const string MSSQL2000_MAXDATABASESIZE = "MsSQL2000.MaxDatabaseSize"; // Max Database Size diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/ExchangeServer/ExchangeServerController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/ExchangeServer/ExchangeServerController.cs index d0e48fee..36fc7ed3 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/ExchangeServer/ExchangeServerController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/ExchangeServer/ExchangeServerController.cs @@ -193,6 +193,9 @@ namespace WebsitePanel.EnterpriseServer stats.UsedDiskSpace = tempStats.UsedDiskSpace; stats.UsedLitigationHoldSpace = tempStats.UsedLitigationHoldSpace; stats.UsedArchingStorage = tempStats.UsedArchingStorage; + + stats.CreatedSharedMailboxes = tempStats.CreatedSharedMailboxes; + stats.CreatedResourceMailboxes = tempStats.CreatedResourceMailboxes; } else { @@ -221,6 +224,9 @@ namespace WebsitePanel.EnterpriseServer stats.UsedDiskSpace += tempStats.UsedDiskSpace; stats.UsedLitigationHoldSpace += tempStats.UsedLitigationHoldSpace; stats.UsedArchingStorage += tempStats.UsedArchingStorage; + + stats.CreatedSharedMailboxes += tempStats.CreatedSharedMailboxes; + stats.CreatedResourceMailboxes += tempStats.CreatedResourceMailboxes; } } } @@ -241,6 +247,9 @@ namespace WebsitePanel.EnterpriseServer stats.AllocatedLitigationHoldSpace = cntx.Quotas[Quotas.EXCHANGE2007_RECOVERABLEITEMSSPACE].QuotaAllocatedValue; stats.AllocatedArchingStorage = cntx.Quotas[Quotas.EXCHANGE2013_ARCHIVINGSTORAGE].QuotaAllocatedValue; + stats.AllocatedSharedMailboxes = cntx.Quotas[Quotas.EXCHANGE2013_SHAREDMAILBOXES].QuotaAllocatedValue; + stats.AllocatedResourceMailboxes = cntx.Quotas[Quotas.EXCHANGE2013_RESOURCEMAILBOXES].QuotaAllocatedValue; + return stats; } catch (Exception ex) @@ -1665,8 +1674,21 @@ namespace WebsitePanel.EnterpriseServer // check mailbox quota OrganizationStatistics orgStats = GetOrganizationStatistics(itemId); - if ((orgStats.AllocatedMailboxes > -1) && (orgStats.CreatedMailboxes >= orgStats.AllocatedMailboxes)) - return BusinessErrorCodes.ERROR_EXCHANGE_MAILBOXES_QUOTA_LIMIT; + if (accountType == ExchangeAccountType.SharedMailbox) + { + if ((orgStats.AllocatedSharedMailboxes > -1) && (orgStats.CreatedSharedMailboxes >= orgStats.AllocatedSharedMailboxes)) + return BusinessErrorCodes.ERROR_EXCHANGE_MAILBOXES_QUOTA_LIMIT; + } + else if (accountType == ExchangeAccountType.ResourceMailbox) + { + if ((orgStats.AllocatedResourceMailboxes > -1) && (orgStats.CreatedResourceMailboxes >= orgStats.AllocatedResourceMailboxes)) + return BusinessErrorCodes.ERROR_EXCHANGE_MAILBOXES_QUOTA_LIMIT; + } + else + { + if ((orgStats.AllocatedMailboxes > -1) && (orgStats.CreatedMailboxes >= orgStats.AllocatedMailboxes)) + return BusinessErrorCodes.ERROR_EXCHANGE_MAILBOXES_QUOTA_LIMIT; + } // place log record diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Base/HostedSolution/ExchangeAccountType.cs b/WebsitePanel/Sources/WebsitePanel.Providers.Base/HostedSolution/ExchangeAccountType.cs index 88b0ac93..23ff9cf6 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.Base/HostedSolution/ExchangeAccountType.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.Base/HostedSolution/ExchangeAccountType.cs @@ -39,7 +39,8 @@ namespace WebsitePanel.Providers.HostedSolution Equipment = 6, User = 7, SecurityGroup = 8, - DefaultSecurityGroup = 9 - + DefaultSecurityGroup = 9, + SharedMailbox = 10, + ResourceMailbox = 11 } } diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Base/HostedSolution/OrganizationStatistics.cs b/WebsitePanel/Sources/WebsitePanel.Providers.Base/HostedSolution/OrganizationStatistics.cs index b8189f82..6d15b8e2 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.Base/HostedSolution/OrganizationStatistics.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.Base/HostedSolution/OrganizationStatistics.cs @@ -341,6 +341,36 @@ namespace WebsitePanel.Providers.HostedSolution get { return usedArchingStorage; } set { usedArchingStorage = value; } } + + int allocatedSharedMailboxes; + public int AllocatedSharedMailboxes + { + get { return allocatedSharedMailboxes; } + set { allocatedSharedMailboxes = value; } + } + + int createdSharedMailboxes; + public int CreatedSharedMailboxes + { + get { return createdSharedMailboxes; } + set { createdSharedMailboxes = value; } + } + + int allocatedResourceMailboxes; + public int AllocatedResourceMailboxes + { + get { return allocatedResourceMailboxes; } + set { allocatedResourceMailboxes = value; } + } + + int createdResourceMailboxes; + public int CreatedResourceMailboxes + { + get { return createdResourceMailboxes; } + set { createdResourceMailboxes = value; } + } + + } } diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Base/RemoteDesktopServices/RdsPolicyTypes.cs b/WebsitePanel/Sources/WebsitePanel.Providers.Base/RemoteDesktopServices/RdsPolicyTypes.cs new file mode 100644 index 00000000..b00fa3a2 --- /dev/null +++ b/WebsitePanel/Sources/WebsitePanel.Providers.Base/RemoteDesktopServices/RdsPolicyTypes.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace WebsitePanel.Providers.RemoteDesktopServices +{ + public enum RdsPolicyTypes + { + RdCap, + RdRap + } +} diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Base/WebsitePanel.Providers.Base.csproj b/WebsitePanel/Sources/WebsitePanel.Providers.Base/WebsitePanel.Providers.Base.csproj index 3e670e5a..34fe3670 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.Base/WebsitePanel.Providers.Base.csproj +++ b/WebsitePanel/Sources/WebsitePanel.Providers.Base/WebsitePanel.Providers.Base.csproj @@ -125,6 +125,7 @@ + diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.HostedSolution.Exchange2013/Exchange2013.cs b/WebsitePanel/Sources/WebsitePanel.Providers.HostedSolution.Exchange2013/Exchange2013.cs index fa411b12..efb94b97 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.HostedSolution.Exchange2013/Exchange2013.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.HostedSolution.Exchange2013/Exchange2013.cs @@ -1942,6 +1942,11 @@ namespace WebsitePanel.Providers.HostedSolution cmd.Parameters.Add("Equipment"); else if (accountType == ExchangeAccountType.Room) cmd.Parameters.Add("Room"); + else if (accountType == ExchangeAccountType.SharedMailbox) + cmd.Parameters.Add("Shared"); + else if (accountType == ExchangeAccountType.ResourceMailbox) + cmd.Parameters.Add("Equipment"); + result = ExecuteShellCommand(runSpace, cmd); @@ -4790,6 +4795,10 @@ namespace WebsitePanel.Providers.HostedSolution } CheckOrganizationRootPublicFolderPermission(runSpace, organizationId); + + // exchange transport needs access to create new items in order to deliver email + AddPublicFolderClientPermission(runSpace, folder, "Anonymous", "CreateItems"); + } finally { diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.HostedSolution/Exchange2010SP2.cs b/WebsitePanel/Sources/WebsitePanel.Providers.HostedSolution/Exchange2010SP2.cs index fbb33f3a..c39bdbe0 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.HostedSolution/Exchange2010SP2.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.HostedSolution/Exchange2010SP2.cs @@ -369,6 +369,10 @@ namespace WebsitePanel.Providers.HostedSolution cmd.Parameters.Add("Equipment"); else if (accountType == ExchangeAccountType.Room) cmd.Parameters.Add("Room"); + else if (accountType == ExchangeAccountType.SharedMailbox) + cmd.Parameters.Add("Shared"); + else if (accountType == ExchangeAccountType.ResourceMailbox) + cmd.Parameters.Add("Equipment"); result = ExecuteShellCommand(runSpace, cmd); diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.TerminalServices.Windows2012/Windows2012.cs b/WebsitePanel/Sources/WebsitePanel.Providers.TerminalServices.Windows2012/Windows2012.cs index 934b2239..68de8394 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.TerminalServices.Windows2012/Windows2012.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.TerminalServices.Windows2012/Windows2012.cs @@ -194,19 +194,22 @@ namespace WebsitePanel.Providers.RemoteDesktopServices ActiveDirectoryUtils.CreateGroup(orgPath, GetUsersGroupName(collection.Name)); } + var capPolicyName = GetPolicyName(organizationId, collection.Name, RdsPolicyTypes.RdCap); + var rapPolicyName = GetPolicyName(organizationId, collection.Name, RdsPolicyTypes.RdRap); + foreach (var gateway in Gateways) { if (!CentralNps) { - CreateRdCapForce(runSpace, gateway, collection.Name, new List { GetUsersGroupName(collection.Name) }); + CreateRdCapForce(runSpace, gateway, capPolicyName, collection.Name, new List { GetUsersGroupName(collection.Name) }); } - CreateRdRapForce(runSpace, gateway, collection.Name, new List { GetUsersGroupName(collection.Name) }); + CreateRdRapForce(runSpace, gateway, rapPolicyName, collection.Name, new List { GetUsersGroupName(collection.Name) }); } if (CentralNps) { - CreateCentralNpsPolicy(runSpace, CentralNpsHost, collection.Name, organizationId); + CreateCentralNpsPolicy(runSpace, CentralNpsHost, capPolicyName, collection.Name, organizationId); } //add user group to collection @@ -278,19 +281,22 @@ namespace WebsitePanel.Providers.RemoteDesktopServices ExecuteShellCommand(runSpace, cmd, false); + var capPolicyName = GetPolicyName(organizationId, collectionName, RdsPolicyTypes.RdCap); + var rapPolicyName = GetPolicyName(organizationId, collectionName, RdsPolicyTypes.RdRap); + foreach (var gateway in Gateways) { if (!CentralNps) { - RemoveRdCap(runSpace, gateway, collectionName); + RemoveRdCap(runSpace, gateway, capPolicyName); } - RemoveRdRap(runSpace, gateway, collectionName); + RemoveRdRap(runSpace, gateway, rapPolicyName); } if (CentralNps) { - RemoveNpsPolicy(runSpace, CentralNpsHost, collectionName); + RemoveNpsPolicy(runSpace, CentralNpsHost, capPolicyName); } //Remove security group @@ -537,7 +543,7 @@ namespace WebsitePanel.Providers.RemoteDesktopServices #region Gateaway (RD CAP | RD RAP) - internal void CreateCentralNpsPolicy(Runspace runSpace, string centralNpshost, string collectionName, string organizationId) + internal void CreateCentralNpsPolicy(Runspace runSpace, string centralNpshost, string policyName, string collectionName, string organizationId) { var showCmd = new Command("netsh nps show np"); @@ -545,39 +551,39 @@ namespace WebsitePanel.Providers.RemoteDesktopServices var count = showResult.Count(x => Convert.ToString(x).Contains("policy conf")) + 1001; - var groupAd = ActiveDirectoryUtils.GetADObject(GetUsersGroupPath(organizationId, collectionName)); + var userGroupAd = ActiveDirectoryUtils.GetADObject(GetUsersGroupPath(organizationId, collectionName)); - var sid = (byte[])ActiveDirectoryUtils.GetADObjectProperty(groupAd, "objectSid"); + var userGroupSid = (byte[])ActiveDirectoryUtils.GetADObjectProperty(userGroupAd, "objectSid"); - var addCmdString = string.Format(AddNpsString, collectionName.Replace(" ", "_"), count, ConvertByteToStringSid(sid)); + var addCmdString = string.Format(AddNpsString, policyName.Replace(" ", "_"), count, ConvertByteToStringSid(userGroupSid)); Command addCmd = new Command(addCmdString); var result = ExecuteRemoteShellCommand(runSpace, centralNpshost, addCmd); } - internal void RemoveNpsPolicy(Runspace runSpace, string centralNpshost, string collectionName) + internal void RemoveNpsPolicy(Runspace runSpace, string centralNpshost, string policyName) { - var removeCmd = new Command(string.Format("netsh nps delete np {0}", collectionName.Replace(" ", "_"))); + var removeCmd = new Command(string.Format("netsh nps delete np {0}", policyName.Replace(" ", "_"))); var removeResult = ExecuteRemoteShellCommand(runSpace, centralNpshost, removeCmd); } - internal void CreateRdCapForce(Runspace runSpace, string gatewayHost, string name, List groups) + internal void CreateRdCapForce(Runspace runSpace, string gatewayHost, string policyName, string collectionName, List groups) { //New-Item -Path "RDS:\GatewayServer\CAP" -Name "Allow Admins" -UserGroups "Administrators@." -AuthMethod 1 //Set-Item -Path "RDS:\GatewayServer\CAP\Allow Admins\SessionTimeout" -Value 480 -SessionTimeoutAction 0 - if (ItemExistsRemote(runSpace, gatewayHost, Path.Combine(CapPath, name))) + if (ItemExistsRemote(runSpace, gatewayHost, Path.Combine(CapPath, policyName))) { - RemoveRdCap(runSpace, gatewayHost, name); + RemoveRdCap(runSpace, gatewayHost, policyName); } var userGroupParametr = string.Format("@({0})",string.Join(",", groups.Select(x => string.Format("\"{0}@{1}\"", x, RootDomain)).ToArray())); Command rdCapCommand = new Command("New-Item"); rdCapCommand.Parameters.Add("Path", string.Format("\"{0}\"", CapPath)); - rdCapCommand.Parameters.Add("Name", string.Format("\"{0}\"", name)); + rdCapCommand.Parameters.Add("Name", string.Format("\"{0}\"", policyName)); rdCapCommand.Parameters.Add("UserGroups", userGroupParametr); rdCapCommand.Parameters.Add("AuthMethod", 1); @@ -589,22 +595,22 @@ namespace WebsitePanel.Providers.RemoteDesktopServices RemoveItemRemote(runSpace, gatewayHost, string.Format(@"{0}\{1}", CapPath, name), RdsModuleName); } - internal void CreateRdRapForce(Runspace runSpace, string gatewayHost, string name, List groups) + internal void CreateRdRapForce(Runspace runSpace, string gatewayHost, string policyName, string collectionName, List groups) { //New-Item -Path "RDS:\GatewayServer\RAP" -Name "Allow Connections To Everywhere" -UserGroups "Administrators@." -ComputerGroupType 1 //Set-Item -Path "RDS:\GatewayServer\RAP\Allow Connections To Everywhere\PortNumbers" -Value 3389,3390 - if (ItemExistsRemote(runSpace, gatewayHost, Path.Combine(RapPath, name))) + if (ItemExistsRemote(runSpace, gatewayHost, Path.Combine(RapPath, policyName))) { - RemoveRdRap(runSpace, gatewayHost, name); + RemoveRdRap(runSpace, gatewayHost, policyName); } var userGroupParametr = string.Format("@({0})", string.Join(",", groups.Select(x => string.Format("\"{0}@{1}\"", x, RootDomain)).ToArray())); - var computerGroupParametr = string.Format("\"{0}@{1}\"", GetComputersGroupName(name), RootDomain); + var computerGroupParametr = string.Format("\"{0}@{1}\"", GetComputersGroupName(collectionName), RootDomain); Command rdRapCommand = new Command("New-Item"); rdRapCommand.Parameters.Add("Path", string.Format("\"{0}\"", RapPath)); - rdRapCommand.Parameters.Add("Name", string.Format("\"{0}\"", name)); + rdRapCommand.Parameters.Add("Name", string.Format("\"{0}\"", policyName)); rdRapCommand.Parameters.Add("UserGroups", userGroupParametr); rdRapCommand.Parameters.Add("ComputerGroupType", 1); rdRapCommand.Parameters.Add("ComputerGroup", computerGroupParametr); @@ -629,6 +635,8 @@ namespace WebsitePanel.Providers.RemoteDesktopServices ExecuteShellCommand(runSpace, cmd, false); } + + private bool ExistRdsServerInDeployment(Runspace runSpace, RdsServer server) { Command cmd = new Command("Get-RDserver"); @@ -924,6 +932,27 @@ namespace WebsitePanel.Providers.RemoteDesktopServices ExecuteRemoteShellCommand(runSpace, hostname, rdRapCommand, imports); } + private string GetPolicyName(string organizationId, string collectionName, RdsPolicyTypes policyType) + { + string policyName = string.Format("{0}-{1}-", organizationId, collectionName); + + switch (policyType) + { + case RdsPolicyTypes.RdCap: + { + policyName += "RDCAP"; + break; + } + case RdsPolicyTypes.RdRap: + { + policyName += "RDRAP"; + break; + } + } + + return policyName; + } + private string GetComputersGroupName(string collectionName) { return string.Format(RdsGroupFormat, collectionName, Computers.ToLowerInvariant()); diff --git a/WebsitePanel/Sources/WebsitePanel.Server.Client/RemoteDesktopServicesProxy.cs b/WebsitePanel/Sources/WebsitePanel.Server.Client/RemoteDesktopServicesProxy.cs index 699cb445..e3637eae 100644 --- a/WebsitePanel/Sources/WebsitePanel.Server.Client/RemoteDesktopServicesProxy.cs +++ b/WebsitePanel/Sources/WebsitePanel.Server.Client/RemoteDesktopServicesProxy.cs @@ -1,35 +1,7 @@ -// Copyright (c) 2014, 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. - //------------------------------------------------------------------------------ // // This code was generated by a tool. -// Runtime Version:2.0.50727.6400 +// Runtime Version:2.0.50727.7905 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. @@ -39,1330 +11,1149 @@ // // This source code was auto-generated by wsdl, Version=2.0.50727.3038. // - -using WebsitePanel.Providers.HostedSolution; - namespace WebsitePanel.Providers.RemoteDesktopServices { - using System; - using System.ComponentModel; - using System.Diagnostics; - using System.Web.Services; - using System.Web.Services.Protocols; using System.Xml.Serialization; - + using System.Web.Services; + using System.ComponentModel; + using System.Web.Services.Protocols; + using System; + using System.Diagnostics; + + /// [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] - [System.Web.Services.WebServiceBindingAttribute(Name = "RemoteDesktopServicesSoap", Namespace = "http://smbsaas/websitepanel/server/")] - public partial class RemoteDesktopServices : Microsoft.Web.Services3.WebServicesClientProtocol - { + [System.Web.Services.WebServiceBindingAttribute(Name="RemoteDesktopServicesSoap", Namespace="http://smbsaas/websitepanel/server/")] + public partial class RemoteDesktopServices : Microsoft.Web.Services3.WebServicesClientProtocol { + public ServiceProviderSettingsSoapHeader ServiceProviderSettingsSoapHeaderValue; - + private System.Threading.SendOrPostCallback CreateCollectionOperationCompleted; - + private System.Threading.SendOrPostCallback GetCollectionOperationCompleted; - + private System.Threading.SendOrPostCallback RemoveCollectionOperationCompleted; - + private System.Threading.SendOrPostCallback SetUsersInCollectionOperationCompleted; - + private System.Threading.SendOrPostCallback AddSessionHostServerToCollectionOperationCompleted; - + private System.Threading.SendOrPostCallback AddSessionHostServersToCollectionOperationCompleted; - + private System.Threading.SendOrPostCallback RemoveSessionHostServerFromCollectionOperationCompleted; - + private System.Threading.SendOrPostCallback RemoveSessionHostServersFromCollectionOperationCompleted; - + private System.Threading.SendOrPostCallback GetAvailableRemoteApplicationsOperationCompleted; - + private System.Threading.SendOrPostCallback GetCollectionRemoteApplicationsOperationCompleted; - + private System.Threading.SendOrPostCallback AddRemoteApplicationOperationCompleted; - + private System.Threading.SendOrPostCallback AddRemoteApplicationsOperationCompleted; - + private System.Threading.SendOrPostCallback RemoveRemoteApplicationOperationCompleted; - + private System.Threading.SendOrPostCallback AddSessionHostFeatureToServerOperationCompleted; - + private System.Threading.SendOrPostCallback CheckSessionHostFeatureInstallationOperationCompleted; - + private System.Threading.SendOrPostCallback CheckServerAvailabilityOperationCompleted; - + /// - public RemoteDesktopServices() - { - this.Url = "http://127.0.0.1:9003/RemoteDesktopServices.asmx"; + public RemoteDesktopServices() { + this.Url = "http://localhost:9003/RemoteDesktopServices.asmx"; } - + /// public event CreateCollectionCompletedEventHandler CreateCollectionCompleted; - + /// public event GetCollectionCompletedEventHandler GetCollectionCompleted; - + /// public event RemoveCollectionCompletedEventHandler RemoveCollectionCompleted; - + /// public event SetUsersInCollectionCompletedEventHandler SetUsersInCollectionCompleted; - + /// public event AddSessionHostServerToCollectionCompletedEventHandler AddSessionHostServerToCollectionCompleted; - + /// public event AddSessionHostServersToCollectionCompletedEventHandler AddSessionHostServersToCollectionCompleted; - + /// public event RemoveSessionHostServerFromCollectionCompletedEventHandler RemoveSessionHostServerFromCollectionCompleted; - + /// public event RemoveSessionHostServersFromCollectionCompletedEventHandler RemoveSessionHostServersFromCollectionCompleted; - + /// public event GetAvailableRemoteApplicationsCompletedEventHandler GetAvailableRemoteApplicationsCompleted; - + /// public event GetCollectionRemoteApplicationsCompletedEventHandler GetCollectionRemoteApplicationsCompleted; - + /// public event AddRemoteApplicationCompletedEventHandler AddRemoteApplicationCompleted; - + /// public event AddRemoteApplicationsCompletedEventHandler AddRemoteApplicationsCompleted; - + /// public event RemoveRemoteApplicationCompletedEventHandler RemoveRemoteApplicationCompleted; - + /// public event AddSessionHostFeatureToServerCompletedEventHandler AddSessionHostFeatureToServerCompleted; - + /// public event CheckSessionHostFeatureInstallationCompletedEventHandler CheckSessionHostFeatureInstallationCompleted; - + /// public event CheckServerAvailabilityCompletedEventHandler CheckServerAvailabilityCompleted; - + /// [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")] - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/CreateCollection", 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 bool CreateCollection(string organizationId, RdsCollection collection) - { + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/CreateCollection", 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 bool CreateCollection(string organizationId, RdsCollection collection) { object[] results = this.Invoke("CreateCollection", new object[] { - organizationId, - collection}); + organizationId, + collection}); return ((bool)(results[0])); } - + /// - public System.IAsyncResult BeginCreateCollection(string organizationId, RdsCollection collection, System.AsyncCallback callback, object asyncState) - { + public System.IAsyncResult BeginCreateCollection(string organizationId, RdsCollection collection, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("CreateCollection", new object[] { - organizationId, - collection}, callback, asyncState); + organizationId, + collection}, callback, asyncState); } - + /// - public bool EndCreateCollection(System.IAsyncResult asyncResult) - { + public bool EndCreateCollection(System.IAsyncResult asyncResult) { object[] results = this.EndInvoke(asyncResult); return ((bool)(results[0])); } - + /// - public void CreateCollectionAsync(string organizationId, RdsCollection collection) - { + public void CreateCollectionAsync(string organizationId, RdsCollection collection) { this.CreateCollectionAsync(organizationId, collection, null); } - + /// - public void CreateCollectionAsync(string organizationId, RdsCollection collection, object userState) - { - if ((this.CreateCollectionOperationCompleted == null)) - { + public void CreateCollectionAsync(string organizationId, RdsCollection collection, object userState) { + if ((this.CreateCollectionOperationCompleted == null)) { this.CreateCollectionOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCreateCollectionOperationCompleted); } this.InvokeAsync("CreateCollection", new object[] { - organizationId, - collection}, this.CreateCollectionOperationCompleted, userState); + organizationId, + collection}, this.CreateCollectionOperationCompleted, userState); } - - private void OnCreateCollectionOperationCompleted(object arg) - { - if ((this.CreateCollectionCompleted != null)) - { + + private void OnCreateCollectionOperationCompleted(object arg) { + if ((this.CreateCollectionCompleted != null)) { System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); this.CreateCollectionCompleted(this, new CreateCollectionCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); } } - + /// [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")] - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/GetCollection", 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 RdsCollection GetCollection(string collectionName) - { + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/GetCollection", 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 RdsCollection GetCollection(string collectionName) { object[] results = this.Invoke("GetCollection", new object[] { - collectionName}); + collectionName}); return ((RdsCollection)(results[0])); } - + /// - public System.IAsyncResult BeginGetCollection(string collectionName, System.AsyncCallback callback, object asyncState) - { + public System.IAsyncResult BeginGetCollection(string collectionName, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("GetCollection", new object[] { - collectionName}, callback, asyncState); + collectionName}, callback, asyncState); } - + /// - public RdsCollection EndGetCollection(System.IAsyncResult asyncResult) - { + public RdsCollection EndGetCollection(System.IAsyncResult asyncResult) { object[] results = this.EndInvoke(asyncResult); return ((RdsCollection)(results[0])); } - + /// - public void GetCollectionAsync(string collectionName) - { + public void GetCollectionAsync(string collectionName) { this.GetCollectionAsync(collectionName, null); } - + /// - public void GetCollectionAsync(string collectionName, object userState) - { - if ((this.GetCollectionOperationCompleted == null)) - { + public void GetCollectionAsync(string collectionName, object userState) { + if ((this.GetCollectionOperationCompleted == null)) { this.GetCollectionOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetCollectionOperationCompleted); } this.InvokeAsync("GetCollection", new object[] { - collectionName}, this.GetCollectionOperationCompleted, userState); + collectionName}, this.GetCollectionOperationCompleted, userState); } - - private void OnGetCollectionOperationCompleted(object arg) - { - if ((this.GetCollectionCompleted != null)) - { + + private void OnGetCollectionOperationCompleted(object arg) { + if ((this.GetCollectionCompleted != null)) { System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); this.GetCollectionCompleted(this, new GetCollectionCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); } } - + /// [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")] - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/RemoveCollection", 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 bool RemoveCollection(string organizationId, string collectionName) - { + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/RemoveCollection", 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 bool RemoveCollection(string organizationId, string collectionName) { object[] results = this.Invoke("RemoveCollection", new object[] { - organizationId, - collectionName}); + organizationId, + collectionName}); return ((bool)(results[0])); } - + /// - public System.IAsyncResult BeginRemoveCollection(string organizationId, string collectionName, System.AsyncCallback callback, object asyncState) - { + public System.IAsyncResult BeginRemoveCollection(string organizationId, string collectionName, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("RemoveCollection", new object[] { - organizationId, - collectionName}, callback, asyncState); + organizationId, + collectionName}, callback, asyncState); } - + /// - public bool EndRemoveCollection(System.IAsyncResult asyncResult) - { + public bool EndRemoveCollection(System.IAsyncResult asyncResult) { object[] results = this.EndInvoke(asyncResult); return ((bool)(results[0])); } - + /// - public void RemoveCollectionAsync(string organizationId, string collectionName) - { + public void RemoveCollectionAsync(string organizationId, string collectionName) { this.RemoveCollectionAsync(organizationId, collectionName, null); } - + /// - public void RemoveCollectionAsync(string organizationId, string collectionName, object userState) - { - if ((this.RemoveCollectionOperationCompleted == null)) - { + public void RemoveCollectionAsync(string organizationId, string collectionName, object userState) { + if ((this.RemoveCollectionOperationCompleted == null)) { this.RemoveCollectionOperationCompleted = new System.Threading.SendOrPostCallback(this.OnRemoveCollectionOperationCompleted); } this.InvokeAsync("RemoveCollection", new object[] { - organizationId, - collectionName}, this.RemoveCollectionOperationCompleted, userState); + organizationId, + collectionName}, this.RemoveCollectionOperationCompleted, userState); } - - private void OnRemoveCollectionOperationCompleted(object arg) - { - if ((this.RemoveCollectionCompleted != null)) - { + + private void OnRemoveCollectionOperationCompleted(object arg) { + if ((this.RemoveCollectionCompleted != null)) { System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); this.RemoveCollectionCompleted(this, new RemoveCollectionCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); } } - + /// [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")] - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/SetUsersInCollection", 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 bool SetUsersInCollection(string organizationId, string collectionName, string[] users) - { + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/SetUsersInCollection", 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 bool SetUsersInCollection(string organizationId, string collectionName, string[] users) { object[] results = this.Invoke("SetUsersInCollection", new object[] { - organizationId, - collectionName, - users}); + organizationId, + collectionName, + users}); return ((bool)(results[0])); } - + /// - public System.IAsyncResult BeginSetUsersInCollection(string organizationId, string collectionName, string[] users, System.AsyncCallback callback, object asyncState) - { + public System.IAsyncResult BeginSetUsersInCollection(string organizationId, string collectionName, string[] users, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("SetUsersInCollection", new object[] { - organizationId, - collectionName, - users}, callback, asyncState); + organizationId, + collectionName, + users}, callback, asyncState); } - + /// - public bool EndSetUsersInCollection(System.IAsyncResult asyncResult) - { + public bool EndSetUsersInCollection(System.IAsyncResult asyncResult) { object[] results = this.EndInvoke(asyncResult); return ((bool)(results[0])); } - + /// - public void SetUsersInCollectionAsync(string organizationId, string collectionName, string[] users) - { + public void SetUsersInCollectionAsync(string organizationId, string collectionName, string[] users) { this.SetUsersInCollectionAsync(organizationId, collectionName, users, null); } - + /// - public void SetUsersInCollectionAsync(string organizationId, string collectionName, string[] users, object userState) - { - if ((this.SetUsersInCollectionOperationCompleted == null)) - { + public void SetUsersInCollectionAsync(string organizationId, string collectionName, string[] users, object userState) { + if ((this.SetUsersInCollectionOperationCompleted == null)) { this.SetUsersInCollectionOperationCompleted = new System.Threading.SendOrPostCallback(this.OnSetUsersInCollectionOperationCompleted); } this.InvokeAsync("SetUsersInCollection", new object[] { - organizationId, - collectionName, - users}, this.SetUsersInCollectionOperationCompleted, userState); + organizationId, + collectionName, + users}, this.SetUsersInCollectionOperationCompleted, userState); } - - private void OnSetUsersInCollectionOperationCompleted(object arg) - { - if ((this.SetUsersInCollectionCompleted != null)) - { + + private void OnSetUsersInCollectionOperationCompleted(object arg) { + if ((this.SetUsersInCollectionCompleted != null)) { System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); this.SetUsersInCollectionCompleted(this, new SetUsersInCollectionCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); } } - + /// [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")] - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/AddSessionHostServerToCollection", 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 AddSessionHostServerToCollection(string organizationId, string collectionName, RdsServer server) - { + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/AddSessionHostServerToCollection", 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 AddSessionHostServerToCollection(string organizationId, string collectionName, RdsServer server) { this.Invoke("AddSessionHostServerToCollection", new object[] { - organizationId, - collectionName, - server}); + organizationId, + collectionName, + server}); } - + /// - public System.IAsyncResult BeginAddSessionHostServerToCollection(string organizationId, string collectionName, RdsServer server, System.AsyncCallback callback, object asyncState) - { + public System.IAsyncResult BeginAddSessionHostServerToCollection(string organizationId, string collectionName, RdsServer server, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("AddSessionHostServerToCollection", new object[] { - organizationId, - collectionName, - server}, callback, asyncState); + organizationId, + collectionName, + server}, callback, asyncState); } - + /// - public void EndAddSessionHostServerToCollection(System.IAsyncResult asyncResult) - { + public void EndAddSessionHostServerToCollection(System.IAsyncResult asyncResult) { this.EndInvoke(asyncResult); } - + /// - public void AddSessionHostServerToCollectionAsync(string organizationId, string collectionName, RdsServer server) - { + public void AddSessionHostServerToCollectionAsync(string organizationId, string collectionName, RdsServer server) { this.AddSessionHostServerToCollectionAsync(organizationId, collectionName, server, null); } - + /// - public void AddSessionHostServerToCollectionAsync(string organizationId, string collectionName, RdsServer server, object userState) - { - if ((this.AddSessionHostServerToCollectionOperationCompleted == null)) - { + public void AddSessionHostServerToCollectionAsync(string organizationId, string collectionName, RdsServer server, object userState) { + if ((this.AddSessionHostServerToCollectionOperationCompleted == null)) { this.AddSessionHostServerToCollectionOperationCompleted = new System.Threading.SendOrPostCallback(this.OnAddSessionHostServerToCollectionOperationCompleted); } this.InvokeAsync("AddSessionHostServerToCollection", new object[] { - organizationId, - collectionName, - server}, this.AddSessionHostServerToCollectionOperationCompleted, userState); + organizationId, + collectionName, + server}, this.AddSessionHostServerToCollectionOperationCompleted, userState); } - - private void OnAddSessionHostServerToCollectionOperationCompleted(object arg) - { - if ((this.AddSessionHostServerToCollectionCompleted != null)) - { + + private void OnAddSessionHostServerToCollectionOperationCompleted(object arg) { + if ((this.AddSessionHostServerToCollectionCompleted != null)) { System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); this.AddSessionHostServerToCollectionCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); } } - + /// [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")] - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/AddSessionHostServersToCollection", 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 AddSessionHostServersToCollection(string organizationId, string collectionName, RdsServer[] servers) - { + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/AddSessionHostServersToCollection", 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 AddSessionHostServersToCollection(string organizationId, string collectionName, RdsServer[] servers) { this.Invoke("AddSessionHostServersToCollection", new object[] { - organizationId, - collectionName, - servers}); + organizationId, + collectionName, + servers}); } - + /// - public System.IAsyncResult BeginAddSessionHostServersToCollection(string organizationId, string collectionName, RdsServer[] servers, System.AsyncCallback callback, object asyncState) - { + public System.IAsyncResult BeginAddSessionHostServersToCollection(string organizationId, string collectionName, RdsServer[] servers, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("AddSessionHostServersToCollection", new object[] { - organizationId, - collectionName, - servers}, callback, asyncState); + organizationId, + collectionName, + servers}, callback, asyncState); } - + /// - public void EndAddSessionHostServersToCollection(System.IAsyncResult asyncResult) - { + public void EndAddSessionHostServersToCollection(System.IAsyncResult asyncResult) { this.EndInvoke(asyncResult); } - + /// - public void AddSessionHostServersToCollectionAsync(string organizationId, string collectionName, RdsServer[] servers) - { + public void AddSessionHostServersToCollectionAsync(string organizationId, string collectionName, RdsServer[] servers) { this.AddSessionHostServersToCollectionAsync(organizationId, collectionName, servers, null); } - + /// - public void AddSessionHostServersToCollectionAsync(string organizationId, string collectionName, RdsServer[] servers, object userState) - { - if ((this.AddSessionHostServersToCollectionOperationCompleted == null)) - { + public void AddSessionHostServersToCollectionAsync(string organizationId, string collectionName, RdsServer[] servers, object userState) { + if ((this.AddSessionHostServersToCollectionOperationCompleted == null)) { this.AddSessionHostServersToCollectionOperationCompleted = new System.Threading.SendOrPostCallback(this.OnAddSessionHostServersToCollectionOperationCompleted); } this.InvokeAsync("AddSessionHostServersToCollection", new object[] { - organizationId, - collectionName, - servers}, this.AddSessionHostServersToCollectionOperationCompleted, userState); + organizationId, + collectionName, + servers}, this.AddSessionHostServersToCollectionOperationCompleted, userState); } - - private void OnAddSessionHostServersToCollectionOperationCompleted(object arg) - { - if ((this.AddSessionHostServersToCollectionCompleted != null)) - { + + private void OnAddSessionHostServersToCollectionOperationCompleted(object arg) { + if ((this.AddSessionHostServersToCollectionCompleted != null)) { System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); this.AddSessionHostServersToCollectionCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); } } - + /// [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")] - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/RemoveSessionHostServerFromCollection", 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 RemoveSessionHostServerFromCollection(string organizationId, string collectionName, RdsServer server) - { + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/RemoveSessionHostServerFromCollection", 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 RemoveSessionHostServerFromCollection(string organizationId, string collectionName, RdsServer server) { this.Invoke("RemoveSessionHostServerFromCollection", new object[] { - organizationId, - collectionName, - server}); + organizationId, + collectionName, + server}); } - + /// - public System.IAsyncResult BeginRemoveSessionHostServerFromCollection(string organizationId, string collectionName, RdsServer server, System.AsyncCallback callback, object asyncState) - { + public System.IAsyncResult BeginRemoveSessionHostServerFromCollection(string organizationId, string collectionName, RdsServer server, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("RemoveSessionHostServerFromCollection", new object[] { - organizationId, - collectionName, - server}, callback, asyncState); + organizationId, + collectionName, + server}, callback, asyncState); } - + /// - public void EndRemoveSessionHostServerFromCollection(System.IAsyncResult asyncResult) - { + public void EndRemoveSessionHostServerFromCollection(System.IAsyncResult asyncResult) { this.EndInvoke(asyncResult); } - + /// - public void RemoveSessionHostServerFromCollectionAsync(string organizationId, string collectionName, RdsServer server) - { + public void RemoveSessionHostServerFromCollectionAsync(string organizationId, string collectionName, RdsServer server) { this.RemoveSessionHostServerFromCollectionAsync(organizationId, collectionName, server, null); } - + /// - public void RemoveSessionHostServerFromCollectionAsync(string organizationId, string collectionName, RdsServer server, object userState) - { - if ((this.RemoveSessionHostServerFromCollectionOperationCompleted == null)) - { + public void RemoveSessionHostServerFromCollectionAsync(string organizationId, string collectionName, RdsServer server, object userState) { + if ((this.RemoveSessionHostServerFromCollectionOperationCompleted == null)) { this.RemoveSessionHostServerFromCollectionOperationCompleted = new System.Threading.SendOrPostCallback(this.OnRemoveSessionHostServerFromCollectionOperationCompleted); } this.InvokeAsync("RemoveSessionHostServerFromCollection", new object[] { - organizationId, - collectionName, - server}, this.RemoveSessionHostServerFromCollectionOperationCompleted, userState); + organizationId, + collectionName, + server}, this.RemoveSessionHostServerFromCollectionOperationCompleted, userState); } - - private void OnRemoveSessionHostServerFromCollectionOperationCompleted(object arg) - { - if ((this.RemoveSessionHostServerFromCollectionCompleted != null)) - { + + private void OnRemoveSessionHostServerFromCollectionOperationCompleted(object arg) { + if ((this.RemoveSessionHostServerFromCollectionCompleted != null)) { System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); this.RemoveSessionHostServerFromCollectionCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); } } - + /// [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")] - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/RemoveSessionHostServersFromCollection", 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 RemoveSessionHostServersFromCollection(string organizationId, string collectionName, RdsServer[] servers) - { + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/RemoveSessionHostServersFromCollection", 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 RemoveSessionHostServersFromCollection(string organizationId, string collectionName, RdsServer[] servers) { this.Invoke("RemoveSessionHostServersFromCollection", new object[] { - organizationId, - collectionName, - servers}); + organizationId, + collectionName, + servers}); } - + /// - public System.IAsyncResult BeginRemoveSessionHostServersFromCollection(string organizationId, string collectionName, RdsServer[] servers, System.AsyncCallback callback, object asyncState) - { + public System.IAsyncResult BeginRemoveSessionHostServersFromCollection(string organizationId, string collectionName, RdsServer[] servers, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("RemoveSessionHostServersFromCollection", new object[] { - organizationId, - collectionName, - servers}, callback, asyncState); + organizationId, + collectionName, + servers}, callback, asyncState); } - + /// - public void EndRemoveSessionHostServersFromCollection(System.IAsyncResult asyncResult) - { + public void EndRemoveSessionHostServersFromCollection(System.IAsyncResult asyncResult) { this.EndInvoke(asyncResult); } - + /// - public void RemoveSessionHostServersFromCollectionAsync(string organizationId, string collectionName, RdsServer[] servers) - { + public void RemoveSessionHostServersFromCollectionAsync(string organizationId, string collectionName, RdsServer[] servers) { this.RemoveSessionHostServersFromCollectionAsync(organizationId, collectionName, servers, null); } - + /// - public void RemoveSessionHostServersFromCollectionAsync(string organizationId, string collectionName, RdsServer[] servers, object userState) - { - if ((this.RemoveSessionHostServersFromCollectionOperationCompleted == null)) - { + public void RemoveSessionHostServersFromCollectionAsync(string organizationId, string collectionName, RdsServer[] servers, object userState) { + if ((this.RemoveSessionHostServersFromCollectionOperationCompleted == null)) { this.RemoveSessionHostServersFromCollectionOperationCompleted = new System.Threading.SendOrPostCallback(this.OnRemoveSessionHostServersFromCollectionOperationCompleted); } this.InvokeAsync("RemoveSessionHostServersFromCollection", new object[] { - organizationId, - collectionName, - servers}, this.RemoveSessionHostServersFromCollectionOperationCompleted, userState); + organizationId, + collectionName, + servers}, this.RemoveSessionHostServersFromCollectionOperationCompleted, userState); } - - private void OnRemoveSessionHostServersFromCollectionOperationCompleted(object arg) - { - if ((this.RemoveSessionHostServersFromCollectionCompleted != null)) - { + + private void OnRemoveSessionHostServersFromCollectionOperationCompleted(object arg) { + if ((this.RemoveSessionHostServersFromCollectionCompleted != null)) { System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); this.RemoveSessionHostServersFromCollectionCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); } } - + /// [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")] - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/GetAvailableRemoteApplications", 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 StartMenuApp[] GetAvailableRemoteApplications(string collectionName) - { + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/GetAvailableRemoteApplications", 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 StartMenuApp[] GetAvailableRemoteApplications(string collectionName) { object[] results = this.Invoke("GetAvailableRemoteApplications", new object[] { - collectionName}); + collectionName}); return ((StartMenuApp[])(results[0])); } - + /// - public System.IAsyncResult BeginGetAvailableRemoteApplications(string collectionName, System.AsyncCallback callback, object asyncState) - { + public System.IAsyncResult BeginGetAvailableRemoteApplications(string collectionName, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("GetAvailableRemoteApplications", new object[] { - collectionName}, callback, asyncState); + collectionName}, callback, asyncState); } - + /// - public StartMenuApp[] EndGetAvailableRemoteApplications(System.IAsyncResult asyncResult) - { + public StartMenuApp[] EndGetAvailableRemoteApplications(System.IAsyncResult asyncResult) { object[] results = this.EndInvoke(asyncResult); return ((StartMenuApp[])(results[0])); } - + /// - public void GetAvailableRemoteApplicationsAsync(string collectionName) - { + public void GetAvailableRemoteApplicationsAsync(string collectionName) { this.GetAvailableRemoteApplicationsAsync(collectionName, null); } - + /// - public void GetAvailableRemoteApplicationsAsync(string collectionName, object userState) - { - if ((this.GetAvailableRemoteApplicationsOperationCompleted == null)) - { + public void GetAvailableRemoteApplicationsAsync(string collectionName, object userState) { + if ((this.GetAvailableRemoteApplicationsOperationCompleted == null)) { this.GetAvailableRemoteApplicationsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetAvailableRemoteApplicationsOperationCompleted); } this.InvokeAsync("GetAvailableRemoteApplications", new object[] { - collectionName}, this.GetAvailableRemoteApplicationsOperationCompleted, userState); + collectionName}, this.GetAvailableRemoteApplicationsOperationCompleted, userState); } - - private void OnGetAvailableRemoteApplicationsOperationCompleted(object arg) - { - if ((this.GetAvailableRemoteApplicationsCompleted != null)) - { + + private void OnGetAvailableRemoteApplicationsOperationCompleted(object arg) { + if ((this.GetAvailableRemoteApplicationsCompleted != null)) { System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); this.GetAvailableRemoteApplicationsCompleted(this, new GetAvailableRemoteApplicationsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); } } - + /// [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")] - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/GetCollectionRemoteApplications", 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 RemoteApplication[] GetCollectionRemoteApplications(string collectionName) - { + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/GetCollectionRemoteApplications", 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 RemoteApplication[] GetCollectionRemoteApplications(string collectionName) { object[] results = this.Invoke("GetCollectionRemoteApplications", new object[] { - collectionName}); + collectionName}); return ((RemoteApplication[])(results[0])); } - + /// - public System.IAsyncResult BeginGetCollectionRemoteApplications(string collectionName, System.AsyncCallback callback, object asyncState) - { + public System.IAsyncResult BeginGetCollectionRemoteApplications(string collectionName, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("GetCollectionRemoteApplications", new object[] { - collectionName}, callback, asyncState); + collectionName}, callback, asyncState); } - + /// - public RemoteApplication[] EndGetCollectionRemoteApplications(System.IAsyncResult asyncResult) - { + public RemoteApplication[] EndGetCollectionRemoteApplications(System.IAsyncResult asyncResult) { object[] results = this.EndInvoke(asyncResult); return ((RemoteApplication[])(results[0])); } - + /// - public void GetCollectionRemoteApplicationsAsync(string collectionName) - { + public void GetCollectionRemoteApplicationsAsync(string collectionName) { this.GetCollectionRemoteApplicationsAsync(collectionName, null); } - + /// - public void GetCollectionRemoteApplicationsAsync(string collectionName, object userState) - { - if ((this.GetCollectionRemoteApplicationsOperationCompleted == null)) - { + public void GetCollectionRemoteApplicationsAsync(string collectionName, object userState) { + if ((this.GetCollectionRemoteApplicationsOperationCompleted == null)) { this.GetCollectionRemoteApplicationsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetCollectionRemoteApplicationsOperationCompleted); } this.InvokeAsync("GetCollectionRemoteApplications", new object[] { - collectionName}, this.GetCollectionRemoteApplicationsOperationCompleted, userState); + collectionName}, this.GetCollectionRemoteApplicationsOperationCompleted, userState); } - - private void OnGetCollectionRemoteApplicationsOperationCompleted(object arg) - { - if ((this.GetCollectionRemoteApplicationsCompleted != null)) - { + + private void OnGetCollectionRemoteApplicationsOperationCompleted(object arg) { + if ((this.GetCollectionRemoteApplicationsCompleted != null)) { System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); this.GetCollectionRemoteApplicationsCompleted(this, new GetCollectionRemoteApplicationsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); } } - + /// [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")] - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/AddRemoteApplication", 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 bool AddRemoteApplication(string collectionName, RemoteApplication remoteApp) - { + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/AddRemoteApplication", 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 bool AddRemoteApplication(string collectionName, RemoteApplication remoteApp) { object[] results = this.Invoke("AddRemoteApplication", new object[] { - collectionName, - remoteApp}); + collectionName, + remoteApp}); return ((bool)(results[0])); } - + /// - public System.IAsyncResult BeginAddRemoteApplication(string collectionName, RemoteApplication remoteApp, System.AsyncCallback callback, object asyncState) - { + public System.IAsyncResult BeginAddRemoteApplication(string collectionName, RemoteApplication remoteApp, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("AddRemoteApplication", new object[] { - collectionName, - remoteApp}, callback, asyncState); + collectionName, + remoteApp}, callback, asyncState); } - + /// - public bool EndAddRemoteApplication(System.IAsyncResult asyncResult) - { + public bool EndAddRemoteApplication(System.IAsyncResult asyncResult) { object[] results = this.EndInvoke(asyncResult); return ((bool)(results[0])); } - + /// - public void AddRemoteApplicationAsync(string collectionName, RemoteApplication remoteApp) - { + public void AddRemoteApplicationAsync(string collectionName, RemoteApplication remoteApp) { this.AddRemoteApplicationAsync(collectionName, remoteApp, null); } - + /// - public void AddRemoteApplicationAsync(string collectionName, RemoteApplication remoteApp, object userState) - { - if ((this.AddRemoteApplicationOperationCompleted == null)) - { + public void AddRemoteApplicationAsync(string collectionName, RemoteApplication remoteApp, object userState) { + if ((this.AddRemoteApplicationOperationCompleted == null)) { this.AddRemoteApplicationOperationCompleted = new System.Threading.SendOrPostCallback(this.OnAddRemoteApplicationOperationCompleted); } this.InvokeAsync("AddRemoteApplication", new object[] { - collectionName, - remoteApp}, this.AddRemoteApplicationOperationCompleted, userState); + collectionName, + remoteApp}, this.AddRemoteApplicationOperationCompleted, userState); } - - private void OnAddRemoteApplicationOperationCompleted(object arg) - { - if ((this.AddRemoteApplicationCompleted != null)) - { + + private void OnAddRemoteApplicationOperationCompleted(object arg) { + if ((this.AddRemoteApplicationCompleted != null)) { System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); this.AddRemoteApplicationCompleted(this, new AddRemoteApplicationCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); } } - + /// [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")] - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/AddRemoteApplications", 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 bool AddRemoteApplications(string collectionName, RemoteApplication[] remoteApps) - { + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/AddRemoteApplications", 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 bool AddRemoteApplications(string collectionName, RemoteApplication[] remoteApps) { object[] results = this.Invoke("AddRemoteApplications", new object[] { - collectionName, - remoteApps}); + collectionName, + remoteApps}); return ((bool)(results[0])); } - + /// - public System.IAsyncResult BeginAddRemoteApplications(string collectionName, RemoteApplication[] remoteApps, System.AsyncCallback callback, object asyncState) - { + public System.IAsyncResult BeginAddRemoteApplications(string collectionName, RemoteApplication[] remoteApps, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("AddRemoteApplications", new object[] { - collectionName, - remoteApps}, callback, asyncState); + collectionName, + remoteApps}, callback, asyncState); } - + /// - public bool EndAddRemoteApplications(System.IAsyncResult asyncResult) - { + public bool EndAddRemoteApplications(System.IAsyncResult asyncResult) { object[] results = this.EndInvoke(asyncResult); return ((bool)(results[0])); } - + /// - public void AddRemoteApplicationsAsync(string collectionName, RemoteApplication[] remoteApps) - { + public void AddRemoteApplicationsAsync(string collectionName, RemoteApplication[] remoteApps) { this.AddRemoteApplicationsAsync(collectionName, remoteApps, null); } - + /// - public void AddRemoteApplicationsAsync(string collectionName, RemoteApplication[] remoteApps, object userState) - { - if ((this.AddRemoteApplicationsOperationCompleted == null)) - { + public void AddRemoteApplicationsAsync(string collectionName, RemoteApplication[] remoteApps, object userState) { + if ((this.AddRemoteApplicationsOperationCompleted == null)) { this.AddRemoteApplicationsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnAddRemoteApplicationsOperationCompleted); } this.InvokeAsync("AddRemoteApplications", new object[] { - collectionName, - remoteApps}, this.AddRemoteApplicationsOperationCompleted, userState); + collectionName, + remoteApps}, this.AddRemoteApplicationsOperationCompleted, userState); } - - private void OnAddRemoteApplicationsOperationCompleted(object arg) - { - if ((this.AddRemoteApplicationsCompleted != null)) - { + + private void OnAddRemoteApplicationsOperationCompleted(object arg) { + if ((this.AddRemoteApplicationsCompleted != null)) { System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); this.AddRemoteApplicationsCompleted(this, new AddRemoteApplicationsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); } } - + /// [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")] - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/RemoveRemoteApplication", 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 bool RemoveRemoteApplication(string collectionName, RemoteApplication remoteApp) - { + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/RemoveRemoteApplication", 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 bool RemoveRemoteApplication(string collectionName, RemoteApplication remoteApp) { object[] results = this.Invoke("RemoveRemoteApplication", new object[] { - collectionName, - remoteApp}); + collectionName, + remoteApp}); return ((bool)(results[0])); } - + /// - public System.IAsyncResult BeginRemoveRemoteApplication(string collectionName, RemoteApplication remoteApp, System.AsyncCallback callback, object asyncState) - { + public System.IAsyncResult BeginRemoveRemoteApplication(string collectionName, RemoteApplication remoteApp, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("RemoveRemoteApplication", new object[] { - collectionName, - remoteApp}, callback, asyncState); + collectionName, + remoteApp}, callback, asyncState); } - + /// - public bool EndRemoveRemoteApplication(System.IAsyncResult asyncResult) - { + public bool EndRemoveRemoteApplication(System.IAsyncResult asyncResult) { object[] results = this.EndInvoke(asyncResult); return ((bool)(results[0])); } - + /// - public void RemoveRemoteApplicationAsync(string collectionName, RemoteApplication remoteApp) - { + public void RemoveRemoteApplicationAsync(string collectionName, RemoteApplication remoteApp) { this.RemoveRemoteApplicationAsync(collectionName, remoteApp, null); } - + /// - public void RemoveRemoteApplicationAsync(string collectionName, RemoteApplication remoteApp, object userState) - { - if ((this.RemoveRemoteApplicationOperationCompleted == null)) - { + public void RemoveRemoteApplicationAsync(string collectionName, RemoteApplication remoteApp, object userState) { + if ((this.RemoveRemoteApplicationOperationCompleted == null)) { this.RemoveRemoteApplicationOperationCompleted = new System.Threading.SendOrPostCallback(this.OnRemoveRemoteApplicationOperationCompleted); } this.InvokeAsync("RemoveRemoteApplication", new object[] { - collectionName, - remoteApp}, this.RemoveRemoteApplicationOperationCompleted, userState); + collectionName, + remoteApp}, this.RemoveRemoteApplicationOperationCompleted, userState); } - - private void OnRemoveRemoteApplicationOperationCompleted(object arg) - { - if ((this.RemoveRemoteApplicationCompleted != null)) - { + + private void OnRemoveRemoteApplicationOperationCompleted(object arg) { + if ((this.RemoveRemoteApplicationCompleted != null)) { System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); this.RemoveRemoteApplicationCompleted(this, new RemoveRemoteApplicationCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); } } - + /// [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")] - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/AddSessionHostFeatureToServer", 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 bool AddSessionHostFeatureToServer(string hostName) - { + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/AddSessionHostFeatureToServer", 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 bool AddSessionHostFeatureToServer(string hostName) { object[] results = this.Invoke("AddSessionHostFeatureToServer", new object[] { - hostName}); + hostName}); return ((bool)(results[0])); } - + /// - public System.IAsyncResult BeginAddSessionHostFeatureToServer(string hostName, System.AsyncCallback callback, object asyncState) - { + public System.IAsyncResult BeginAddSessionHostFeatureToServer(string hostName, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("AddSessionHostFeatureToServer", new object[] { - hostName}, callback, asyncState); + hostName}, callback, asyncState); } - + /// - public bool EndAddSessionHostFeatureToServer(System.IAsyncResult asyncResult) - { + public bool EndAddSessionHostFeatureToServer(System.IAsyncResult asyncResult) { object[] results = this.EndInvoke(asyncResult); return ((bool)(results[0])); } - + /// - public void AddSessionHostFeatureToServerAsync(string hostName) - { + public void AddSessionHostFeatureToServerAsync(string hostName) { this.AddSessionHostFeatureToServerAsync(hostName, null); } - + /// - public void AddSessionHostFeatureToServerAsync(string hostName, object userState) - { - if ((this.AddSessionHostFeatureToServerOperationCompleted == null)) - { + public void AddSessionHostFeatureToServerAsync(string hostName, object userState) { + if ((this.AddSessionHostFeatureToServerOperationCompleted == null)) { this.AddSessionHostFeatureToServerOperationCompleted = new System.Threading.SendOrPostCallback(this.OnAddSessionHostFeatureToServerOperationCompleted); } this.InvokeAsync("AddSessionHostFeatureToServer", new object[] { - hostName}, this.AddSessionHostFeatureToServerOperationCompleted, userState); + hostName}, this.AddSessionHostFeatureToServerOperationCompleted, userState); } - - private void OnAddSessionHostFeatureToServerOperationCompleted(object arg) - { - if ((this.AddSessionHostFeatureToServerCompleted != null)) - { + + private void OnAddSessionHostFeatureToServerOperationCompleted(object arg) { + if ((this.AddSessionHostFeatureToServerCompleted != null)) { System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); this.AddSessionHostFeatureToServerCompleted(this, new AddSessionHostFeatureToServerCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); } } - + /// [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")] - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/CheckSessionHostFeatureInstallation", 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 bool CheckSessionHostFeatureInstallation(string hostName) - { + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/CheckSessionHostFeatureInstallation", 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 bool CheckSessionHostFeatureInstallation(string hostName) { object[] results = this.Invoke("CheckSessionHostFeatureInstallation", new object[] { - hostName}); + hostName}); return ((bool)(results[0])); } - + /// - public System.IAsyncResult BeginCheckSessionHostFeatureInstallation(string hostName, System.AsyncCallback callback, object asyncState) - { + public System.IAsyncResult BeginCheckSessionHostFeatureInstallation(string hostName, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("CheckSessionHostFeatureInstallation", new object[] { - hostName}, callback, asyncState); + hostName}, callback, asyncState); } - + /// - public bool EndCheckSessionHostFeatureInstallation(System.IAsyncResult asyncResult) - { + public bool EndCheckSessionHostFeatureInstallation(System.IAsyncResult asyncResult) { object[] results = this.EndInvoke(asyncResult); return ((bool)(results[0])); } - + /// - public void CheckSessionHostFeatureInstallationAsync(string hostName) - { + public void CheckSessionHostFeatureInstallationAsync(string hostName) { this.CheckSessionHostFeatureInstallationAsync(hostName, null); } - + /// - public void CheckSessionHostFeatureInstallationAsync(string hostName, object userState) - { - if ((this.CheckSessionHostFeatureInstallationOperationCompleted == null)) - { + public void CheckSessionHostFeatureInstallationAsync(string hostName, object userState) { + if ((this.CheckSessionHostFeatureInstallationOperationCompleted == null)) { this.CheckSessionHostFeatureInstallationOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCheckSessionHostFeatureInstallationOperationCompleted); } this.InvokeAsync("CheckSessionHostFeatureInstallation", new object[] { - hostName}, this.CheckSessionHostFeatureInstallationOperationCompleted, userState); + hostName}, this.CheckSessionHostFeatureInstallationOperationCompleted, userState); } - - private void OnCheckSessionHostFeatureInstallationOperationCompleted(object arg) - { - if ((this.CheckSessionHostFeatureInstallationCompleted != null)) - { + + private void OnCheckSessionHostFeatureInstallationOperationCompleted(object arg) { + if ((this.CheckSessionHostFeatureInstallationCompleted != null)) { System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); this.CheckSessionHostFeatureInstallationCompleted(this, new CheckSessionHostFeatureInstallationCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); } } - + /// [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")] - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/CheckServerAvailability", 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 bool CheckServerAvailability(string hostName) - { + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/CheckServerAvailability", 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 bool CheckServerAvailability(string hostName) { object[] results = this.Invoke("CheckServerAvailability", new object[] { - hostName}); + hostName}); return ((bool)(results[0])); } - + /// - public System.IAsyncResult BeginCheckServerAvailability(string hostName, System.AsyncCallback callback, object asyncState) - { + public System.IAsyncResult BeginCheckServerAvailability(string hostName, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("CheckServerAvailability", new object[] { - hostName}, callback, asyncState); + hostName}, callback, asyncState); } - + /// - public bool EndCheckServerAvailability(System.IAsyncResult asyncResult) - { + public bool EndCheckServerAvailability(System.IAsyncResult asyncResult) { object[] results = this.EndInvoke(asyncResult); return ((bool)(results[0])); } - + /// - public void CheckServerAvailabilityAsync(string hostName) - { + public void CheckServerAvailabilityAsync(string hostName) { this.CheckServerAvailabilityAsync(hostName, null); } - + /// - public void CheckServerAvailabilityAsync(string hostName, object userState) - { - if ((this.CheckServerAvailabilityOperationCompleted == null)) - { + public void CheckServerAvailabilityAsync(string hostName, object userState) { + if ((this.CheckServerAvailabilityOperationCompleted == null)) { this.CheckServerAvailabilityOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCheckServerAvailabilityOperationCompleted); } this.InvokeAsync("CheckServerAvailability", new object[] { - hostName}, this.CheckServerAvailabilityOperationCompleted, userState); + hostName}, this.CheckServerAvailabilityOperationCompleted, userState); } - - private void OnCheckServerAvailabilityOperationCompleted(object arg) - { - if ((this.CheckServerAvailabilityCompleted != null)) - { + + private void OnCheckServerAvailabilityOperationCompleted(object arg) { + if ((this.CheckServerAvailabilityCompleted != null)) { System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); this.CheckServerAvailabilityCompleted(this, new CheckServerAvailabilityCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); } } - + /// - public new void CancelAsync(object userState) - { + public new void CancelAsync(object userState) { base.CancelAsync(userState); } } - + /// [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void CreateCollectionCompletedEventHandler(object sender, CreateCollectionCompletedEventArgs e); - + /// [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] - public partial class CreateCollectionCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs - { - + public partial class CreateCollectionCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + private object[] results; - - internal CreateCollectionCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : - base(exception, cancelled, userState) - { + + internal CreateCollectionCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { this.results = results; } - + /// - public bool Result - { - get - { + public bool Result { + get { this.RaiseExceptionIfNecessary(); return ((bool)(this.results[0])); } } } - + /// [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void GetCollectionCompletedEventHandler(object sender, GetCollectionCompletedEventArgs e); - + /// [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] - public partial class GetCollectionCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs - { - + public partial class GetCollectionCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + private object[] results; - - internal GetCollectionCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : - base(exception, cancelled, userState) - { + + internal GetCollectionCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { this.results = results; } - + /// - public RdsCollection Result - { - get - { + public RdsCollection Result { + get { this.RaiseExceptionIfNecessary(); return ((RdsCollection)(this.results[0])); } } } - + /// [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void RemoveCollectionCompletedEventHandler(object sender, RemoveCollectionCompletedEventArgs e); - + /// [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] - public partial class RemoveCollectionCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs - { - + public partial class RemoveCollectionCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + private object[] results; - - internal RemoveCollectionCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : - base(exception, cancelled, userState) - { + + internal RemoveCollectionCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { this.results = results; } - + /// - public bool Result - { - get - { + public bool Result { + get { this.RaiseExceptionIfNecessary(); return ((bool)(this.results[0])); } } } - + /// [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void SetUsersInCollectionCompletedEventHandler(object sender, SetUsersInCollectionCompletedEventArgs e); - + /// [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] - public partial class SetUsersInCollectionCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs - { - + public partial class SetUsersInCollectionCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + private object[] results; - - internal SetUsersInCollectionCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : - base(exception, cancelled, userState) - { + + internal SetUsersInCollectionCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { this.results = results; } - + /// - public bool Result - { - get - { + public bool Result { + get { this.RaiseExceptionIfNecessary(); return ((bool)(this.results[0])); } } } - + /// [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void AddSessionHostServerToCollectionCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e); - + /// [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void AddSessionHostServersToCollectionCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e); - + /// [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void RemoveSessionHostServerFromCollectionCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e); - + /// [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void RemoveSessionHostServersFromCollectionCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e); - + /// [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void GetAvailableRemoteApplicationsCompletedEventHandler(object sender, GetAvailableRemoteApplicationsCompletedEventArgs e); - + /// [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] - public partial class GetAvailableRemoteApplicationsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs - { - + public partial class GetAvailableRemoteApplicationsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + private object[] results; - - internal GetAvailableRemoteApplicationsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : - base(exception, cancelled, userState) - { + + internal GetAvailableRemoteApplicationsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { this.results = results; } - + /// - public StartMenuApp[] Result - { - get - { + public StartMenuApp[] Result { + get { this.RaiseExceptionIfNecessary(); return ((StartMenuApp[])(this.results[0])); } } } - + /// [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void GetCollectionRemoteApplicationsCompletedEventHandler(object sender, GetCollectionRemoteApplicationsCompletedEventArgs e); - + /// [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] - public partial class GetCollectionRemoteApplicationsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs - { - + public partial class GetCollectionRemoteApplicationsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + private object[] results; - - internal GetCollectionRemoteApplicationsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : - base(exception, cancelled, userState) - { + + internal GetCollectionRemoteApplicationsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { this.results = results; } - + /// - public RemoteApplication[] Result - { - get - { + public RemoteApplication[] Result { + get { this.RaiseExceptionIfNecessary(); return ((RemoteApplication[])(this.results[0])); } } } - + /// [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void AddRemoteApplicationCompletedEventHandler(object sender, AddRemoteApplicationCompletedEventArgs e); - + /// [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] - public partial class AddRemoteApplicationCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs - { - + public partial class AddRemoteApplicationCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + private object[] results; - - internal AddRemoteApplicationCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : - base(exception, cancelled, userState) - { + + internal AddRemoteApplicationCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { this.results = results; } - + /// - public bool Result - { - get - { + public bool Result { + get { this.RaiseExceptionIfNecessary(); return ((bool)(this.results[0])); } } } - + /// [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void AddRemoteApplicationsCompletedEventHandler(object sender, AddRemoteApplicationsCompletedEventArgs e); - + /// [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] - public partial class AddRemoteApplicationsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs - { - + public partial class AddRemoteApplicationsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + private object[] results; - - internal AddRemoteApplicationsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : - base(exception, cancelled, userState) - { + + internal AddRemoteApplicationsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { this.results = results; } - + /// - public bool Result - { - get - { + public bool Result { + get { this.RaiseExceptionIfNecessary(); return ((bool)(this.results[0])); } } } - + /// [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void RemoveRemoteApplicationCompletedEventHandler(object sender, RemoveRemoteApplicationCompletedEventArgs e); - + /// [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] - public partial class RemoveRemoteApplicationCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs - { - + public partial class RemoveRemoteApplicationCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + private object[] results; - - internal RemoveRemoteApplicationCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : - base(exception, cancelled, userState) - { + + internal RemoveRemoteApplicationCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { this.results = results; } - + /// - public bool Result - { - get - { + public bool Result { + get { this.RaiseExceptionIfNecessary(); return ((bool)(this.results[0])); } } } - + /// [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void AddSessionHostFeatureToServerCompletedEventHandler(object sender, AddSessionHostFeatureToServerCompletedEventArgs e); - + /// [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] - public partial class AddSessionHostFeatureToServerCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs - { - + public partial class AddSessionHostFeatureToServerCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + private object[] results; - - internal AddSessionHostFeatureToServerCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : - base(exception, cancelled, userState) - { + + internal AddSessionHostFeatureToServerCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { this.results = results; } - + /// - public bool Result - { - get - { + public bool Result { + get { this.RaiseExceptionIfNecessary(); return ((bool)(this.results[0])); } } } - + /// [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void CheckSessionHostFeatureInstallationCompletedEventHandler(object sender, CheckSessionHostFeatureInstallationCompletedEventArgs e); - + /// [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] - public partial class CheckSessionHostFeatureInstallationCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs - { - + public partial class CheckSessionHostFeatureInstallationCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + private object[] results; - - internal CheckSessionHostFeatureInstallationCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : - base(exception, cancelled, userState) - { + + internal CheckSessionHostFeatureInstallationCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { this.results = results; } - + /// - public bool Result - { - get - { + public bool Result { + get { this.RaiseExceptionIfNecessary(); return ((bool)(this.results[0])); } } } - + /// [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void CheckServerAvailabilityCompletedEventHandler(object sender, CheckServerAvailabilityCompletedEventArgs e); - + /// [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] - public partial class CheckServerAvailabilityCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs - { - + public partial class CheckServerAvailabilityCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + private object[] results; - - internal CheckServerAvailabilityCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : - base(exception, cancelled, userState) - { + + internal CheckServerAvailabilityCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { this.results = results; } - + /// - public bool Result - { - get - { + public bool Result { + get { this.RaiseExceptionIfNecessary(); return ((bool)(this.results[0])); } } } - } diff --git a/WebsitePanel/Sources/WebsitePanel.Server/RemoteDesktopServices.asmx.cs b/WebsitePanel/Sources/WebsitePanel.Server/RemoteDesktopServices.asmx.cs index 96836db9..0bb0fb26 100644 --- a/WebsitePanel/Sources/WebsitePanel.Server/RemoteDesktopServices.asmx.cs +++ b/WebsitePanel/Sources/WebsitePanel.Server/RemoteDesktopServices.asmx.cs @@ -99,7 +99,7 @@ namespace WebsitePanel.Server try { Log.WriteStart("'{0}' RemoveCollection", ProviderSettings.ProviderName); - var result = RDSProvider.RemoveCollection(organizationId,collectionName); + var result = RDSProvider.RemoveCollection(organizationId, collectionName); Log.WriteEnd("'{0}' RemoveCollection", ProviderSettings.ProviderName); return result; } diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_GlobalResources/WebsitePanel_SharedResources.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_GlobalResources/WebsitePanel_SharedResources.ascx.resx index f7a9f87f..e55192d1 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_GlobalResources/WebsitePanel_SharedResources.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_GlobalResources/WebsitePanel_SharedResources.ascx.resx @@ -5593,4 +5593,16 @@ Error creating rds collection. You need to add at least 1 rds server to collection + + Resource Mailboxes per Organization + + + Shared Mailboxes per Organization + + + (resource mailbox) + + + (shared mailbox) + \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Themes/Default/Styles/Skin.css b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Themes/Default/Styles/Skin.css index 68a8e7e1..36f2ac89 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Themes/Default/Styles/Skin.css +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Themes/Default/Styles/Skin.css @@ -237,6 +237,7 @@ A.Black {color: Black !important; text-decoration: none !important;} .RedStatus {background-image: url(error_bkg.gif); background-repeat: repeat-x;font-size: 8pt; font-weight: bold; color: White; background-color: #ff3300; text-align: center; padding: 6px;} .MessageBox SPAN.description {font-weight: normal !important;} .MessageBox .TechnicalDetails {padding-top: 4px; font-weight: normal !important;} +.TechnicalDetailsTable {background-color: #FFFFFF; color: #222; } .MessageBoxSection {font-size: 8pt; font-weight: bold;} .popupHint {border: 2px solid #C4D6BB;padding: 3px; background-color: #F1F1FF;} .popupComments {border: 2px solid #C4D6BB;font-size: 9px; padding: 3px; background-color: #F1F1FF;} @@ -291,4 +292,5 @@ UL.ActionButtons LI {margin-bottom: 12px;} .enabled {width:20px; height:20px; background: transparent url(../Icons/ok.png) left center no-repeat; border:medium none;} p.warningText {font-size:14px; color:Red; text-align:center;} .Hidden {display: none;} -.LinkText {color:#428bca;} \ No newline at end of file +.LinkText {color:#428bca;} +.WrapText { white-space: normal;} \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/DomainsSelectDomainControl.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/DomainsSelectDomainControl.ascx index e37eb045..27d78949 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/DomainsSelectDomainControl.ascx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/DomainsSelectDomainControl.ascx @@ -1,4 +1,4 @@ <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="DomainsSelectDomainControl.ascx.cs" Inherits="WebsitePanel.Portal.DomainsSelectDomainControl" %> - + diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/DomainsSelectDomainControl.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/DomainsSelectDomainControl.ascx.designer.cs index 08309915..40c4eebf 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/DomainsSelectDomainControl.ascx.designer.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/DomainsSelectDomainControl.ascx.designer.cs @@ -1,10 +1,9 @@ //------------------------------------------------------------------------------ // // This code was generated by a tool. -// Runtime Version:2.0.50727.3074 // // Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. +// the code is regenerated. // //------------------------------------------------------------------------------ diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeCreateMailbox.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeCreateMailbox.ascx.resx index a00e1a83..bf6cdd21 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeCreateMailbox.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeCreateMailbox.ascx.resx @@ -186,4 +186,10 @@ * + + Resource Mailbox + + + Shared Mailbox + \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeCreateMailbox.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeCreateMailbox.ascx.cs index b91a1f73..68da7689 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeCreateMailbox.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeCreateMailbox.ascx.cs @@ -101,6 +101,20 @@ namespace WebsitePanel.Portal.ExchangeServer } } + if (cntx.Quotas.ContainsKey(Quotas.EXCHANGE2013_SHAREDMAILBOXES)) + { + if (cntx.Quotas[Quotas.EXCHANGE2013_SHAREDMAILBOXES].QuotaAllocatedValue != 0) + rbMailboxType.Items.Add(new System.Web.UI.WebControls.ListItem(GetLocalizedString("SharedMailbox.Text"), "10")); + + } + + if (cntx.Quotas.ContainsKey(Quotas.EXCHANGE2013_RESOURCEMAILBOXES)) + { + if (cntx.Quotas[Quotas.EXCHANGE2013_RESOURCEMAILBOXES].QuotaAllocatedValue != 0) + rbMailboxType.Items.Add(new System.Web.UI.WebControls.ListItem(GetLocalizedString("ResourceMailbox.Text"), "11")); + + } + rowRetentionPolicy.Visible = Utils.CheckQouta(Quotas.EXCHANGE2013_ALLOWRETENTIONPOLICY, cntx); } diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxGeneralSettings.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxGeneralSettings.ascx.cs index d79d614f..39541c59 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxGeneralSettings.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxGeneralSettings.ascx.cs @@ -183,6 +183,12 @@ namespace WebsitePanel.Portal.ExchangeServer } imgVipUser.Visible = account.IsVIP && Cntx.Groups.ContainsKey(ResourceGroups.ServiceLevels); + if (account.AccountType == ExchangeAccountType.SharedMailbox) + litDisplayName.Text += GetSharedLocalizedString("SharedMailbox.Text"); + + if (account.AccountType == ExchangeAccountType.ResourceMailbox) + litDisplayName.Text += GetSharedLocalizedString("ResourceMailbox.Text"); + } catch (Exception ex) { diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxPermissions.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxPermissions.ascx.cs index 171f26cd..ae3449bf 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxPermissions.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxPermissions.ascx.cs @@ -67,6 +67,16 @@ namespace WebsitePanel.Portal.ExchangeServer litDisplayName.Text = mailbox.DisplayName; sendAsPermission.SetAccounts(mailbox.SendAsAccounts); fullAccessPermission.SetAccounts(mailbox.FullAccessAccounts); + + // get account meta + ExchangeAccount account = ES.Services.ExchangeServer.GetAccount(PanelRequest.ItemID, PanelRequest.AccountID); + + if (account.AccountType == ExchangeAccountType.SharedMailbox) + litDisplayName.Text += GetSharedLocalizedString("SharedMailbox.Text"); + + if (account.AccountType == ExchangeAccountType.ResourceMailbox) + litDisplayName.Text += GetSharedLocalizedString("ResourceMailbox.Text"); + } catch (Exception ex) { diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxes.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxes.ascx index 40852b11..53fc882f 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxes.ascx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxes.ascx @@ -25,6 +25,9 @@
+ + + 10 @@ -105,7 +108,7 @@ OnSelected="odsAccountsPaged_Selected"> - + diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxes.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxes.ascx.cs index 1874f821..80682fe2 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxes.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxes.ascx.cs @@ -60,6 +60,10 @@ namespace WebsitePanel.Portal.ExchangeServer if (!IsPostBack) { + chkMailboxes.Checked = true; + chkResourceMailboxes.Checked = true; + chkSharedMailboxes.Checked = true; + BindStats(); } @@ -246,5 +250,25 @@ namespace WebsitePanel.Portal.ExchangeServer return serviceLevel; } + + protected void chkMailboxes_CheckedChanged(object sender, EventArgs e) + { + List accountTypes = new List(); + + if ((!chkMailboxes.Checked)&&(!chkSharedMailboxes.Checked)&&(!chkResourceMailboxes.Checked)) + chkMailboxes.Checked = true; + + if (chkMailboxes.Checked) + accountTypes.AddRange(new string[] {"1","5","6"}); + + if (chkSharedMailboxes.Checked) + accountTypes.Add("10"); + + if (chkResourceMailboxes.Checked) + accountTypes.Add("11"); + + odsAccountsPaged.SelectParameters["accountTypes"].DefaultValue = string.Join(",", accountTypes); + } + } } \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxes.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxes.ascx.designer.cs index 6e9b50b4..1bde4051 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxes.ascx.designer.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxes.ascx.designer.cs @@ -66,6 +66,33 @@ namespace WebsitePanel.Portal.ExchangeServer { /// protected global::System.Web.UI.WebControls.Panel SearchPanel; + /// + /// chkMailboxes control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.CheckBox chkMailboxes; + + /// + /// chkResourceMailboxes control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.CheckBox chkResourceMailboxes; + + /// + /// chkSharedMailboxes control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.CheckBox chkSharedMailboxes; + /// /// ddlPageSize control. /// diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationHome.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationHome.ascx index 9f9e8388..2817164c 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationHome.ascx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationHome.ascx @@ -89,6 +89,24 @@ + + + + + + + + + + + + + + + + + + diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationHome.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationHome.ascx.cs index 1bc84bc7..1de0159c 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationHome.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationHome.ascx.cs @@ -54,6 +54,14 @@ namespace WebsitePanel.Portal.ExchangeServer lnkMailboxes.NavigateUrl = EditUrl("ItemID", PanelRequest.ItemID.ToString(), "mailboxes", "SpaceID=" + PanelSecurity.PackageId.ToString()); + + lnkSharedMailboxes.NavigateUrl = EditUrl("ItemID", PanelRequest.ItemID.ToString(), "mailboxes", + "SpaceID=" + PanelSecurity.PackageId.ToString()); + + lnkResourceMailboxes.NavigateUrl = EditUrl("ItemID", PanelRequest.ItemID.ToString(), "mailboxes", + "SpaceID=" + PanelSecurity.PackageId.ToString()); + + lnkContacts.NavigateUrl = EditUrl("ItemID", PanelRequest.ItemID.ToString(), "contacts", "SpaceID=" + PanelSecurity.PackageId.ToString()); @@ -77,6 +85,13 @@ namespace WebsitePanel.Portal.ExchangeServer mailboxesStats.QuotaValue = exchangeOrgStats.AllocatedMailboxes; if (exchangeOrgStats.AllocatedMailboxes != -1) mailboxesStats.QuotaAvailable = exchangeTenantStats.AllocatedMailboxes - exchangeTenantStats.CreatedMailboxes; + mailboxesSharedStats.QuotaUsedValue = exchangeOrgStats.CreatedSharedMailboxes; + mailboxesSharedStats.QuotaValue = exchangeOrgStats.AllocatedSharedMailboxes; + if (exchangeOrgStats.AllocatedSharedMailboxes != -1) mailboxesSharedStats.QuotaAvailable = exchangeTenantStats.AllocatedSharedMailboxes - exchangeTenantStats.CreatedSharedMailboxes; + + mailboxesResourceStats.QuotaUsedValue = exchangeOrgStats.CreatedResourceMailboxes; + mailboxesResourceStats.QuotaValue = exchangeOrgStats.AllocatedResourceMailboxes; + if (exchangeOrgStats.AllocatedResourceMailboxes != -1) mailboxesResourceStats.QuotaAvailable = exchangeTenantStats.AllocatedResourceMailboxes - exchangeTenantStats.CreatedResourceMailboxes; if (exchangeTenantStats.AllocatedContacts == 0) this.rowContacts.Style.Add("display", "none"); else diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationHome.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationHome.ascx.designer.cs index 062c57df..2a160e51 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationHome.ascx.designer.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationHome.ascx.designer.cs @@ -201,6 +201,42 @@ namespace WebsitePanel.Portal.ExchangeServer { /// protected global::WebsitePanel.Portal.QuotaViewer mailboxesStats; + /// + /// lnkSharedMailboxes control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.HyperLink lnkSharedMailboxes; + + /// + /// mailboxesSharedStats control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::WebsitePanel.Portal.QuotaViewer mailboxesSharedStats; + + /// + /// lnkResourceMailboxes control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.HyperLink lnkResourceMailboxes; + + /// + /// mailboxesResourceStats control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::WebsitePanel.Portal.QuotaViewer mailboxesResourceStats; + /// /// rowContacts control. /// diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/App_LocalResources/IceWarp_Settings.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/App_LocalResources/IceWarp_Settings.ascx.resx index 9b5d5338..465f32a9 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/App_LocalResources/IceWarp_Settings.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/App_LocalResources/IceWarp_Settings.ascx.resx @@ -123,16 +123,31 @@ + + Global max message size: + + + Public IP Address: + Public IP Address: + + 0 means unlimited + + + Can be overridden on domain level if you check 'Override global limits' + + + Must be a value between 0 and 99, 0 means disabled + \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/App_LocalResources/RDS_Settings.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/App_LocalResources/RDS_Settings.ascx.resx new file mode 100644 index 00000000..f3221c01 --- /dev/null +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/App_LocalResources/RDS_Settings.ascx.resx @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Add + + + No gateway serves have been added yet. + + + Server Name + + \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/IceWarp_EditAccount.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/IceWarp_EditAccount.ascx index aeae00bc..fd2050e6 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/IceWarp_EditAccount.ascx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/IceWarp_EditAccount.ascx @@ -76,7 +76,7 @@ - + diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/IceWarp_EditAccount.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/IceWarp_EditAccount.ascx.cs index f047b103..a7dfa4ab 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/IceWarp_EditAccount.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/IceWarp_EditAccount.ascx.cs @@ -37,8 +37,11 @@ namespace WebsitePanel.Portal.ProviderControls { // Hide some form items when creating a new account passwordRow.Visible = (PanelRequest.ItemID > 0); + AutoresponderPanel.Visible = (PanelRequest.ItemID > 0); secAutoresponder.Visible = (PanelRequest.ItemID > 0); + ForwardingPanel.Visible = (PanelRequest.ItemID > 0); secForwarding.Visible = (PanelRequest.ItemID > 0); + OlderMailsPanel.Visible = (PanelRequest.ItemID > 0); secOlderMails.Visible = (PanelRequest.ItemID > 0); } @@ -109,10 +112,10 @@ namespace WebsitePanel.Portal.ProviderControls item.IsDomainAdmin = cbDomainAdmin.Checked; item.DeleteOlder = cbDeleteOlder.Checked; - item.DeleteOlderDays = Convert.ToInt32(txtDeleteOlderDays.Text); + item.DeleteOlderDays = string.IsNullOrWhiteSpace(txtDeleteOlderDays.Text) ? 0 : Convert.ToInt32(txtDeleteOlderDays.Text); item.ForwardOlder = cbForwardOlder.Checked; - item.ForwardOlderDays = Convert.ToInt32(txtForwardOlderDays.Text); + item.ForwardOlderDays = string.IsNullOrWhiteSpace(txtForwardOlderDays.Text) ? 0 : Convert.ToInt32(txtForwardOlderDays.Text); item.ForwardOlderTo = txtForwardOlderTo.Text; } diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/IceWarp_Settings.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/IceWarp_Settings.ascx index d603cc96..0645454c 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/IceWarp_Settings.ascx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/IceWarp_Settings.ascx @@ -1,6 +1,6 @@ <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="IceWarp_Settings.ascx.cs" Inherits="WebsitePanel.Portal.ProviderControls.IceWarp_Settings" %> <%@ Register Src="../UserControls/SelectIPAddress.ascx" TagName="SelectIPAddress" TagPrefix="uc1" %> - +
+ + + + @@ -53,9 +58,9 @@
@@ -14,9 +14,14 @@ - - + + +
@@ -43,9 +48,9 @@ - + - +
- - - + + +
\ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/IceWarp_Settings.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/IceWarp_Settings.ascx.designer.cs index 7348a746..04a643f7 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/IceWarp_Settings.ascx.designer.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/IceWarp_Settings.ascx.designer.cs @@ -49,13 +49,22 @@ namespace WebsitePanel.Portal.ProviderControls { protected global::System.Web.UI.WebControls.TextBox txtMaxMessageSizeInMB; /// - /// Label1 control. + /// txtMaxMessageSizeInMBRequired control. /// /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. /// - protected global::System.Web.UI.WebControls.Label Label1; + protected global::System.Web.UI.WebControls.RequiredFieldValidator txtMaxMessageSizeInMBRequired; + + /// + /// MaxMessageSizeInMB control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Label MaxMessageSizeInMB; /// /// cbUseDomainDiskQuota control. @@ -130,12 +139,12 @@ namespace WebsitePanel.Portal.ProviderControls { protected global::System.Web.UI.WebControls.TextBox txtWarnMailboxUsage; /// - /// RequiredFieldValidator1 control. + /// txtWarnMailboxUsageRequired control. /// /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. /// - protected global::System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator1; + protected global::System.Web.UI.WebControls.RequiredFieldValidator txtWarnMailboxUsageRequired; } } diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/MSFTP70_Settings.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/MSFTP70_Settings.ascx.cs index 3c4767a5..94206b77 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/MSFTP70_Settings.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/MSFTP70_Settings.ascx.cs @@ -121,7 +121,14 @@ namespace WebsitePanel.Portal.ProviderControls ddlSite.Items.Add(item); } - ddlSite_SelectedIndexChanged(this, null); + if (ddlSite.Items.Count == 0) + { + ddlSite.Items.Add(new ListItem("Default FTP Site (not yet created)", "Default FTP Site")); + } + else + { + ddlSite_SelectedIndexChanged(this, null); + } } protected void ddlSite_SelectedIndexChanged(object sender, EventArgs e) diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/RDS_Settings.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/RDS_Settings.ascx index eb1de52b..879afc47 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/RDS_Settings.ascx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/RDS_Settings.ascx @@ -9,15 +9,6 @@ - - - - - - - - - @@ -52,4 +43,33 @@ + + + + + + +
+ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/RDS_Settings.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/RDS_Settings.ascx.cs index 0eaea7f4..2a5aa27b 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/RDS_Settings.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/RDS_Settings.ascx.cs @@ -27,6 +27,8 @@ // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. using System; +using System.Collections.Generic; +using System.Web.UI.WebControls; using WebsitePanel.EnterpriseServer; using WebsitePanel.Providers.Common; @@ -39,10 +41,26 @@ namespace WebsitePanel.Portal.ProviderControls } + public string GWServers + { + get + { + return ViewState["GWServers"] != null ? ViewState["GWServers"].ToString() : string.Empty; + } + set + { + ViewState["GWServers"] = value; + } + } + public void BindSettings(System.Collections.Specialized.StringDictionary settings) { txtConnectionBroker.Text = settings["ConnectionBroker"]; - txtGateway.Text = settings["GWServrsList"]; + + GWServers = settings["GWServrsList"]; + + UpdateLyncServersGrid(); + txtRootOU.Text = settings["RootOU"]; txtPrimaryDomainController.Text = settings["PrimaryDomainController"]; @@ -63,11 +81,12 @@ namespace WebsitePanel.Portal.ProviderControls public void SaveSettings(System.Collections.Specialized.StringDictionary settings) { settings["ConnectionBroker"] = txtConnectionBroker.Text; - settings["GWServrsList"] = txtGateway.Text; settings["RootOU"] = txtRootOU.Text; settings["PrimaryDomainController"] = txtPrimaryDomainController.Text; settings["UseCentralNPS"] = chkUseCentralNPS.Checked.ToString(); settings["CentralNPS"] = chkUseCentralNPS.Checked ? txtCentralNPS.Text : string.Empty; + + settings["GWServrsList"] = GWServers; } protected void chkUseCentralNPS_CheckedChanged(object sender, EventArgs e) @@ -75,6 +94,61 @@ namespace WebsitePanel.Portal.ProviderControls txtCentralNPS.Enabled = chkUseCentralNPS.Checked; txtCentralNPS.Text = chkUseCentralNPS.Checked ? txtCentralNPS.Text : string.Empty; } - + + protected void btnAddGWServer_Click(object sender, EventArgs e) + { + if (!string.IsNullOrEmpty(GWServers)) + GWServers += ";"; + + GWServers += txtAddGWServer.Text; + + txtAddGWServer.Text = string.Empty; + + UpdateLyncServersGrid(); + } + + public List GetServices(string data) + { + if (string.IsNullOrEmpty(data)) + return null; + List list = new List(); + string[] serversNames = data.Split(';'); + foreach (string current in serversNames) + { + list.Add(new GWServer { ServerName = current }); + } + + return list; + } + + private void UpdateLyncServersGrid() + { + gvGWServers.DataSource = GetServices(GWServers); + gvGWServers.DataBind(); + } + + protected void gvGWServers_RowCommand(object sender, GridViewCommandEventArgs e) + { + if (e.CommandName == "RemoveServer") + { + string str = string.Empty; + List servers = GetServices(GWServers); + foreach (GWServer current in servers) + { + if (current.ServerName == e.CommandArgument.ToString()) + continue; + + str += current.ServerName + ";"; + } + + GWServers = str.TrimEnd(';'); + UpdateLyncServersGrid(); + } + } + } + + public class GWServer + { + public string ServerName { get; set; } } } \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/RDS_Settings.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/RDS_Settings.ascx.designer.cs index e3f1f911..e1c47f7a 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/RDS_Settings.ascx.designer.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/RDS_Settings.ascx.designer.cs @@ -39,33 +39,6 @@ namespace WebsitePanel.Portal.ProviderControls { /// protected global::System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator2; - /// - /// lblGateway control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::System.Web.UI.WebControls.Label lblGateway; - - /// - /// txtGateway control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::System.Web.UI.WebControls.TextBox txtGateway; - - /// - /// RequiredFieldValidator3 control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator3; - /// /// lblRootOU control. /// @@ -155,5 +128,41 @@ namespace WebsitePanel.Portal.ProviderControls { /// To modify move field declaration from designer file to code-behind file. /// protected global::System.Web.UI.WebControls.TextBox txtCentralNPS; + + /// + /// locGWServers control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Localize locGWServers; + + /// + /// txtAddGWServer control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.TextBox txtAddGWServer; + + /// + /// btnAddGWServer control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Button btnAddGWServer; + + /// + /// gvGWServers control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.GridView gvGWServers; } } diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/AssignedRDSServers.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/AssignedRDSServers.ascx index eab349e5..c1956968 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/AssignedRDSServers.ascx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/AssignedRDSServers.ascx @@ -55,9 +55,10 @@ - + diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/AssignedRDSServers.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/AssignedRDSServers.ascx.cs index af6144d6..906f8182 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/AssignedRDSServers.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/AssignedRDSServers.ascx.cs @@ -32,6 +32,7 @@ using WebsitePanel.EnterpriseServer; using WebsitePanel.Providers.Common; using WebsitePanel.Providers.HostedSolution; using WebsitePanel.Providers.OS; +using WebsitePanel.Providers.RemoteDesktopServices; using WebsitePanel.WebPortal; namespace WebsitePanel.Portal.RDS @@ -67,6 +68,13 @@ namespace WebsitePanel.Portal.RDS try { + RdsServer rdsServer = ES.Services.RDS.GetRdsServer(rdsServerId); + if (rdsServer.RdsCollectionId != null) + { + messageBox.ShowErrorMessage("RDS_UNASSIGN_SERVER_FROM_ORG_SERVER_IS_IN_COLLECTION"); + return; + } + ResultObject result = ES.Services.RDS.RemoveRdsServerFromOrganization(rdsServerId); if (!result.IsSuccess) { diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/RDSCreateCollection.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/RDSCreateCollection.ascx index 7047502f..a90b852a 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/RDSCreateCollection.ascx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/RDSCreateCollection.ascx @@ -24,7 +24,7 @@ - + @@ -37,7 +37,7 @@
- +
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/UserControls/App_LocalResources/RDSCollectionApps.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/UserControls/App_LocalResources/RDSCollectionApps.ascx.resx index aebc0900..0adb8a73 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/UserControls/App_LocalResources/RDSCollectionApps.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/UserControls/App_LocalResources/RDSCollectionApps.ascx.resx @@ -117,12 +117,21 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + ShowProgressDialog('Getting Remote Apps ...'); + Add... + + CloseProgressDialog(); + Add Apps + + CloseProgressDialog(); + Cancel diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/UserControls/App_LocalResources/RDSCollectionServers.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/UserControls/App_LocalResources/RDSCollectionServers.ascx.resx index 814527a9..58c6ab6f 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/UserControls/App_LocalResources/RDSCollectionServers.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/UserControls/App_LocalResources/RDSCollectionServers.ascx.resx @@ -117,12 +117,21 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + ShowProgressDialog('Getting RDS Servers ...'); + Add... + + CloseProgressDialog(); + Add Servers + + CloseProgressDialog(); + Cancel diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/UserControls/RDSCollectionServers.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/UserControls/RDSCollectionServers.ascx index 272374a6..84ee87c1 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/UserControls/RDSCollectionServers.ascx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/UserControls/RDSCollectionServers.ascx @@ -94,7 +94,7 @@