diff --git a/WebsitePanel.Installer/Sources/Setup.SchedulerService/Product.wxs b/WebsitePanel.Installer/Sources/Setup.SchedulerService/Product.wxs index f66dd59c..1fdff4cb 100644 --- a/WebsitePanel.Installer/Sources/Setup.SchedulerService/Product.wxs +++ b/WebsitePanel.Installer/Sources/Setup.SchedulerService/Product.wxs @@ -122,6 +122,8 @@ + + diff --git a/WebsitePanel/Database/update_db.sql b/WebsitePanel/Database/update_db.sql index 644bf947..88f9e430 100644 --- a/WebsitePanel/Database/update_db.sql +++ b/WebsitePanel/Database/update_db.sql @@ -5679,10 +5679,6 @@ GO - - - - SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON @@ -5992,6 +5988,764 @@ 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) AND ItemID = @ItemID) AS CreatedMailboxes, + (SELECT COUNT(*) FROM ExchangeAccounts WHERE (AccountType = 10) AND ItemID = @ItemID) AS CreatedSharedMailboxes, + (SELECT COUNT(*) FROM ExchangeAccounts WHERE (AccountType = 5 OR AccountType = 6) 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) AND ItemID = @ItemID) AS CreatedMailboxes, + (SELECT COUNT(*) FROM ExchangeAccounts WHERE (AccountType = 10) AND ItemID = @ItemID) AS CreatedSharedMailboxes, + (SELECT COUNT(*) FROM ExchangeAccounts WHERE (AccountType = 5 OR AccountType = 6) 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 + +-- Domain lookup tasks + +IF NOT EXISTS (SELECT * FROM [dbo].[ScheduleTasks] WHERE [TaskID] = N'SCHEDULE_TASK_DOMAIN_LOOKUP') +BEGIN +INSERT [dbo].[ScheduleTasks] ([TaskID], [TaskType], [RoleID]) VALUES (N'SCHEDULE_TASK_DOMAIN_LOOKUP', N'WebsitePanel.EnterpriseServer.DomainLookupViewTask, WebsitePanel.EnterpriseServer.Code', 1) +END +GO + +IF NOT EXISTS (SELECT * FROM [dbo].[ScheduleTaskViewConfiguration] WHERE [TaskID] = N'SCHEDULE_TASK_DOMAIN_LOOKUP') +BEGIN +INSERT [dbo].[ScheduleTaskViewConfiguration] ([TaskID], [ConfigurationID], [Environment], [Description]) VALUES (N'SCHEDULE_TASK_DOMAIN_LOOKUP', N'ASP_NET', N'ASP.NET', N'~/DesktopModules/WebsitePanel/ScheduleTaskControls/DomainLookupView.ascx') +END +GO + +IF NOT EXISTS (SELECT * FROM [dbo].[ScheduleTaskParameters] WHERE [TaskID] = N'SCHEDULE_TASK_DOMAIN_LOOKUP' AND [ParameterID]= N'DNS_SERVERS' ) +BEGIN +INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_DOMAIN_LOOKUP', N'DNS_SERVERS', N'String', NULL, 1) +END +GO + +IF NOT EXISTS (SELECT * FROM [dbo].[ScheduleTaskParameters] WHERE [TaskID] = N'SCHEDULE_TASK_DOMAIN_LOOKUP' AND [ParameterID]= N'MAIL_TO' ) +BEGIN +INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_DOMAIN_LOOKUP', N'MAIL_TO', N'String', NULL, 2) +END +GO + +-- Domain Expiration Task + + +IF NOT EXISTS (SELECT * FROM [dbo].[ScheduleTasks] WHERE [TaskID] = N'SCHEDULE_TASK_DOMAIN_EXPIRATION') +BEGIN +INSERT [dbo].[ScheduleTasks] ([TaskID], [TaskType], [RoleID]) VALUES (N'SCHEDULE_TASK_DOMAIN_EXPIRATION', N'WebsitePanel.EnterpriseServer.DomainExpirationTask, WebsitePanel.EnterpriseServer.Code', 3) +END +GO + +IF EXISTS (SELECT * FROM [dbo].[ScheduleTasks] WHERE [TaskID] = N'SCHEDULE_TASK_DOMAIN_EXPIRATION' AND [RoleID] = 1) +BEGIN +UPDATE [dbo].[ScheduleTasks] SET [RoleID] = 3 WHERE [TaskID] = N'SCHEDULE_TASK_DOMAIN_EXPIRATION' +END +GO + + +IF NOT EXISTS (SELECT * FROM [dbo].[ScheduleTaskViewConfiguration] WHERE [TaskID] = N'SCHEDULE_TASK_DOMAIN_EXPIRATION') +BEGIN +INSERT [dbo].[ScheduleTaskViewConfiguration] ([TaskID], [ConfigurationID], [Environment], [Description]) VALUES (N'SCHEDULE_TASK_DOMAIN_EXPIRATION', N'ASP_NET', N'ASP.NET', N'~/DesktopModules/WebsitePanel/ScheduleTaskControls/DomainExpirationView.ascx') +END +GO + +IF NOT EXISTS (SELECT * FROM [dbo].[ScheduleTaskParameters] WHERE [TaskID] = N'SCHEDULE_TASK_DOMAIN_EXPIRATION' AND [ParameterID]= N'DAYS_BEFORE' ) +BEGIN +INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_DOMAIN_EXPIRATION', N'DAYS_BEFORE', N'String', NULL, 1) +END +GO + +IF NOT EXISTS (SELECT * FROM [dbo].[ScheduleTaskParameters] WHERE [TaskID] = N'SCHEDULE_TASK_DOMAIN_EXPIRATION' AND [ParameterID]= N'MAIL_TO' ) +BEGIN +INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_DOMAIN_EXPIRATION', N'MAIL_TO', N'String', NULL, 2) +END +GO + +IF NOT EXISTS (SELECT * FROM [dbo].[ScheduleTaskParameters] WHERE [TaskID] = N'SCHEDULE_TASK_DOMAIN_EXPIRATION' AND [ParameterID]= N'ENABLE_NOTIFICATION' ) +BEGIN +INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_DOMAIN_EXPIRATION', N'ENABLE_NOTIFICATION', N'Boolean', N'false', 3) +END +GO + +IF NOT EXISTS (SELECT * FROM [dbo].[ScheduleTaskParameters] WHERE [TaskID] = N'SCHEDULE_TASK_DOMAIN_EXPIRATION' AND [ParameterID]= N'INCLUDE_NONEXISTEN_DOMAINS' ) +BEGIN +INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_DOMAIN_EXPIRATION', N'INCLUDE_NONEXISTEN_DOMAINS', N'Boolean', N'false', 4) +END +GO + + +-- Domain lookup tables + +IF EXISTS (SELECT * FROM SYS.TABLES WHERE name = 'DomainDnsRecords') +DROP TABLE DomainDnsRecords +GO +CREATE TABLE DomainDnsRecords +( + ID INT IDENTITY(1,1) NOT NULL PRIMARY KEY, + DomainId INT NOT NULL, + RecordType INT NOT NULL, + DnsServer NVARCHAR(255), + Value NVARCHAR(255), + Date DATETIME +) +GO + +ALTER TABLE [dbo].[DomainDnsRecords] WITH CHECK ADD CONSTRAINT [FK_DomainDnsRecords_DomainId] FOREIGN KEY([DomainId]) +REFERENCES [dbo].[Domains] ([DomainID]) +ON DELETE CASCADE +GO + +IF NOT EXISTS(SELECT * FROM sys.columns + WHERE [name] = N'CreationDate' AND [object_id] = OBJECT_ID(N'Domains')) +BEGIN + ALTER TABLE [dbo].[Domains] ADD CreationDate DateTime null; +END +GO + +IF NOT EXISTS(SELECT * FROM sys.columns + WHERE [name] = N'ExpirationDate' AND [object_id] = OBJECT_ID(N'Domains')) +BEGIN + ALTER TABLE [dbo].[Domains] ADD ExpirationDate DateTime null; +END +GO + +IF NOT EXISTS(SELECT * FROM sys.columns + WHERE [name] = N'LastUpdateDate' AND [object_id] = OBJECT_ID(N'Domains')) +BEGIN + ALTER TABLE [dbo].[Domains] ADD LastUpdateDate DateTime null; +END +GO + +IF EXISTS (SELECT * FROM SYS.TABLES WHERE name = 'ScheduleTasksEmailTemplates') +DROP TABLE ScheduleTasksEmailTemplates +GO + +IF NOT EXISTS (SELECT * FROM [dbo].[UserSettings] WHERE [UserID] = 1 AND [SettingsName]= N'DomainExpirationLetter' AND [PropertyName]= N'CC' ) +BEGIN +INSERT [dbo].[UserSettings] ([UserID], [SettingsName], [PropertyName], [PropertyValue]) VALUES (1, N'DomainExpirationLetter', N'CC', N'support@HostingCompany.com') +END +GO +IF NOT EXISTS (SELECT * FROM [dbo].[UserSettings] WHERE [UserID] = 1 AND [SettingsName]= N'DomainExpirationLetter' AND [PropertyName]= N'From' ) +BEGIN +INSERT [dbo].[UserSettings] ([UserID], [SettingsName], [PropertyName], [PropertyValue]) VALUES (1, N'DomainExpirationLetter', N'From', N'support@HostingCompany.com') +END +GO +IF NOT EXISTS (SELECT * FROM [dbo].[UserSettings] WHERE [UserID] = 1 AND [SettingsName]= N'DomainExpirationLetter' AND [PropertyName]= N'HtmlBody' ) +BEGIN +INSERT [dbo].[UserSettings] ([UserID], [SettingsName], [PropertyName], [PropertyValue]) VALUES (1, N'DomainExpirationLetter', N'HtmlBody', N' + + Domain Expiration Information + + + +
+ + +
+ Domain Expiration Information +
+ + +

+Hello #user.FirstName#, +

+
+ +

+Please, find below details of your domain expiration information. +

+ + + + + + + + + + + + + + + + + + +
DomainCustomerExpiration Date
#Domain.DomainName##Domain.Customer##Domain.ExpirationDate#
+ + +

+ Please, find below details of your non-existen domains. +

+ + + + + + + + + + + + + + + + +
DomainCustomer
#Domain.DomainName##Domain.Customer#
+
+ + +

+If you have any questions regarding your hosting account, feel free to contact our support department at any time. +

+ +

+Best regards +

') +END +GO +IF NOT EXISTS (SELECT * FROM [dbo].[UserSettings] WHERE [UserID] = 1 AND [SettingsName]= N'DomainExpirationLetter' AND [PropertyName]= N'Priority' ) +BEGIN +INSERT [dbo].[UserSettings] ([UserID], [SettingsName], [PropertyName], [PropertyValue]) VALUES (1, N'DomainExpirationLetter', N'Priority', N'Normal') +END +GO +IF NOT EXISTS (SELECT * FROM [dbo].[UserSettings] WHERE [UserID] = 1 AND [SettingsName]= N'DomainExpirationLetter' AND [PropertyName]= N'Subject' ) +BEGIN +INSERT [dbo].[UserSettings] ([UserID], [SettingsName], [PropertyName], [PropertyValue]) VALUES (1, N'DomainExpirationLetter', N'Subject', N'Domain expiration notification') +END +GO +IF NOT EXISTS (SELECT * FROM [dbo].[UserSettings] WHERE [UserID] = 1 AND [SettingsName]= N'DomainExpirationLetter' AND [PropertyName]= N'TextBody' ) +BEGIN +INSERT [dbo].[UserSettings] ([UserID], [SettingsName], [PropertyName], [PropertyValue]) VALUES (1, N'DomainExpirationLetter', N'TextBody', N'================================= + Domain Expiration Information +================================= + +Hello #user.FirstName#, + + +Please, find below details of your domain expiration information. + + + + Domain: #Domain.DomainName# + Customer: #Domain.Customer# + Expiration Date: #Domain.ExpirationDate# + + + + +Please, find below details of your non-existen domains. + + + Domain: #Domain.DomainName# + Customer: #Domain.Customer# + + + + +If you have any questions regarding your hosting account, feel free to contact our support department at any time. + +Best regards') +END +GO + + + + +IF NOT EXISTS (SELECT * FROM [dbo].[UserSettings] WHERE [UserID] = 1 AND [SettingsName]= N'DomainLookupLetter' AND [PropertyName]= N'CC' ) +BEGIN +INSERT [dbo].[UserSettings] ([UserID], [SettingsName], [PropertyName], [PropertyValue]) VALUES (1, N'DomainLookupLetter', N'CC', N'support@HostingCompany.com') +END +GO +IF NOT EXISTS (SELECT * FROM [dbo].[UserSettings] WHERE [UserID] = 1 AND [SettingsName]= N'DomainLookupLetter' AND [PropertyName]= N'From' ) +BEGIN +INSERT [dbo].[UserSettings] ([UserID], [SettingsName], [PropertyName], [PropertyValue]) VALUES (1, N'DomainLookupLetter', N'From', N'support@HostingCompany.com') +END +GO +IF NOT EXISTS (SELECT * FROM [dbo].[UserSettings] WHERE [UserID] = 1 AND [SettingsName]= N'DomainLookupLetter' AND [PropertyName]= N'HtmlBody' ) +BEGIN +INSERT [dbo].[UserSettings] ([UserID], [SettingsName], [PropertyName], [PropertyValue]) VALUES (1, N'DomainLookupLetter', N'HtmlBody', N' + + MX and NS Changes Information + + + +
+ + +
+ MX and NS Changes Information +
+ + +

+Hello #user.FirstName#, +

+
+ +

+Please, find below details of MX and NS changes. +

+ + +

#Domain.DomainName#

+ + + + + + + + + + + + + + + + + + + + +
DNSTypeStatusValue
#DnsChange.DnsServer##DnsChange.Type##DnsChange.Status##DnsChange.Record.Value#
+ +
+ +

+If you have any questions regarding your hosting account, feel free to contact our support department at any time. +

+ +

+Best regards +

') +END +GO +IF NOT EXISTS (SELECT * FROM [dbo].[UserSettings] WHERE [UserID] = 1 AND [SettingsName]= N'DomainLookupLetter' AND [PropertyName]= N'Priority' ) +BEGIN +INSERT [dbo].[UserSettings] ([UserID], [SettingsName], [PropertyName], [PropertyValue]) VALUES (1, N'DomainLookupLetter', N'Priority', N'Normal') +END +GO +IF NOT EXISTS (SELECT * FROM [dbo].[UserSettings] WHERE [UserID] = 1 AND [SettingsName]= N'DomainLookupLetter' AND [PropertyName]= N'Subject' ) +BEGIN +INSERT [dbo].[UserSettings] ([UserID], [SettingsName], [PropertyName], [PropertyValue]) VALUES (1, N'DomainLookupLetter', N'Subject', N'MX and NS changes notification') +END +GO +IF NOT EXISTS (SELECT * FROM [dbo].[UserSettings] WHERE [UserID] = 1 AND [SettingsName]= N'DomainLookupLetter' AND [PropertyName]= N'TextBody' ) +BEGIN +INSERT [dbo].[UserSettings] ([UserID], [SettingsName], [PropertyName], [PropertyValue]) VALUES (1, N'DomainLookupLetter', N'TextBody', N'================================= + MX and NS Changes Information +================================= + +

+Hello #user.FirstName#, +

+
+ +Please, find below details of your domain expiration information. + + + + + + #Domain.DomainName# + + + DNS: #DnsChange.DnsServer# + Type: #DnsChange.Type# + Status: #DnsChange.Status# + Value: #DnsChange.Record.Value# + + + + + + +If you have any questions regarding your hosting account, feel free to contact our support department at any time. + +Best regards +') +END +GO + + +-- Procedures for Domain lookup service + +IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'GetAllPackages') +DROP PROCEDURE GetAllPackages +GO +CREATE PROCEDURE [dbo].[GetAllPackages] +AS +SELECT + [PackageID] + ,[ParentPackageID] + ,[UserID] + ,[PackageName] + ,[PackageComments] + ,[ServerID] + ,[StatusID] + ,[PlanID] + ,[PurchaseDate] + ,[OverrideQuotas] + ,[BandwidthUpdated] + FROM [dbo].[Packages] +GO + +IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'GetScheduleTaskEmailTemplate') +DROP PROCEDURE GetScheduleTaskEmailTemplate +GO +CREATE PROCEDURE [dbo].GetScheduleTaskEmailTemplate +( + @TaskID [nvarchar](100) +) +AS +SELECT + [TaskID], + [From] , + [Subject] , + [Template] + FROM [dbo].[ScheduleTasksEmailTemplates] where [TaskID] = @TaskID +GO + +IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'GetDomainDnsRecords') +DROP PROCEDURE GetDomainDnsRecords +GO +CREATE PROCEDURE [dbo].GetDomainDnsRecords +( + @DomainId INT, + @RecordType INT +) +AS +SELECT + ID, + DomainId, + DnsServer, + RecordType, + Value, + Date + FROM [dbo].[DomainDnsRecords] + WHERE [DomainId] = @DomainId AND [RecordType] = @RecordType +GO + + + +IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'AddDomainDnsRecord') +DROP PROCEDURE AddDomainDnsRecord +GO +CREATE PROCEDURE [dbo].[AddDomainDnsRecord] +( + @DomainId INT, + @RecordType INT, + @DnsServer NVARCHAR(255), + @Value NVARCHAR(255), + @Date DATETIME +) +AS + +INSERT INTO DomainDnsRecords +( + DomainId, + DnsServer, + RecordType, + Value, + Date +) +VALUES +( + @DomainId, + @DnsServer, + @RecordType, + @Value, + @Date +) +GO + + + +IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'DeleteDomainDnsRecord') +DROP PROCEDURE DeleteDomainDnsRecord +GO +CREATE PROCEDURE [dbo].[DeleteDomainDnsRecord] +( + @Id INT +) +AS +DELETE FROM DomainDnsRecords +WHERE Id = @Id +GO + +--Domain Expiration Stored Procedures + +IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'UpdateDomainCreationDate') +DROP PROCEDURE UpdateDomainCreationDate +GO +CREATE PROCEDURE [dbo].UpdateDomainCreationDate +( + @DomainId INT, + @Date DateTime +) +AS +UPDATE [dbo].[Domains] SET [CreationDate] = @Date WHERE [DomainID] = @DomainId +GO + + + +IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'UpdateDomainExpirationDate') +DROP PROCEDURE UpdateDomainExpirationDate +GO +CREATE PROCEDURE [dbo].UpdateDomainExpirationDate +( + @DomainId INT, + @Date DateTime +) +AS +UPDATE [dbo].[Domains] SET [ExpirationDate] = @Date WHERE [DomainID] = @DomainId +GO + +IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'UpdateDomainLastUpdateDate') +DROP PROCEDURE UpdateDomainLastUpdateDate +GO +CREATE PROCEDURE [dbo].UpdateDomainLastUpdateDate +( + @DomainId INT, + @Date DateTime +) +AS +UPDATE [dbo].[Domains] SET [LastUpdateDate] = @Date WHERE [DomainID] = @DomainId +GO + + +--Updating Domain procedures + +IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'GetDomains') +DROP PROCEDURE GetDomains +GO +CREATE PROCEDURE [dbo].[GetDomains] +( + @ActorID int, + @PackageID int, + @Recursive bit = 1 +) +AS + +-- check rights +IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 +RAISERROR('You are not allowed to access this package', 16, 1) + +SELECT + D.DomainID, + D.PackageID, + D.ZoneItemID, + D.DomainItemID, + D.DomainName, + D.HostingAllowed, + ISNULL(WS.ItemID, 0) AS WebSiteID, + WS.ItemName AS WebSiteName, + ISNULL(MD.ItemID, 0) AS MailDomainID, + MD.ItemName AS MailDomainName, + Z.ItemName AS ZoneName, + D.IsSubDomain, + D.IsInstantAlias, + D.CreationDate, + D.ExpirationDate, + D.LastUpdateDate, + D.IsDomainPointer +FROM Domains AS D +INNER JOIN PackagesTree(@PackageID, @Recursive) AS PT ON D.PackageID = PT.PackageID +LEFT OUTER JOIN ServiceItems AS WS ON D.WebSiteID = WS.ItemID +LEFT OUTER JOIN ServiceItems AS MD ON D.MailDomainID = MD.ItemID +LEFT OUTER JOIN ServiceItems AS Z ON D.ZoneItemID = Z.ItemID +RETURN + +GO + + +IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'GetDomainsPaged') +DROP PROCEDURE GetDomainsPaged +GO +CREATE PROCEDURE [dbo].[GetDomainsPaged] +( + @ActorID int, + @PackageID int, + @ServerID int, + @Recursive bit, + @FilterColumn nvarchar(50) = '', + @FilterValue nvarchar(50) = '', + @SortColumn nvarchar(50), + @StartRow int, + @MaximumRows int +) +AS +SET NOCOUNT ON + +-- check rights +IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 +RAISERROR('You are not allowed to access this package', 16, 1) + +-- build query and run it to the temporary table +DECLARE @sql nvarchar(2000) + +IF @SortColumn = '' OR @SortColumn IS NULL +SET @SortColumn = 'DomainName' + +SET @sql = ' +DECLARE @Domains TABLE +( + ItemPosition int IDENTITY(1,1), + DomainID int +) +INSERT INTO @Domains (DomainID) +SELECT + D.DomainID +FROM Domains AS D +INNER JOIN Packages AS P ON D.PackageID = P.PackageID +INNER JOIN UsersDetailed AS U ON P.UserID = U.UserID +LEFT OUTER JOIN ServiceItems AS Z ON D.ZoneItemID = Z.ItemID +LEFT OUTER JOIN Services AS S ON Z.ServiceID = S.ServiceID +LEFT OUTER JOIN Servers AS SRV ON S.ServerID = SRV.ServerID +WHERE (D.IsInstantAlias = 0 AND D.IsDomainPointer = 0) AND + ((@Recursive = 0 AND D.PackageID = @PackageID) + OR (@Recursive = 1 AND dbo.CheckPackageParent(@PackageID, D.PackageID) = 1)) +AND (@ServerID = 0 OR (@ServerID > 0 AND S.ServerID = @ServerID)) +' + +IF @FilterColumn <> '' AND @FilterValue <> '' +SET @sql = @sql + ' AND ' + @FilterColumn + ' LIKE @FilterValue ' + +IF @SortColumn <> '' AND @SortColumn IS NOT NULL +SET @sql = @sql + ' ORDER BY ' + @SortColumn + ' ' + +SET @sql = @sql + ' SELECT COUNT(DomainID) FROM @Domains;SELECT + D.DomainID, + D.PackageID, + D.ZoneItemID, + D.DomainItemID, + D.DomainName, + D.HostingAllowed, + ISNULL(WS.ItemID, 0) AS WebSiteID, + WS.ItemName AS WebSiteName, + ISNULL(MD.ItemID, 0) AS MailDomainID, + MD.ItemName AS MailDomainName, + D.IsSubDomain, + D.IsInstantAlias, + D.IsDomainPointer, + D.ExpirationDate, + D.LastUpdateDate, + P.PackageName, + ISNULL(SRV.ServerID, 0) AS ServerID, + ISNULL(SRV.ServerName, '''') AS ServerName, + ISNULL(SRV.Comments, '''') AS ServerComments, + ISNULL(SRV.VirtualServer, 0) AS VirtualServer, + P.UserID, + U.Username, + U.FirstName, + U.LastName, + U.FullName, + U.RoleID, + U.Email +FROM @Domains AS SD +INNER JOIN Domains AS D ON SD.DomainID = D.DomainID +INNER JOIN Packages AS P ON D.PackageID = P.PackageID +INNER JOIN UsersDetailed AS U ON P.UserID = U.UserID +LEFT OUTER JOIN ServiceItems AS WS ON D.WebSiteID = WS.ItemID +LEFT OUTER JOIN ServiceItems AS MD ON D.MailDomainID = MD.ItemID +LEFT OUTER JOIN ServiceItems AS Z ON D.ZoneItemID = Z.ItemID +LEFT OUTER JOIN Services AS S ON Z.ServiceID = S.ServiceID +LEFT OUTER JOIN Servers AS SRV ON S.ServerID = SRV.ServerID +WHERE SD.ItemPosition BETWEEN @StartRow + 1 AND @StartRow + @MaximumRows' + +exec sp_executesql @sql, N'@StartRow int, @MaximumRows int, @PackageID int, @FilterValue nvarchar(50), @ServerID int, @Recursive bit', +@StartRow, @MaximumRows, @PackageID, @FilterValue, @ServerID, @Recursive + + +RETURN + IF NOT EXISTS(SELECT * FROM sys.columns WHERE [name] = N'ConnectionEnabled' AND [object_id] = OBJECT_ID(N'RDSServers')) BEGIN diff --git a/WebsitePanel/Lib/References/Whois.NET/IPAddressRange.dll b/WebsitePanel/Lib/References/Whois.NET/IPAddressRange.dll new file mode 100644 index 00000000..9814a137 Binary files /dev/null and b/WebsitePanel/Lib/References/Whois.NET/IPAddressRange.dll differ diff --git a/WebsitePanel/Lib/References/Whois.NET/WhoisClient.dll b/WebsitePanel/Lib/References/Whois.NET/WhoisClient.dll new file mode 100644 index 00000000..27a75771 Binary files /dev/null and b/WebsitePanel/Lib/References/Whois.NET/WhoisClient.dll differ diff --git a/WebsitePanel/Sources/Tools/WebsitePanel.Import.CsvBulk/ExchangeImport.cs b/WebsitePanel/Sources/Tools/WebsitePanel.Import.CsvBulk/ExchangeImport.cs index 4988105d..1a7a64ab 100644 --- a/WebsitePanel/Sources/Tools/WebsitePanel.Import.CsvBulk/ExchangeImport.cs +++ b/WebsitePanel/Sources/Tools/WebsitePanel.Import.CsvBulk/ExchangeImport.cs @@ -46,7 +46,10 @@ namespace WebsitePanel.Import.CsvBulk { Mailbox, Contact, - User + User, + Room, + Equipment, + SharedMailbox } /// @@ -487,9 +490,12 @@ namespace WebsitePanel.Import.CsvBulk if (!StringEquals(typeName, "Mailbox") && !StringEquals(typeName, "Contact") && - !StringEquals(typeName, "User")) + !StringEquals(typeName, "User")&& + !StringEquals(typeName, "Room")&& + !StringEquals(typeName, "Equipment")&& + !StringEquals(typeName, "SharedMailbox")) { - Log.WriteError(string.Format("Error at line {0}: field 'Type' is invalid. Should be 'Mailbox' or 'Contact' or 'User'", index + 1)); + Log.WriteError(string.Format("Error at line {0}: field 'Type' is invalid. Should be 'Mailbox' or 'Contact' or 'User' or 'Room' or 'Equipment' or 'SharedMailbox'", index + 1)); return false; } @@ -524,7 +530,7 @@ namespace WebsitePanel.Import.CsvBulk if (type == AccountTypes.Mailbox) { //create mailbox using web service - if (!CreateMailbox(index, orgId, displayName, emailAddress, password, firstName, middleName, lastName, + if (!CreateMailbox(ExchangeAccountType.Mailbox, index, orgId, displayName, emailAddress, password, firstName, middleName, lastName, address, city, state, zip, country, jobTitle, company, department, office, businessPhone, fax, homePhone, mobilePhone, pager, webPage, notes, planId)) { @@ -532,6 +538,42 @@ namespace WebsitePanel.Import.CsvBulk } totalMailboxes++; } + if (type == AccountTypes.Room) + { + //create mailbox using web service + if (!CreateMailbox(ExchangeAccountType.Room, index, orgId, displayName, emailAddress, password, firstName, middleName, lastName, + address, city, state, zip, country, jobTitle, company, department, office, + businessPhone, fax, homePhone, mobilePhone, pager, webPage, notes, planId)) + { + return false; + } + totalMailboxes++; + } + if (type == AccountTypes.Equipment) + { + //create mailbox using web service + if (!CreateMailbox(ExchangeAccountType.Equipment, index, orgId, displayName, emailAddress, password, firstName, middleName, lastName, + address, city, state, zip, country, jobTitle, company, department, office, + businessPhone, fax, homePhone, mobilePhone, pager, webPage, notes, planId)) + { + return false; + } + totalMailboxes++; + } + if (type == AccountTypes.SharedMailbox) + { + //create mailbox using web service + if (!CreateMailbox(ExchangeAccountType.SharedMailbox, index, orgId, displayName, emailAddress, password, firstName, middleName, lastName, + address, city, state, zip, country, jobTitle, company, department, office, + businessPhone, fax, homePhone, mobilePhone, pager, webPage, notes, planId)) + { + return false; + } + totalMailboxes++; + } + + + else if (type == AccountTypes.Contact) { //create contact using web service @@ -561,7 +603,7 @@ namespace WebsitePanel.Import.CsvBulk /// /// Creates mailbox /// - private bool CreateMailbox(int index, int orgId, string displayName, string emailAddress, string password, string firstName, string middleName, string lastName, + private bool CreateMailbox(ExchangeAccountType exchangeAccountType, int index, int orgId, string displayName, string emailAddress, string password, string firstName, string middleName, string lastName, string address, string city, string state, string zip, string country, string jobTitle, string company, string department, string office, string businessPhone, string fax, string homePhone, string mobilePhone, string pager, string webPage, string notes, int planId) { @@ -574,7 +616,7 @@ namespace WebsitePanel.Import.CsvBulk //create mailbox //ES.Services.ExchangeServer. string accountName = string.Empty; - int accountId = ES.Services.ExchangeServer.CreateMailbox(orgId, 0, ExchangeAccountType.Mailbox, accountName, displayName, name, domain, password, false, string.Empty, planId, -1, string.Empty, false); + int accountId = ES.Services.ExchangeServer.CreateMailbox(orgId, 0, exchangeAccountType, accountName, displayName, name, domain, password, false, string.Empty, planId, -1, string.Empty, false); if (accountId < 0) { string errorMessage = GetErrorMessage(accountId); diff --git a/WebsitePanel/Sources/Tools/WebsitePanel.Import.Enterprise/ApplicationForm.Designer.cs b/WebsitePanel/Sources/Tools/WebsitePanel.Import.Enterprise/ApplicationForm.Designer.cs index af549f66..d462be62 100644 --- a/WebsitePanel/Sources/Tools/WebsitePanel.Import.Enterprise/ApplicationForm.Designer.cs +++ b/WebsitePanel/Sources/Tools/WebsitePanel.Import.Enterprise/ApplicationForm.Designer.cs @@ -28,296 +28,319 @@ namespace WebsitePanel.Import.Enterprise /// private void InitializeComponent() { - this.components = new System.ComponentModel.Container(); - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ApplicationForm)); - this.lblSpace = new System.Windows.Forms.Label(); - this.txtSpace = new System.Windows.Forms.TextBox(); - this.btnBrowseSpace = new System.Windows.Forms.Button(); - this.btnBrowseOU = new System.Windows.Forms.Button(); - this.txtOU = new System.Windows.Forms.TextBox(); - this.lblOU = new System.Windows.Forms.Label(); - this.grpOrganization = new System.Windows.Forms.GroupBox(); - this.btnSelectAll = new System.Windows.Forms.Button(); - this.btnDeselectAll = new System.Windows.Forms.Button(); - this.rbCreateAndImport = new System.Windows.Forms.RadioButton(); - this.rbImport = new System.Windows.Forms.RadioButton(); - this.lvUsers = new System.Windows.Forms.ListView(); - this.columnHeader1 = new System.Windows.Forms.ColumnHeader(); - this.columnHeader2 = new System.Windows.Forms.ColumnHeader(); - this.columnHeader3 = new System.Windows.Forms.ColumnHeader(); - this.images = new System.Windows.Forms.ImageList(this.components); - this.txtOrgName = new System.Windows.Forms.TextBox(); - this.lblOrgName = new System.Windows.Forms.Label(); - this.txtOrgId = new System.Windows.Forms.TextBox(); - this.lblOrgId = new System.Windows.Forms.Label(); - this.btnStart = new System.Windows.Forms.Button(); - this.progressBar = new System.Windows.Forms.ProgressBar(); - this.lblMessage = new System.Windows.Forms.Label(); - this.grpOrganization.SuspendLayout(); - this.SuspendLayout(); - // - // lblSpace - // - this.lblSpace.Location = new System.Drawing.Point(15, 15); - this.lblSpace.Name = "lblSpace"; - this.lblSpace.Size = new System.Drawing.Size(125, 23); - this.lblSpace.TabIndex = 0; - this.lblSpace.Text = "Target Hosting Space:"; - // - // txtSpace - // - this.txtSpace.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.txtSpace.Location = new System.Drawing.Point(146, 12); - this.txtSpace.Name = "txtSpace"; - this.txtSpace.ReadOnly = true; - this.txtSpace.Size = new System.Drawing.Size(429, 20); - this.txtSpace.TabIndex = 1; - this.txtSpace.TextChanged += new System.EventHandler(this.OnDataChanged); - // - // btnBrowseSpace - // - this.btnBrowseSpace.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btnBrowseSpace.Location = new System.Drawing.Point(581, 10); - this.btnBrowseSpace.Name = "btnBrowseSpace"; - this.btnBrowseSpace.Size = new System.Drawing.Size(24, 22); - this.btnBrowseSpace.TabIndex = 2; - this.btnBrowseSpace.Text = "..."; - this.btnBrowseSpace.UseVisualStyleBackColor = true; - this.btnBrowseSpace.Click += new System.EventHandler(this.OnBrowseSpace); - // - // btnBrowseOU - // - this.btnBrowseOU.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btnBrowseOU.Location = new System.Drawing.Point(581, 36); - this.btnBrowseOU.Name = "btnBrowseOU"; - this.btnBrowseOU.Size = new System.Drawing.Size(24, 22); - this.btnBrowseOU.TabIndex = 5; - this.btnBrowseOU.Text = "..."; - this.btnBrowseOU.UseVisualStyleBackColor = true; - this.btnBrowseOU.Click += new System.EventHandler(this.OnBrowseOU); - // - // txtOU - // - this.txtOU.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.txtOU.Location = new System.Drawing.Point(146, 38); - this.txtOU.Name = "txtOU"; - this.txtOU.ReadOnly = true; - this.txtOU.Size = new System.Drawing.Size(429, 20); - this.txtOU.TabIndex = 4; - this.txtOU.TextChanged += new System.EventHandler(this.OnDataChanged); - // - // lblOU - // - this.lblOU.Location = new System.Drawing.Point(15, 41); - this.lblOU.Name = "lblOU"; - this.lblOU.Size = new System.Drawing.Size(125, 23); - this.lblOU.TabIndex = 3; - this.lblOU.Text = "Organizational Unit:"; - // - // grpOrganization - // - this.grpOrganization.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.grpOrganization.Controls.Add(this.btnSelectAll); - this.grpOrganization.Controls.Add(this.btnDeselectAll); - this.grpOrganization.Controls.Add(this.rbCreateAndImport); - this.grpOrganization.Controls.Add(this.rbImport); - this.grpOrganization.Controls.Add(this.lvUsers); - this.grpOrganization.Controls.Add(this.txtOrgName); - this.grpOrganization.Controls.Add(this.lblOrgName); - this.grpOrganization.Controls.Add(this.txtOrgId); - this.grpOrganization.Controls.Add(this.lblOrgId); - this.grpOrganization.Location = new System.Drawing.Point(15, 67); - this.grpOrganization.Name = "grpOrganization"; - this.grpOrganization.Size = new System.Drawing.Size(590, 328); - this.grpOrganization.TabIndex = 6; - this.grpOrganization.TabStop = false; - // - // btnSelectAll - // - this.btnSelectAll.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.btnSelectAll.Location = new System.Drawing.Point(417, 282); - this.btnSelectAll.Name = "btnSelectAll"; - this.btnSelectAll.Size = new System.Drawing.Size(75, 23); - this.btnSelectAll.TabIndex = 7; - this.btnSelectAll.Text = "Select All"; - this.btnSelectAll.UseVisualStyleBackColor = true; - this.btnSelectAll.Click += new System.EventHandler(this.OnSelectAllClick); - // - // btnDeselectAll - // - this.btnDeselectAll.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.btnDeselectAll.Location = new System.Drawing.Point(498, 282); - this.btnDeselectAll.Name = "btnDeselectAll"; - this.btnDeselectAll.Size = new System.Drawing.Size(75, 23); - this.btnDeselectAll.TabIndex = 8; - this.btnDeselectAll.Text = "Unselect All"; - this.btnDeselectAll.UseVisualStyleBackColor = true; - this.btnDeselectAll.Click += new System.EventHandler(this.OnDeselectAllClick); - // - // rbCreateAndImport - // - this.rbCreateAndImport.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.rbCreateAndImport.AutoSize = true; - this.rbCreateAndImport.Checked = true; - this.rbCreateAndImport.Enabled = false; - this.rbCreateAndImport.Location = new System.Drawing.Point(19, 282); - this.rbCreateAndImport.Name = "rbCreateAndImport"; - this.rbCreateAndImport.Size = new System.Drawing.Size(261, 17); - this.rbCreateAndImport.TabIndex = 5; - this.rbCreateAndImport.TabStop = true; - this.rbCreateAndImport.Text = "Create new organization and import selected items"; - this.rbCreateAndImport.UseVisualStyleBackColor = true; - this.rbCreateAndImport.CheckedChanged += new System.EventHandler(this.OnCheckedChanged); - // - // rbImport - // - this.rbImport.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.rbImport.AutoSize = true; - this.rbImport.Enabled = false; - this.rbImport.Location = new System.Drawing.Point(19, 305); - this.rbImport.Name = "rbImport"; - this.rbImport.Size = new System.Drawing.Size(237, 17); - this.rbImport.TabIndex = 6; - this.rbImport.Text = "Import selected items for existing organization"; - this.rbImport.UseVisualStyleBackColor = true; - // - // lvUsers - // - this.lvUsers.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.lvUsers.CheckBoxes = true; - this.lvUsers.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ApplicationForm)); + this.lblSpace = new System.Windows.Forms.Label(); + this.txtSpace = new System.Windows.Forms.TextBox(); + this.btnBrowseSpace = new System.Windows.Forms.Button(); + this.btnBrowseOU = new System.Windows.Forms.Button(); + this.txtOU = new System.Windows.Forms.TextBox(); + this.lblOU = new System.Windows.Forms.Label(); + this.grpOrganization = new System.Windows.Forms.GroupBox(); + this.cbMailboxPlan = new System.Windows.Forms.ComboBox(); + this.lblMailnoxPlan = new System.Windows.Forms.Label(); + this.btnSelectAll = new System.Windows.Forms.Button(); + this.btnDeselectAll = new System.Windows.Forms.Button(); + this.rbCreateAndImport = new System.Windows.Forms.RadioButton(); + this.rbImport = new System.Windows.Forms.RadioButton(); + this.lvUsers = new System.Windows.Forms.ListView(); + this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.columnHeader3 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.images = new System.Windows.Forms.ImageList(this.components); + this.txtOrgName = new System.Windows.Forms.TextBox(); + this.lblOrgName = new System.Windows.Forms.Label(); + this.txtOrgId = new System.Windows.Forms.TextBox(); + this.lblOrgId = new System.Windows.Forms.Label(); + this.btnStart = new System.Windows.Forms.Button(); + this.progressBar = new System.Windows.Forms.ProgressBar(); + this.lblMessage = new System.Windows.Forms.Label(); + this.grpOrganization.SuspendLayout(); + this.SuspendLayout(); + // + // lblSpace + // + this.lblSpace.Location = new System.Drawing.Point(15, 15); + this.lblSpace.Name = "lblSpace"; + this.lblSpace.Size = new System.Drawing.Size(125, 23); + this.lblSpace.TabIndex = 0; + this.lblSpace.Text = "Target Hosting Space:"; + // + // txtSpace + // + this.txtSpace.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.txtSpace.Location = new System.Drawing.Point(146, 12); + this.txtSpace.Name = "txtSpace"; + this.txtSpace.ReadOnly = true; + this.txtSpace.Size = new System.Drawing.Size(426, 20); + this.txtSpace.TabIndex = 1; + this.txtSpace.TextChanged += new System.EventHandler(this.OnDataChanged); + // + // btnBrowseSpace + // + this.btnBrowseSpace.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnBrowseSpace.Location = new System.Drawing.Point(578, 10); + this.btnBrowseSpace.Name = "btnBrowseSpace"; + this.btnBrowseSpace.Size = new System.Drawing.Size(24, 22); + this.btnBrowseSpace.TabIndex = 2; + this.btnBrowseSpace.Text = "..."; + this.btnBrowseSpace.UseVisualStyleBackColor = true; + this.btnBrowseSpace.Click += new System.EventHandler(this.OnBrowseSpace); + // + // btnBrowseOU + // + this.btnBrowseOU.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnBrowseOU.Location = new System.Drawing.Point(578, 36); + this.btnBrowseOU.Name = "btnBrowseOU"; + this.btnBrowseOU.Size = new System.Drawing.Size(24, 22); + this.btnBrowseOU.TabIndex = 5; + this.btnBrowseOU.Text = "..."; + this.btnBrowseOU.UseVisualStyleBackColor = true; + this.btnBrowseOU.Click += new System.EventHandler(this.OnBrowseOU); + // + // txtOU + // + this.txtOU.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.txtOU.Location = new System.Drawing.Point(146, 38); + this.txtOU.Name = "txtOU"; + this.txtOU.ReadOnly = true; + this.txtOU.Size = new System.Drawing.Size(426, 20); + this.txtOU.TabIndex = 4; + this.txtOU.TextChanged += new System.EventHandler(this.OnDataChanged); + // + // lblOU + // + this.lblOU.Location = new System.Drawing.Point(15, 41); + this.lblOU.Name = "lblOU"; + this.lblOU.Size = new System.Drawing.Size(125, 23); + this.lblOU.TabIndex = 3; + this.lblOU.Text = "Organizational Unit:"; + // + // grpOrganization + // + this.grpOrganization.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.grpOrganization.Controls.Add(this.cbMailboxPlan); + this.grpOrganization.Controls.Add(this.lblMailnoxPlan); + this.grpOrganization.Controls.Add(this.btnSelectAll); + this.grpOrganization.Controls.Add(this.btnDeselectAll); + this.grpOrganization.Controls.Add(this.rbCreateAndImport); + this.grpOrganization.Controls.Add(this.rbImport); + this.grpOrganization.Controls.Add(this.lvUsers); + this.grpOrganization.Controls.Add(this.txtOrgName); + this.grpOrganization.Controls.Add(this.lblOrgName); + this.grpOrganization.Controls.Add(this.txtOrgId); + this.grpOrganization.Controls.Add(this.lblOrgId); + this.grpOrganization.Location = new System.Drawing.Point(15, 67); + this.grpOrganization.Name = "grpOrganization"; + this.grpOrganization.Size = new System.Drawing.Size(587, 328); + this.grpOrganization.TabIndex = 6; + this.grpOrganization.TabStop = false; + // + // cbMailboxPlan + // + this.cbMailboxPlan.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.cbMailboxPlan.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cbMailboxPlan.FormattingEnabled = true; + this.cbMailboxPlan.Location = new System.Drawing.Point(155, 74); + this.cbMailboxPlan.Name = "cbMailboxPlan"; + this.cbMailboxPlan.Size = new System.Drawing.Size(415, 21); + this.cbMailboxPlan.TabIndex = 10; + // + // lblMailnoxPlan + // + this.lblMailnoxPlan.Location = new System.Drawing.Point(19, 74); + this.lblMailnoxPlan.Name = "lblMailnoxPlan"; + this.lblMailnoxPlan.Size = new System.Drawing.Size(130, 23); + this.lblMailnoxPlan.TabIndex = 9; + this.lblMailnoxPlan.Text = "Default mailbox plan :"; + // + // btnSelectAll + // + this.btnSelectAll.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnSelectAll.Location = new System.Drawing.Point(414, 282); + this.btnSelectAll.Name = "btnSelectAll"; + this.btnSelectAll.Size = new System.Drawing.Size(75, 23); + this.btnSelectAll.TabIndex = 7; + this.btnSelectAll.Text = "Select All"; + this.btnSelectAll.UseVisualStyleBackColor = true; + this.btnSelectAll.Click += new System.EventHandler(this.OnSelectAllClick); + // + // btnDeselectAll + // + this.btnDeselectAll.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnDeselectAll.Location = new System.Drawing.Point(495, 282); + this.btnDeselectAll.Name = "btnDeselectAll"; + this.btnDeselectAll.Size = new System.Drawing.Size(75, 23); + this.btnDeselectAll.TabIndex = 8; + this.btnDeselectAll.Text = "Unselect All"; + this.btnDeselectAll.UseVisualStyleBackColor = true; + this.btnDeselectAll.Click += new System.EventHandler(this.OnDeselectAllClick); + // + // rbCreateAndImport + // + this.rbCreateAndImport.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.rbCreateAndImport.AutoSize = true; + this.rbCreateAndImport.Checked = true; + this.rbCreateAndImport.Enabled = false; + this.rbCreateAndImport.Location = new System.Drawing.Point(19, 282); + this.rbCreateAndImport.Name = "rbCreateAndImport"; + this.rbCreateAndImport.Size = new System.Drawing.Size(261, 17); + this.rbCreateAndImport.TabIndex = 5; + this.rbCreateAndImport.TabStop = true; + this.rbCreateAndImport.Text = "Create new organization and import selected items"; + this.rbCreateAndImport.UseVisualStyleBackColor = true; + this.rbCreateAndImport.CheckedChanged += new System.EventHandler(this.OnCheckedChanged); + // + // rbImport + // + this.rbImport.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.rbImport.AutoSize = true; + this.rbImport.Enabled = false; + this.rbImport.Location = new System.Drawing.Point(19, 305); + this.rbImport.Name = "rbImport"; + this.rbImport.Size = new System.Drawing.Size(237, 17); + this.rbImport.TabIndex = 6; + this.rbImport.Text = "Import selected items for existing organization"; + this.rbImport.UseVisualStyleBackColor = true; + // + // lvUsers + // + this.lvUsers.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.lvUsers.CheckBoxes = true; + this.lvUsers.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { this.columnHeader1, this.columnHeader2, this.columnHeader3}); - this.lvUsers.FullRowSelect = true; - this.lvUsers.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable; - this.lvUsers.Location = new System.Drawing.Point(19, 74); - this.lvUsers.MultiSelect = false; - this.lvUsers.Name = "lvUsers"; - this.lvUsers.Size = new System.Drawing.Size(554, 202); - this.lvUsers.SmallImageList = this.images; - this.lvUsers.TabIndex = 4; - this.lvUsers.UseCompatibleStateImageBehavior = false; - this.lvUsers.View = System.Windows.Forms.View.Details; - // - // columnHeader1 - // - this.columnHeader1.Text = "Name"; - this.columnHeader1.Width = 229; - // - // columnHeader2 - // - this.columnHeader2.Text = "Email"; - this.columnHeader2.Width = 163; - // - // columnHeader3 - // - this.columnHeader3.Text = "Type"; - this.columnHeader3.Width = 152; - // - // images - // - this.images.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("images.ImageStream"))); - this.images.TransparentColor = System.Drawing.Color.Transparent; - this.images.Images.SetKeyName(0, "UserSmallIcon.ico"); - this.images.Images.SetKeyName(1, "contact.ico"); - this.images.Images.SetKeyName(2, "DL.ico"); - // - // txtOrgName - // - this.txtOrgName.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.txtOrgName.Location = new System.Drawing.Point(155, 45); - this.txtOrgName.Name = "txtOrgName"; - this.txtOrgName.Size = new System.Drawing.Size(418, 20); - this.txtOrgName.TabIndex = 3; - // - // lblOrgName - // - this.lblOrgName.Location = new System.Drawing.Point(19, 48); - this.lblOrgName.Name = "lblOrgName"; - this.lblOrgName.Size = new System.Drawing.Size(130, 23); - this.lblOrgName.TabIndex = 2; - this.lblOrgName.Text = "Organization Name:"; - // - // txtOrgId - // - this.txtOrgId.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.txtOrgId.Location = new System.Drawing.Point(155, 19); - this.txtOrgId.Name = "txtOrgId"; - this.txtOrgId.ReadOnly = true; - this.txtOrgId.Size = new System.Drawing.Size(418, 20); - this.txtOrgId.TabIndex = 1; - // - // lblOrgId - // - this.lblOrgId.Location = new System.Drawing.Point(19, 22); - this.lblOrgId.Name = "lblOrgId"; - this.lblOrgId.Size = new System.Drawing.Size(130, 23); - this.lblOrgId.TabIndex = 0; - this.lblOrgId.Text = "Organization Id:"; - // - // btnStart - // - this.btnStart.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.btnStart.Location = new System.Drawing.Point(527, 461); - this.btnStart.Name = "btnStart"; - this.btnStart.Size = new System.Drawing.Size(75, 23); - this.btnStart.TabIndex = 9; - this.btnStart.Text = "Start"; - this.btnStart.UseVisualStyleBackColor = true; - this.btnStart.Click += new System.EventHandler(this.OnImportClick); - // - // progressBar - // - this.progressBar.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.progressBar.Location = new System.Drawing.Point(15, 427); - this.progressBar.Name = "progressBar"; - this.progressBar.Size = new System.Drawing.Size(587, 23); - this.progressBar.TabIndex = 8; - // - // lblMessage - // - this.lblMessage.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.lblMessage.Location = new System.Drawing.Point(12, 401); - this.lblMessage.Name = "lblMessage"; - this.lblMessage.Size = new System.Drawing.Size(593, 23); - this.lblMessage.TabIndex = 7; - // - // ApplicationForm - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(617, 496); - this.Controls.Add(this.lblMessage); - this.Controls.Add(this.progressBar); - this.Controls.Add(this.btnStart); - this.Controls.Add(this.grpOrganization); - this.Controls.Add(this.btnBrowseOU); - this.Controls.Add(this.txtOU); - this.Controls.Add(this.lblOU); - this.Controls.Add(this.btnBrowseSpace); - this.Controls.Add(this.txtSpace); - this.Controls.Add(this.lblSpace); - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.MinimumSize = new System.Drawing.Size(630, 500); - this.Name = "ApplicationForm"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; - this.Text = "WebsitePanel Enterprise Import Tool"; - this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.OnFormClosing); - this.grpOrganization.ResumeLayout(false); - this.grpOrganization.PerformLayout(); - this.ResumeLayout(false); - this.PerformLayout(); + this.lvUsers.FullRowSelect = true; + this.lvUsers.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable; + this.lvUsers.Location = new System.Drawing.Point(19, 108); + this.lvUsers.MultiSelect = false; + this.lvUsers.Name = "lvUsers"; + this.lvUsers.Size = new System.Drawing.Size(551, 167); + this.lvUsers.SmallImageList = this.images; + this.lvUsers.TabIndex = 4; + this.lvUsers.UseCompatibleStateImageBehavior = false; + this.lvUsers.View = System.Windows.Forms.View.Details; + // + // columnHeader1 + // + this.columnHeader1.Text = "Name"; + this.columnHeader1.Width = 238; + // + // columnHeader2 + // + this.columnHeader2.Text = "Email"; + this.columnHeader2.Width = 166; + // + // columnHeader3 + // + this.columnHeader3.Text = "Type"; + this.columnHeader3.Width = 124; + // + // images + // + this.images.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("images.ImageStream"))); + this.images.TransparentColor = System.Drawing.Color.Transparent; + this.images.Images.SetKeyName(0, "UserSmallIcon.ico"); + this.images.Images.SetKeyName(1, "contact.ico"); + this.images.Images.SetKeyName(2, "DL.ico"); + // + // txtOrgName + // + this.txtOrgName.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.txtOrgName.Location = new System.Drawing.Point(155, 45); + this.txtOrgName.Name = "txtOrgName"; + this.txtOrgName.Size = new System.Drawing.Size(415, 20); + this.txtOrgName.TabIndex = 3; + // + // lblOrgName + // + this.lblOrgName.Location = new System.Drawing.Point(19, 48); + this.lblOrgName.Name = "lblOrgName"; + this.lblOrgName.Size = new System.Drawing.Size(130, 23); + this.lblOrgName.TabIndex = 2; + this.lblOrgName.Text = "Organization Name:"; + // + // txtOrgId + // + this.txtOrgId.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.txtOrgId.Location = new System.Drawing.Point(155, 19); + this.txtOrgId.Name = "txtOrgId"; + this.txtOrgId.ReadOnly = true; + this.txtOrgId.Size = new System.Drawing.Size(415, 20); + this.txtOrgId.TabIndex = 1; + // + // lblOrgId + // + this.lblOrgId.Location = new System.Drawing.Point(19, 22); + this.lblOrgId.Name = "lblOrgId"; + this.lblOrgId.Size = new System.Drawing.Size(130, 23); + this.lblOrgId.TabIndex = 0; + this.lblOrgId.Text = "Organization Id:"; + // + // btnStart + // + this.btnStart.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnStart.Location = new System.Drawing.Point(524, 461); + this.btnStart.Name = "btnStart"; + this.btnStart.Size = new System.Drawing.Size(75, 23); + this.btnStart.TabIndex = 9; + this.btnStart.Text = "Start"; + this.btnStart.UseVisualStyleBackColor = true; + this.btnStart.Click += new System.EventHandler(this.OnImportClick); + // + // progressBar + // + this.progressBar.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.progressBar.Location = new System.Drawing.Point(15, 427); + this.progressBar.Name = "progressBar"; + this.progressBar.Size = new System.Drawing.Size(584, 23); + this.progressBar.TabIndex = 8; + // + // lblMessage + // + this.lblMessage.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.lblMessage.Location = new System.Drawing.Point(12, 401); + this.lblMessage.Name = "lblMessage"; + this.lblMessage.Size = new System.Drawing.Size(590, 23); + this.lblMessage.TabIndex = 7; + // + // ApplicationForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(614, 496); + this.Controls.Add(this.lblMessage); + this.Controls.Add(this.progressBar); + this.Controls.Add(this.btnStart); + this.Controls.Add(this.grpOrganization); + this.Controls.Add(this.btnBrowseOU); + this.Controls.Add(this.txtOU); + this.Controls.Add(this.lblOU); + this.Controls.Add(this.btnBrowseSpace); + this.Controls.Add(this.txtSpace); + this.Controls.Add(this.lblSpace); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MinimumSize = new System.Drawing.Size(630, 500); + this.Name = "ApplicationForm"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "WebsitePanel Enterprise Import Tool"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.OnFormClosing); + this.grpOrganization.ResumeLayout(false); + this.grpOrganization.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); } @@ -346,6 +369,8 @@ namespace WebsitePanel.Import.Enterprise private System.Windows.Forms.RadioButton rbImport; internal System.Windows.Forms.Button btnSelectAll; internal System.Windows.Forms.Button btnDeselectAll; + private System.Windows.Forms.ComboBox cbMailboxPlan; + private System.Windows.Forms.Label lblMailnoxPlan; } } diff --git a/WebsitePanel/Sources/Tools/WebsitePanel.Import.Enterprise/ApplicationForm.cs b/WebsitePanel/Sources/Tools/WebsitePanel.Import.Enterprise/ApplicationForm.cs index fb403a0a..6201cc35 100644 --- a/WebsitePanel/Sources/Tools/WebsitePanel.Import.Enterprise/ApplicationForm.cs +++ b/WebsitePanel/Sources/Tools/WebsitePanel.Import.Enterprise/ApplicationForm.cs @@ -1,4 +1,4 @@ -// Copyright (c) 2011, Outercurve Foundation. +// Copyright (c) 2014, Outercurve Foundation. // All rights reserved. // // Redistribution and use in source and binary forms, with or without modification, @@ -129,6 +129,30 @@ namespace WebsitePanel.Import.Enterprise } } + private void BindMailboxPlans(string orgId) + { + cbMailboxPlan.Items.Clear(); + cbMailboxPlan.Items.Add(""); + cbMailboxPlan.SelectedIndex = 0; + + Organization org = OrganizationController.GetOrganizationById(orgId); + + if (org == null) + { + List orgs = ExchangeServerController.GetExchangeOrganizations(1, false); + if (orgs.Count > 0) + org = orgs[0]; + } + + if (org != null) + { + int itemId = org.Id; + List plans = ExchangeServerController.GetExchangeMailboxPlans(itemId, false); + cbMailboxPlan.Items.AddRange(plans.ToArray()); + } + + } + private void LoadOrganizationData(DirectoryEntry parent) { string orgId = (string)parent.Properties["name"].Value; @@ -147,6 +171,9 @@ namespace WebsitePanel.Import.Enterprise rbImport.Checked = false; txtOrgName.Text = orgId; } + + BindMailboxPlans(orgId); + LoadOrganizationAccounts(parent); } @@ -164,34 +191,60 @@ namespace WebsitePanel.Import.Enterprise type = null; email = null; name = (string)child.Properties["name"].Value; + //account type typeProp = child.Properties["msExchRecipientDisplayType"]; + + int typeDetails = 0; + PropertyValueCollection typeDetailsProp = child.Properties["msExchRecipientTypeDetails"]; + if (typeDetailsProp != null) + { + if (typeDetailsProp.Value != null) + { + try + { + object adsLargeInteger = typeDetailsProp.Value; + typeDetails = (Int32)adsLargeInteger.GetType().InvokeMember("LowPart", System.Reflection.BindingFlags.GetProperty, null, adsLargeInteger, null); + } + catch { } // just skip + } + } + switch (child.SchemaClassName) { case "user": email = (string)child.Properties["userPrincipalName"].Value; - if (typeProp == null || typeProp.Value == null) - { - type = "User"; - } - else - { - int mailboxType = (int)typeProp.Value; - switch (mailboxType) - { - case 1073741824: - type = "User Mailbox"; - break; - case 7: - type = "Room Mailbox"; - break; - case 8: - type = "Equipment Mailbox"; - break; - } - } + if (typeDetails == 4) + { + type = "Shared Mailbox"; + } + else + { + + if (typeProp == null || typeProp.Value == null) + { + type = "User"; + } + else + { + int mailboxType = (int)typeProp.Value; + + switch (mailboxType) + { + case 1073741824: + type = "User Mailbox"; + break; + case 7: + type = "Room Mailbox"; + break; + case 8: + type = "Equipment Mailbox"; + break; + } + } + } if (!string.IsNullOrEmpty(type)) { @@ -300,6 +353,16 @@ namespace WebsitePanel.Import.Enterprise Global.OrganizationName = txtOrgName.Text; Global.ImportAccountsOnly = rbImport.Checked; Global.HasErrors = false; + + Global.defaultMailboxPlanId = 0; + if (cbMailboxPlan.SelectedItem!=null) + { + ExchangeMailboxPlan plan = cbMailboxPlan.SelectedItem as ExchangeMailboxPlan; + if (plan != null) + Global.defaultMailboxPlanId = plan.MailboxPlanId; + + } + importer.Initialize(this.username, this); importer.Start(); diff --git a/WebsitePanel/Sources/Tools/WebsitePanel.Import.Enterprise/ApplicationForm.resx b/WebsitePanel/Sources/Tools/WebsitePanel.Import.Enterprise/ApplicationForm.resx index 687492b2..c90fffd6 100644 --- a/WebsitePanel/Sources/Tools/WebsitePanel.Import.Enterprise/ApplicationForm.resx +++ b/WebsitePanel/Sources/Tools/WebsitePanel.Import.Enterprise/ApplicationForm.resx @@ -112,79 +112,79 @@ 2.0 - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + 17, 17 - AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w + AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 - ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABM - DQAAAk1TRnQBSQFMAgEBAwEAAQwBAAEMAQABEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA + ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABI + DQAAAk1TRnQBSQFMAgEBAwEAAVwBAAFcAQABEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA AwABEAMAAQEBAAEgBgABEGIAAa0BsgG1Af8BrQGuAa0B/wGtAa4BrQH/AaUBpgGlAf8BnAGeAaUB/wGc AZoBnAH/AZQBlgGUAf8BjAGOAZQB/wGMAYoBjAH/IAABrQGyAbUB/wGtAa4BrQH/Aa0BrgGtAf8BpQGm - AaUB/wGcAZ4BpQH/AZwBmgGcAf8BlAGWAZQB/wGMAY4BlAH/AYwBigGMAf8BjAFtAWcB/1AAAxgBIQNN - AZEDWAHBA2EB5gFqAWMBVwH8A2EB5gNYAcEDTAGQAygBPSAAAa0BsgG1Hf8BlAGWAZQB/yAAAa0BsgG1 - Hf8BlAGWAZQB/wG1AZIBZwH/AYQBaQFfAf9IAAMDAQQDXAHNAagBkwFHAf0B5gHLAbQB/wHeAbcBkAH/ - AeMBuwGUAf8B4AG6AZQB/wHOAasBiAH/AbgBmQFcAf8DWgHFIAABrQGyAbUF/wHvAesB5wH/Ac4BywHO + AaUB/wGcAZ4BpQH/AZwBmgGcAf8BlAGWAZQB/wGMAY4BlAH/AYwBigGMAf8BjAFjAV0B/1AAAxgBIQNN + AZEDWAHBA2EB5gFgAVkBRQH8A2EB5gNYAcEDTAGQAygBPSAAAa0BsgG1Hf8BlAGWAZQB/yAAAa0BsgG1 + Hf8BlAGWAZQB/wG1AZIBXQH/AYQBXwFVAf9IAAMDAQQDXAHNAagBkwFAAf0B5gHLAbQB/wHeAbcBkAH/ + AeMBuwGUAf8B4AG6AZQB/wHOAasBiAH/AbgBmQFSAf8DWgHFIAABrQGyAbUF/wHvAesB5wH/Ac4BywHO Af8BvQG6Ab0B/wG1AbIBtQn/AZQBkgGUAf8gAAGtAbIBtQX/Ae8B6wHnAf8BzgHLAc4B/wG9AboBvQH/ - AbUBsgG1Cf8BlAGSAZQB/wHGAZ4BbwH/AYwBbQFfAf9IAAMEAQUDWQG+AcYBpQGFAf8B5gHQAb0B/wHi - Ab0BnAH/AeYBvwGXAf8B6AHDAZ8B/wHbAboBmAH/AcABnwFfAf8DXAHMEAABvQHDAbUB/wE8ATsBPAH/ - ATwBOwE8Af8BPAE7ATwB/wGtAbIBtRX/ATwBOwH3Af8BIwEmAdYB/wGUAZIBlAH/ATwBOwE8Af8BPAE7 - ATwB/wE8ATsBPAH/CAABVwGOAW8B/wFGAYoBZwH/AU4BigFnAf8BrQGyAbUV/wE+AT0B9wH/ASUBKAHW + AbUBsgG1Cf8BlAGSAZQB/wHGAZ4BZQH/AYwBYwFVAf9IAAMEAQUDWQG+AcYBpQGFAf8B5gHQAb0B/wHi + Ab0BnAH/AeYBvwGXAf8B6AHDAZ8B/wHbAboBmAH/AcABnwFVAf8DXAHMEAABvQHDAbUB/wEyATEBMgH/ + ATIBMQEyAf8BMgExATIB/wGtAbIBtRX/ATIBMQH3Af8BGQEcAdYB/wGUAZIBlAH/ATIBMQEyAf8BMgEx + ATIB/wEyATEBMgH/CAABTQGOAWUB/wE8AYoBXQH/AUQBigFdAf8BrQGyAbUV/wE0ATMB9wH/ARsBHgHW Af8BlAGSAZQB/wHeAbIBhAH/AZwBkgGEAf9LAAEBA1MBqgHZAbEBkAH/AeYB1AHBAf8B8wHSAbMB/wHq AcEBmAH/Ae0BzAGqAf8B4AHCAaQB/wHDAaMBggH/A14B3RAAAb0BwwG1C/8B9wH/Aa0BugG1Ff8BpQGi - AfcB/wGMAY4B3gH/AZQBkgGUAf8B7wHjAdYC/wH3Ae8B/wGcAZ4BlAH/BAABVwG6AYwB/wFfAcsBnAH/ - AU4BugGMAf8BhAHHAaUB/wGtAboBtRX/AaUBogH3Af8BjAGOAd4B/wGUAZIBlAH/Ac4BpgFvAf9MAAMB - AQIDAQECA2UB5QHQAcMBsgH/AcgBwwG7Af8B1wG3AZcB/wHrAcQBnQH/AeEBvgGbAf8BzgGmAV8B/wNN + AfcB/wGMAY4B3gH/AZQBkgGUAf8B7wHjAdYC/wH3Ae8B/wGcAZ4BlAH/BAABTQG6AYwB/wFVAcsBnAH/ + AUQBugGMAf8BhAHHAaUB/wGtAboBtRX/AaUBogH3Af8BjAGOAd4B/wGUAZIBlAH/Ac4BpgFlAf9MAAMB + AQIDAQECA2UB5QHQAcMBsgH/AcgBwwG7Af8B1wG3AZcB/wHrAcQBnQH/AeEBvgGbAf8BzgGmAVUB/wNN AZEQAAG9AcMBtQX/AfcB7wHnAf8B9wHvAecB/wGtAboBtQH/Aa0BsgG1Af8BrQGyAa0B/wGlAa4BrQH/ AaUBpgGlAf8BnAGiAZwB/wGcAZ4BlAH/AZwBlgGUAf8BlAGWAZQB/wH3Ae8B5wH/AfcB7wHnAf8BnAGe - AZQB/wQAAW8BwwGlAf8BZwG6AZQB/wFGAa4BhAH/AcYB4wHOAf8BrQG6AbUB/wGtAbIBtQH/Aa0BsgGt + AZQB/wQAAWUBwwGlAf8BXQG6AZQB/wE8Aa4BhAH/AcYB4wHOAf8BrQG6AbUB/wGtAbIBtQH/Aa0BsgGt Af8BpQGuAa0B/wGlAaYBpQH/AZwBogGcAf8BnAGeAZwB/wGcAZYBlAH/AZQBkgGUAf9XAAEBAx8BLQNc - AckBAAErAVwB/wEvAUkBgwH/AcYBpgGHAf8DYQHuA04BmAMHAQoQAAG9AcMBtQX/Ae8B3wHWAf8B1gG+ + AckBAAEhAVIB/wElAT8BgwH/AcYBpgGHAf8DYQHuA04BmAMHAQoQAAG9AcMBtQX/Ae8B3wHWAf8B1gG+ Aa0B/wHGAbIBpQH/AcYBsgGlAf8BzgG6AaUB/wHnAd8B1gH/AfcB7wHnAf8B9wHvAecB/wH3Ae8B5wH/ - AfcB7wHnAf8B9wHvAecB/wH3Ae8B5wH/AfcB7wHnAf8BnAGeAZQB/wQAAYQBwwGlAf8BbwHPAaUB/wFX - AboBjAH/Ab0B1wHOAf8BpQHDAbUB/wFOAaYBbwH/ASUBhgFGAf8BVwGGAYQB/wE2AVEBhAH/AQABMAFn - Af8BDAE9AW8B/wG9AaoBlAH/VwABAQMAAQEDEAEWA1ABmgEQATUBXAH/AQcBMQFcAf8DVQG1Az8BbAQA + AfcB7wHnAf8B9wHvAecB/wH3Ae8B5wH/AfcB7wHnAf8BnAGeAZQB/wQAAYQBwwGlAf8BZQHPAaUB/wFN + AboBjAH/Ab0B1wHOAf8BpQHDAbUB/wFEAaYBZQH/ARsBhgE8Af8BTQGGAYQB/wEsAUcBhAH/AQABJgFd + Af8BAgEzAWUB/wG9AaoBlAH/VwABAQMAAQEDEAEWA1ABmgEGASsBUgH/AQABJwFSAf8DVQG1Az8BbAQA AwIBAxAAAb0BwwG1Bf8BxgGuAZwR/wHWAb4BrQH/AfcB7wHnAf8B9wHvAecB/wH3Ae8B5wH/AfcB7wHn - Af8B9wHvAecB/wH3Ae8B5wH/AfcB7wHnAf8BnAGeAZQB/wgAAYwB2wGlAf8BVwGqAZQB/wFXAYIBvQH/ - AT4BXQFvAf8BVwGWAV8B/wGMAbYBpQH/ATYBYQGcAf8BLQFZAZQB/wE2AV0BjAH/AR0BRQFvAf9YAAMD - AQQDAgEDAyEBMAFYAl8B4wEsAVMBmwH/AScBTAGTAf8BFQE7AYEB/wMkATYYAAG9AcMBtQL/AvcB/wHG + Af8B9wHvAecB/wH3Ae8B5wH/AfcB7wHnAf8BnAGeAZQB/wgAAYwB2wGlAf8BTQGqAZQB/wFNAYIBvQH/ + ATQBUwFlAf8BTQGWAVUB/wGMAbYBpQH/ASwBVwGcAf8BIwFPAZQB/wEsAVMBjAH/ARMBOwFlAf9YAAMD + AQQDAgEDAyEBMAFYAl8B4wEiAUkBmwH/AR0BQgGTAf8BCwExAYEB/wMkATYYAAG9AcMBtQL/AvcB/wHG Aa4BnBH/Ad4BwwG9Af8B9wHvAecB/wHGAbIBpQH/AcYBsgGlAf8BxgGyAaUB/wHGAbIBpQH/AcYBsgGl - Af8B9wHvAecB/wGcAZ4BlAH/DAABNgFpAW8B/wFXAYIBvQH/AT4BXQFvAf8D9wH/A/cB/wFvAZ4BxgH/ - AVcBigG1Af8BRgFxAaUB/wE2AV0BjAH/WAADBAEGBAADRwGCA2IB9gFKAZABtgH/ATsBgQGnAf8BIQFJ + Af8B9wHvAecB/wGcAZ4BlAH/DAABLAFfAWUB/wFNAYIBvQH/ATQBUwFlAf8D9wH/A/cB/wFlAZ4BxgH/ + AU0BigG1Af8BPAFnAaUB/wEsAVMBjAH/WAADBAEGBAADRwGCA2IB9gFAAZABtgH/ATEBgQGnAf8BFwE/ AZAB/wNSAaEDBQEHFAABvQHDAbUC/wL3Af8BzgG6AaUR/wHeAcMBvQH/AfcB7wHnAf8B1gHDAbUB/wHW - AccBvQH/AdYBxwG9Af8B1gHHAb0B/wHWAcMBtQH/AfcB7wHnAf8BnAGeAZQB/wgAAWcBhgGUAf8BPgFt - AZwB/wGMAbIB3gH/AYQBqgHWAf8BVwFlAYQB/wGMAZYBpQH/AZQBugHeAf8BhAGuAdYB/wFXAZIBvQH/ - AS0BWQGMAf8BXwFlAWcB/1QAAwQBBgMAAQEDPwFsAVwBbwF2AfgBggGoAc4B/wFKAZEBuAH/ASwBTgGS - Af8BEQEhATEB/wMkATUUAAG9AcMBtQP/AfcB/wHOAcMBtRH/AdYBxwG9Af8B9wHvAecB/wHWAcMBtQH/ - AdYBwwG1Af8B1gHDAbUB/wHWAccBvQH/AdYBwwG1Av8B9wHvAf8BnAGeAZQB/wgAAU4BjgGlAf8BlAG2 - Ad4B/wG1AdsC/wGlAc8C/wFXAXEBnAH/AaUBtgHGAf8BvQHbAv8BnAHHAe8B/wFfAZ4BzgH/AS0BOQFG - Af8BLQEsASUB/1QAAwEBAgMAAQEBwwHQAdoB/wFqAXoBhAH5AZsBvwHlAf8BUwGdAccB/wErAT8BVAH/ - ARMBDwEMAf8DMgFQFAABvQHDAbUF/wHvAd8B1gH/AcYBsgGlAf8BxgGyAaUB/wHGAbIBpQH/AcYBrgGc - Af8B7wHfAdYB/wH3Ae8B5wH/AcYBsgGlAf8BxgGyAaUB/wHGAbIBpQH/AcYBsgGlAf8BxgGyAaUC/wH3 - Ae8B/wGcAZYBlAH/CAABXwGeAb0B/wGtAc8B5wH/Ad4B+wL/AaUBywH3Af8BXwGeAc4B/wHeAecB7wH/ - Aa0BvgHWAf8BhAGeAb0B/wFXAYIBnAH/AS0BLAEtAf8BRgFBAT4B/1cAAQEIAAJZAVwB9QFfAZIBpgH/ - AUkBXAGOAf8BLwEyATYB/wEZARgBFwH/AyQBNRQAAb0BwwG1Bf8B9wHvAecC/wHvAecB/wH3Ae8B5wL/ - AfcB7wH/AfcB7wHnAf8B9wHvAecH/wH3Av8C9wH/A/cB/wH3AfMB7wH/AfcB7wHnA/8B9wH/AZwBngGU - Af8IAAFvAaoBvQH/AWcBrgHGAf8BnAHDAc4B/wGUAbYB3gH/AUYBaQGcAf8EAAHGAb4BvQH/AYQBcQFv - Af8BVwFVAU4B/wFXAVEBTgH/XwABAQQAA0wBkgNiAekBQwE/ATwB/ANZAfIDUQGcAwQBBRQAAb0BwwG1 - Hf8BnAGeAZQB/wG9Ab4BtQH/Ab0BvgG1Af8BvQHDAbUB/wG9Ab4BtQH/Ab0BvgG1Af8BvQG+AbUB/wG9 - Ab4BtQH/CAABrQHDAcYB/wGEAccB1gH/AVcBngG1Af8BTgGWAbUB/wEtAV0BbwH/bAADCgENBAADCgEN - BAADFQEdAygBPAMeASscAAG9AcMBtQH/Ab0BwwG1Af8BvQHDAbUB/wG9AcMBtQH/Ab0BwwG1Af8BvQHD - AbUB/wG9AcMBtQH/Ab0BwwG1Af8BvQHDAbUB/ygAAc4C7wH/AaUB4wH3Af8BhAHLAdYB/wFvAbIBvQH/ - /wBlAAFCAU0BPgcAAT4DAAEoAwABQAMAARADAAEBAQABAQUAAYAXAAP/AQAC/wHwAQcB+AEBAgAB4AEP - AfABBwH4AwABwAEPAfABBwH4AwABwAEPAgABwAMAAcABDwIAAYABAQIAAcABDwIAAYABAwIAAeABDwIA - AYABBwIAAcABLwIAAcABDwIAAcABPwIAAeABDwIAAdABHwIAAcABBwIAAcABHwIAAcABBwIAAcABHwIA - AcABBwIAAdgBHwIAAcEBDwIAAegBHwIAAcEB/wIAAdQBfwEAAX8B4QH/AgAG/wIACw== + AccBvQH/AdYBxwG9Af8B1gHHAb0B/wHWAcMBtQH/AfcB7wHnAf8BnAGeAZQB/wgAAV0BhgGUAf8BNAFj + AZwB/wGMAbIB3gH/AYQBqgHWAf8BTQFbAYQB/wGMAZYBpQH/AZQBugHeAf8BhAGuAdYB/wFNAZIBvQH/ + ASMBTwGMAf8BVQFbAV0B/1QAAwQBBgMAAQEDPwFsAVwBXQFrAfgBggGoAc4B/wFAAZEBuAH/ASIBRAGS + Af8BBwEXAScB/wMkATUUAAG9AcMBtQP/AfcB/wHOAcMBtRH/AdYBxwG9Af8B9wHvAecB/wHWAcMBtQH/ + AdYBwwG1Af8B1gHDAbUB/wHWAccBvQH/AdYBwwG1Av8B9wHvAf8BnAGeAZQB/wgAAUQBjgGlAf8BlAG2 + Ad4B/wG1AdsC/wGlAc8C/wFNAWcBnAH/AaUBtgHGAf8BvQHbAv8BnAHHAe8B/wFVAZ4BzgH/ASMBLwE8 + Af8BIwEiARsB/1QAAwEBAgMAAQEBwwHQAdoB/wJqAXEB+QGbAb8B5QH/AUkBnQHHAf8BIQE1AUoB/wEJ + AQUBAgH/AzIBUBQAAb0BwwG1Bf8B7wHfAdYB/wHGAbIBpQH/AcYBsgGlAf8BxgGyAaUB/wHGAa4BnAH/ + Ae8B3wHWAf8B9wHvAecB/wHGAbIBpQH/AcYBsgGlAf8BxgGyAaUB/wHGAbIBpQH/AcYBsgGlAv8B9wHv + Af8BnAGWAZQB/wgAAVUBngG9Af8BrQHPAecB/wHeAfsC/wGlAcsB9wH/AVUBngHOAf8B3gHnAe8B/wGt + Ab4B1gH/AYQBngG9Af8BTQGCAZwB/wEjASIBIwH/ATwBNwE0Af9XAAEBCAADWQH1AVUBkgGmAf8BPwFS + AY4B/wElASgBLAH/AQ8BDgENAf8DJAE1FAABvQHDAbUF/wH3Ae8B5wL/Ae8B5wH/AfcB7wHnAv8B9wHv + Af8B9wHvAecB/wH3Ae8B5wf/AfcC/wL3Af8D9wH/AfcB8wHvAf8B9wHvAecD/wH3Af8BnAGeAZQB/wgA + AWUBqgG9Af8BXQGuAcYB/wGcAcMBzgH/AZQBtgHeAf8BPAFfAZwB/wQAAcYBvgG9Af8BhAFnAWUB/wFN + AUsBRAH/AU0BRwFEAf9fAAEBBAADTAGSA2IB6QE3ATUBMgH8A1kB8gNRAZwDBAEFFAABvQHDAbUd/wGc + AZ4BlAH/Ab0BvgG1Af8BvQG+AbUB/wG9AcMBtQH/Ab0BvgG1Af8BvQG+AbUB/wG9Ab4BtQH/Ab0BvgG1 + Af8IAAGtAcMBxgH/AYQBxwHWAf8BTQGeAbUB/wFEAZYBtQH/ASMBUwFlAf9sAAMKAQ0EAAMKAQ0EAAMV + AR0DKAE8Ax4BKxwAAb0BwwG1Af8BvQHDAbUB/wG9AcMBtQH/Ab0BwwG1Af8BvQHDAbUB/wG9AcMBtQH/ + Ab0BwwG1Af8BvQHDAbUB/wG9AcMBtQH/KAABzgLvAf8BpQHjAfcB/wGEAcsB1gH/AWUBsgG9Af//AGUA + AUIBTQE+BwABPgMAASgDAAFAAwABEAMAAQEBAAEBBQABgBcAA/8BAAL/AfABBwH4AQECAAHgAQ8B8AEH + AfgDAAHAAQ8B8AEHAfgDAAHAAQ8CAAHAAwABwAEPAgABgAEBAgABwAEPAgABgAEDAgAB4AEPAgABgAEH + AgABwAEvAgABwAEPAgABwAE/AgAB4AEPAgAB0AEfAgABwAEHAgABwAEfAgABwAEHAgABwAEfAgABwAEH + AgAB2AEfAgABwQEPAgAB6AEfAgABwQH/AgAB1AF/AQABfwHhAf8CAAb/AgAL - + AAABAAoAAAAAAAEACADKTwAApgAAADAwAAABAAgAqA4AAHBQAAAgIAAAAQAIAKgIAAAYXwAAGBgAAAEA diff --git a/WebsitePanel/Sources/Tools/WebsitePanel.Import.Enterprise/Global.cs b/WebsitePanel/Sources/Tools/WebsitePanel.Import.Enterprise/Global.cs index c2c1a389..539d7e3d 100644 --- a/WebsitePanel/Sources/Tools/WebsitePanel.Import.Enterprise/Global.cs +++ b/WebsitePanel/Sources/Tools/WebsitePanel.Import.Enterprise/Global.cs @@ -81,6 +81,7 @@ namespace WebsitePanel.Import.Enterprise public static string ErrorMessage; public static bool ImportAccountsOnly; public static bool HasErrors; + public static int defaultMailboxPlanId; } } diff --git a/WebsitePanel/Sources/Tools/WebsitePanel.Import.Enterprise/OrganizationImporter.cs b/WebsitePanel/Sources/Tools/WebsitePanel.Import.Enterprise/OrganizationImporter.cs index e8f7f563..3068f97d 100644 --- a/WebsitePanel/Sources/Tools/WebsitePanel.Import.Enterprise/OrganizationImporter.cs +++ b/WebsitePanel/Sources/Tools/WebsitePanel.Import.Enterprise/OrganizationImporter.cs @@ -51,7 +51,6 @@ namespace WebsitePanel.Import.Enterprise private ProgressBar progressBar; private ApplicationForm appForm; private Button btnImport; - private Thread thread; @@ -780,27 +779,53 @@ namespace WebsitePanel.Import.Enterprise return userId; } int mailboxType = (int)type.Value; - ExchangeAccountType accountType = ExchangeAccountType.Undefined; - switch (mailboxType) - { - case 1073741824: - Log.WriteInfo("Account type : mailbox"); - accountType = ExchangeAccountType.Mailbox; - break; - case 7: - Log.WriteInfo("Account type : room"); - accountType = ExchangeAccountType.Room; - break; - case 8: - Log.WriteInfo("Account type : equipment"); - accountType = ExchangeAccountType.Equipment; - break; - default: - Log.WriteInfo("Account type : unknown"); - return userId; - } - UpdateExchangeAccount(userId, accountName, accountType, displayName, email, false, string.Empty, samName, string.Empty); + int mailboxTypeDetails = 0; + PropertyValueCollection typeDetails = entry.Properties["msExchRecipientTypeDetails"]; + if (typeDetails!=null) + { + if (typeDetails.Value != null) + { + try + { + object adsLargeInteger = typeDetails.Value; + mailboxTypeDetails = (Int32)adsLargeInteger.GetType().InvokeMember("LowPart", System.Reflection.BindingFlags.GetProperty, null, adsLargeInteger, null); + } + catch { } // just skip + + } + } + + ExchangeAccountType accountType = ExchangeAccountType.Undefined; + + if (mailboxTypeDetails == 4) + { + Log.WriteInfo("Account type : shared mailbox"); + accountType = ExchangeAccountType.SharedMailbox; + } + else + { + switch (mailboxType) + { + case 1073741824: + Log.WriteInfo("Account type : mailbox"); + accountType = ExchangeAccountType.Mailbox; + break; + case 7: + Log.WriteInfo("Account type : room"); + accountType = ExchangeAccountType.Room; + break; + case 8: + Log.WriteInfo("Account type : equipment"); + accountType = ExchangeAccountType.Equipment; + break; + default: + Log.WriteInfo("Account type : unknown"); + return userId; + } + } + + UpdateExchangeAccount(userId, accountName, accountType, displayName, email, false, string.Empty, samName, string.Empty, Global.defaultMailboxPlanId); string defaultEmail = (string)entry.Properties["extensionAttribute3"].Value; @@ -813,18 +838,16 @@ namespace WebsitePanel.Import.Enterprise if (emailAddress.ToLower().StartsWith("smtp:")) emailAddress = emailAddress.Substring(5); - - if (!emailAddress.Equals(defaultEmail, StringComparison.InvariantCultureIgnoreCase)) + if (EmailAddressExists(emailAddress)) { - if (EmailAddressExists(emailAddress)) - { - Log.WriteInfo(string.Format("Email address {0} already exists. Skipped", emailAddress)); - continue; - } - // register email address - Log.WriteInfo(string.Format("Importing email {0}", emailAddress)); - AddAccountEmailAddress(userId, emailAddress); + if ((!emailAddress.Equals(defaultEmail, StringComparison.InvariantCultureIgnoreCase)) && (!emailAddress.Equals(email, StringComparison.InvariantCultureIgnoreCase))) + Log.WriteInfo(string.Format("Email address {0} already exists. Skipped", emailAddress)); + + continue; } + // register email address + Log.WriteInfo(string.Format("Importing email {0}", emailAddress)); + AddAccountEmailAddress(userId, emailAddress); } } Log.WriteEnd("User imported"); @@ -963,7 +986,7 @@ namespace WebsitePanel.Import.Enterprise private static void UpdateExchangeAccount(int accountId, string accountName, ExchangeAccountType accountType, string displayName, string primaryEmailAddress, bool mailEnabledPublicFolder, - string mailboxManagerActions, string samAccountName, string accountPassword) + string mailboxManagerActions, string samAccountName, string accountPassword, int mailboxPlanId) { DataProvider.UpdateExchangeAccount(accountId, accountName, @@ -973,7 +996,7 @@ namespace WebsitePanel.Import.Enterprise mailEnabledPublicFolder, mailboxManagerActions, samAccountName, - CryptoUtils.Encrypt(accountPassword), 0, -1, string.Empty, false); + CryptoUtils.Encrypt(accountPassword), mailboxPlanId , -1, string.Empty, false); } } } 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.Base/Servers/DomainInfo.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/Servers/DomainInfo.cs index a05cfdc7..1fbca5da 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/Servers/DomainInfo.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/Servers/DomainInfo.cs @@ -147,5 +147,9 @@ namespace WebsitePanel.EnterpriseServer get { return this.instantAliasName; } set { this.instantAliasName = value; } } + + public DateTime? CreationDate { get; set; } + public DateTime? ExpirationDate { get; set; } + public DateTime? LastUpdateDate { get; set; } } } diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/Users/UserSettings.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/Users/UserSettings.cs index b573fbd6..da8ad05c 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/Users/UserSettings.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/Users/UserSettings.cs @@ -45,6 +45,8 @@ namespace WebsitePanel.EnterpriseServer public const string HOSTED_SOLUTION_REPORT = "HostedSoluitonReportSummaryLetter"; public const string ORGANIZATION_USER_SUMMARY_LETTER = "OrganizationUserSummaryLetter"; public const string VPS_SUMMARY_LETTER = "VpsSummaryLetter"; + public const string DOMAIN_EXPIRATION_LETTER = "DomainExpirationLetter"; + public const string DOMAIN_LOOKUP_LETTER = "DomainLookupLetter"; public const string WEB_POLICY = "WebPolicy"; public const string FTP_POLICY = "FtpPolicy"; public const string MAIL_POLICY = "MailPolicy"; diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Data/DataProvider.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Data/DataProvider.cs index 98e2a54d..b7e2acf0 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Data/DataProvider.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Data/DataProvider.cs @@ -36,6 +36,8 @@ using Microsoft.ApplicationBlocks.Data; using System.Collections.Generic; using Microsoft.Win32; using WebsitePanel.Providers.RemoteDesktopServices; +using WebsitePanel.Providers.DNS; +using WebsitePanel.Providers.DomainLookup; namespace WebsitePanel.EnterpriseServer { @@ -4719,5 +4721,90 @@ namespace WebsitePanel.EnterpriseServer } #endregion + + #region MX|NX Services + + public static IDataReader GetAllPackages() + { + return SqlHelper.ExecuteReader( + ConnectionString, + CommandType.StoredProcedure, + "GetAllPackages" + ); + } + + public static IDataReader GetDomainDnsRecords(int domainId, DnsRecordType recordType) + { + return SqlHelper.ExecuteReader( + ConnectionString, + CommandType.StoredProcedure, + "GetDomainDnsRecords", + new SqlParameter("@DomainId", domainId), + new SqlParameter("@RecordType", recordType) + ); + } + + public static void AddDomainDnsRecord(DnsRecordInfo domainDnsRecord) + { + SqlHelper.ExecuteReader( + ConnectionString, + CommandType.StoredProcedure, + "AddDomainDnsRecord", + new SqlParameter("@DomainId", domainDnsRecord.DomainId), + new SqlParameter("@RecordType", domainDnsRecord.RecordType), + new SqlParameter("@DnsServer", domainDnsRecord.DnsServer), + new SqlParameter("@Value", domainDnsRecord.Value), + new SqlParameter("@Date", domainDnsRecord.Date) + ); + } + + public static IDataReader GetScheduleTaskEmailTemplate(string taskId) + { + return SqlHelper.ExecuteReader( + ConnectionString, + CommandType.StoredProcedure, + "GetScheduleTaskEmailTemplate", + new SqlParameter("@taskId", taskId) + ); + } + + public static void DeleteDomainDnsRecord(int id) + { + SqlHelper.ExecuteReader( + ConnectionString, + CommandType.StoredProcedure, + "DeleteDomainDnsRecord", + new SqlParameter("@Id", id) + ); + } + + public static void UpdateDomainCreationDate(int domainId, DateTime date) + { + UpdateDomainDate(domainId, "UpdateDomainCreationDate", date); + } + + public static void UpdateDomainExpirationDate(int domainId, DateTime date) + { + UpdateDomainDate(domainId, "UpdateDomainExpirationDate", date); + } + + public static void UpdateDomainLastUpdateDate(int domainId, DateTime date) + { + UpdateDomainDate(domainId, "UpdateDomainLastUpdateDate", date); + } + + private static void UpdateDomainDate(int domainId, string stroredProcedure, DateTime date) + { + SqlHelper.ExecuteReader( + ConnectionString, + CommandType.StoredProcedure, + stroredProcedure, + new SqlParameter("@DomainId", domainId), + new SqlParameter("@Date", date) + ); + } + + #endregion + } } diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/ExchangeServer/ExchangeServerController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/ExchangeServer/ExchangeServerController.cs index d0e48fee..df7c368a 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.Room) || (accountType == ExchangeAccountType.Equipment)) + { + 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.EnterpriseServer.Code/OperatingSystems/OperatingSystemController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/OperatingSystems/OperatingSystemController.cs index d851ac44..c3d2fa9f 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/OperatingSystems/OperatingSystemController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/OperatingSystems/OperatingSystemController.cs @@ -40,6 +40,9 @@ using WebsitePanel.Providers; using WebsitePanel.Providers.OS; using OS = WebsitePanel.Providers.OS; using System.Collections; +using WebsitePanel.Providers.DomainLookup; +using WebsitePanel.Providers.DNS; +using System.Linq; namespace WebsitePanel.EnterpriseServer @@ -811,5 +814,24 @@ namespace WebsitePanel.EnterpriseServer #endregion + + #region Domain DNS Records lookup + + public static List GetDomainRecords(int packageId, string domain, string dnsServer, DnsRecordType recordType) + { + List records = new List(); + + // load OS service + int serviceId = PackageController.GetPackageServiceId(packageId, ResourceGroups.Os); + + var os = GetOS(serviceId); + + records = os.GetDomainDnsRecords(domain, dnsServer, recordType).ToList(); + + return records; + } + + #endregion + } } diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/DomainExpirationTask.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/DomainExpirationTask.cs new file mode 100644 index 00000000..f3cbf413 --- /dev/null +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/DomainExpirationTask.cs @@ -0,0 +1,186 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using System.Net.Mail; +using System.Text; +using System.Text.RegularExpressions; +using WebsitePanel.Providers.DomainLookup; +using Whois.NET; + +namespace WebsitePanel.EnterpriseServer +{ + public class DomainExpirationTask: SchedulerTask + { + private static readonly string TaskId = "SCHEDULE_TASK_DOMAIN_EXPIRATION"; + + // Input parameters: + private static readonly string DaysBeforeNotify = "DAYS_BEFORE"; + private static readonly string MailToParameter = "MAIL_TO"; + private static readonly string EnableNotification = "ENABLE_NOTIFICATION"; + private static readonly string IncludeNonExistenDomains = "INCLUDE_NONEXISTEN_DOMAINS"; + + + private static readonly string MailBodyTemplateParameter = "MAIL_BODY"; + private static readonly string MailBodyDomainRecordTemplateParameter = "MAIL_DOMAIN_RECORD"; + + public override void DoWork() + { + BackgroundTask topTask = TaskManager.TopTask; + var domainUsers = new Dictionary(); + var checkedDomains = new List(); + var expiredDomains = new List(); + var nonExistenDomains = new List(); + + // get input parameters + int daysBeforeNotify; + bool sendEmailNotifcation = Convert.ToBoolean( topTask.GetParamValue(EnableNotification)); + bool includeNonExistenDomains = Convert.ToBoolean(topTask.GetParamValue(IncludeNonExistenDomains)); + + // check input parameters + if (String.IsNullOrEmpty((string)topTask.GetParamValue("MAIL_TO"))) + { + TaskManager.WriteWarning("The e-mail message has not been sent because 'Mail To' is empty."); + return; + } + + int.TryParse((string)topTask.GetParamValue(DaysBeforeNotify), out daysBeforeNotify); + + var user = UserController.GetUser(topTask.EffectiveUserId); + + var packages = GetUserPackages(user.UserId, user.Role); + + + foreach (var package in packages) + { + var domains = ServerController.GetDomains(package.PackageId); + + var subDomains = domains.Where(x => x.IsSubDomain).ToList(); + + var topLevelDomains = domains = domains.Where(x => !x.IsSubDomain && !x.IsDomainPointer).ToList(); //Selecting top-level domains + + domains = topLevelDomains.Where(x => x.CreationDate == null || x.ExpirationDate == null ? true : CheckDomainExpiration(x.ExpirationDate, daysBeforeNotify)).ToList(); // selecting expired or with empty expire date domains + + var domainUser = UserController.GetUser(package.UserId); + + if (!domainUsers.ContainsKey(package.PackageId)) + { + domainUsers.Add(package.PackageId, domainUser); + } + + foreach (var domain in domains) + { + if (checkedDomains.Contains(domain.DomainId)) + { + continue; + } + + checkedDomains.Add(domain.DomainId); + + ServerController.UpdateDomainRegistrationData(domain); + + if (CheckDomainExpiration(domain.ExpirationDate, daysBeforeNotify)) + { + expiredDomains.Add(domain); + } + + if (domain.ExpirationDate == null && domain.CreationDate == null) + { + nonExistenDomains.Add(domain); + } + } + + foreach (var subDomain in subDomains) + { + var mainDomain = topLevelDomains.Where(x => subDomain.DomainName.Contains(x.DomainName)).OrderByDescending(s => s.DomainName.Length).FirstOrDefault(); ; + + if (mainDomain != null) + { + ServerController.UpdateDomainRegistrationData(subDomain, mainDomain.CreationDate, mainDomain.ExpirationDate); + } + } + } + + expiredDomains = expiredDomains.GroupBy(p => p.DomainId).Select(g => g.First()).ToList(); + + if (expiredDomains.Count > 0 && sendEmailNotifcation) + { + SendMailMessage(user, expiredDomains, domainUsers, nonExistenDomains, includeNonExistenDomains); + } + } + + private IEnumerable GetUserPackages(int userId,UserRole userRole) + { + var packages = new List(); + + switch (userRole) + { + case UserRole.Administrator: + { + packages = ObjectUtils.CreateListFromDataReader(DataProvider.GetAllPackages()); + break; + } + default: + { + packages = PackageController.GetMyPackages(userId); + break; + } + } + + return packages; + } + + private bool CheckDomainExpiration(DateTime? date, int daysBeforeNotify) + { + if (date == null) + { + return false; + } + + return (date.Value - DateTime.Now).Days < daysBeforeNotify; + } + + private void SendMailMessage(UserInfo user, IEnumerable domains, Dictionary domainUsers, IEnumerable nonExistenDomains, bool includeNonExistenDomains) + { + BackgroundTask topTask = TaskManager.TopTask; + + UserSettings settings = UserController.GetUserSettings(user.UserId, UserSettings.DOMAIN_EXPIRATION_LETTER); + + string from = settings["From"]; + + var bcc = settings["CC"]; + + string subject = settings["Subject"]; + string body = user.HtmlMail ? settings["HtmlBody"] : settings["TextBody"]; + bool isHtml = user.HtmlMail; + + MailPriority priority = MailPriority.Normal; + if (!String.IsNullOrEmpty(settings["Priority"])) + priority = (MailPriority)Enum.Parse(typeof(MailPriority), settings["Priority"], true); + + // input parameters + string mailTo = (string)topTask.GetParamValue("MAIL_TO"); + + Hashtable items = new Hashtable(); + + items["user"] = user; + items["Domains"] = domains.Select(x => new { DomainName = x.DomainName, + ExpirationDate = x.ExpirationDate, + Customer = string.Format("{0} {1}", domainUsers[x.PackageId].FirstName, domainUsers[x.PackageId].LastName) }); + + items["IncludeNonExistenDomains"] = includeNonExistenDomains; + + items["NonExistenDomains"] = nonExistenDomains.Select(x => new + { + DomainName = x.DomainName, + Customer = string.Format("{0} {1}", domainUsers[x.PackageId].FirstName, domainUsers[x.PackageId].LastName) + }); + + + body = PackageController.EvaluateTemplate(body, items); + + // send mail message + MailHelper.SendMessage(from, mailTo, bcc, subject, body, priority, isHtml); + } + } +} diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/DomainLookupViewTask.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/DomainLookupViewTask.cs new file mode 100644 index 00000000..930f40c7 --- /dev/null +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/DomainLookupViewTask.cs @@ -0,0 +1,234 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using System.Net.Mail; +using System.Text; +using WebsitePanel.Providers.DNS; +using WebsitePanel.Providers.DomainLookup; + +namespace WebsitePanel.EnterpriseServer +{ + public class DomainLookupViewTask : SchedulerTask + { + private static readonly string TaskId = "SCHEDULE_TASK_DOMAIN_LOOKUP"; + + // Input parameters: + private static readonly string DnsServersParameter = "DNS_SERVERS"; + private static readonly string MailToParameter = "MAIL_TO"; + + private static readonly string MailBodyTemplateParameter = "MAIL_BODY"; + private static readonly string MailBodyDomainRecordTemplateParameter = "MAIL_DOMAIN_RECORD"; + + public override void DoWork() + { + BackgroundTask topTask = TaskManager.TopTask; + + List domainsChanges = new List(); + + // get input parameters + string dnsServersString = (string)topTask.GetParamValue(DnsServersParameter); + + // check input parameters + if (String.IsNullOrEmpty(dnsServersString)) + { + TaskManager.WriteWarning("Specify 'DNS' task parameter."); + return; + } + + if (String.IsNullOrEmpty((string)topTask.GetParamValue("MAIL_TO"))) + { + TaskManager.WriteWarning("The e-mail message has not been sent because 'Mail To' is empty."); + return; + } + + var user = UserController.GetUser(topTask.UserId); + + var dnsServers = dnsServersString.Split(';'); + + var packages = ObjectUtils.CreateListFromDataReader(DataProvider.GetAllPackages()); + + foreach (var package in packages) + { + var domains = ServerController.GetDomains(package.PackageId); + + domains = domains.Where(x => !x.IsSubDomain && !x.IsDomainPointer).ToList(); //Selecting top-level domains + + domains = domains.Where(x => x.ZoneItemId > 0).ToList(); //Selecting only dns enabled domains + + foreach (var domain in domains) + { + if (domainsChanges.Any(x => x.DomainName == domain.DomainName)) + { + continue; + } + + DomainDnsChanges domainChanges = new DomainDnsChanges(); + domainChanges.DomainName = domain.DomainName; + + var mxRecords = ObjectUtils.CreateListFromDataReader(DataProvider.GetDomainDnsRecords(domain.DomainId, DnsRecordType.MX)); + var nsRecords = ObjectUtils.CreateListFromDataReader(DataProvider.GetDomainDnsRecords(domain.DomainId, DnsRecordType.NS)); + + //execute server + foreach (var dnsServer in dnsServers) + { + var dnsMxRecords = OperatingSystemController.GetDomainRecords(domain.PackageId, domain.DomainName, dnsServer, DnsRecordType.MX); + var dnsNsRecords = OperatingSystemController.GetDomainRecords(domain.PackageId, domain.DomainName, dnsServer, DnsRecordType.NS); + + FillRecordData(dnsMxRecords, domain, dnsServer); + FillRecordData(dnsNsRecords, domain, dnsServer); + + domainChanges.DnsChanges.AddRange(ApplyDomainRecordsChanges(mxRecords, dnsMxRecords, dnsServer)); + domainChanges.DnsChanges.AddRange(ApplyDomainRecordsChanges(nsRecords, dnsNsRecords, dnsServer)); + } + + domainsChanges.Add(domainChanges); + } + } + + var changedDomains = FindDomainsWithChangedRecords(domainsChanges); + + if (changedDomains.Any()) + { + SendMailMessage(user,changedDomains); + } + } + + + + #region Helpers + + private IEnumerable FindDomainsWithChangedRecords(IEnumerable domainsChanges) + { + var changedDomains = new List(); + + foreach (var domainChanges in domainsChanges) + { + var firstTimeAdditon = domainChanges.DnsChanges.All(x => x.Status == DomainDnsRecordStatuses.Added); + + if (firstTimeAdditon) + { + continue; + } + + bool isChanged = domainChanges.DnsChanges.Any(d => d.Status != DomainDnsRecordStatuses.NotChanged); + + if (isChanged) + { + changedDomains.Add(domainChanges); + } + } + + return changedDomains; + } + + private IEnumerable ApplyDomainRecordsChanges(List dbRecords, List dnsRecords, string dnsServer) + { + var dnsRecordChanges = new List(); + + var filteredDbRecords = dbRecords.Where(x => x.DnsServer == dnsServer); + + foreach (var record in filteredDbRecords) + { + var dnsRecord = dnsRecords.FirstOrDefault(x => x.Value == record.Value); + + if (dnsRecord != null) + { + dnsRecordChanges.Add(new DnsRecordInfoChange { Record = record, Type = record.RecordType, Status = DomainDnsRecordStatuses.NotChanged, DnsServer = dnsServer }); + + dnsRecords.Remove(dnsRecord); + } + else + { + dnsRecordChanges.Add(new DnsRecordInfoChange { Record = record, Type = record.RecordType, Status = DomainDnsRecordStatuses.Removed, DnsServer = dnsServer }); + + RemoveRecord(record); + } + } + + foreach (var record in dnsRecords) + { + dnsRecordChanges.Add(new DnsRecordInfoChange { Record = record, Type = record.RecordType, Status = DomainDnsRecordStatuses.Added, DnsServer= dnsServer}); + + AddRecord(record); + } + + return dnsRecordChanges; + } + + private void FillRecordData(IEnumerable records, DomainInfo domain, string dnsServer) + { + foreach (var record in records) + { + FillRecordData(record, domain, dnsServer); + } + } + + private void FillRecordData(DnsRecordInfo record, DomainInfo domain, string dnsServer) + { + record.DomainId = domain.DomainId; + record.Date = DateTime.Now; + record.DnsServer = dnsServer; + } + + private void RemoveRecords(IEnumerable dnsRecords) + { + foreach (var record in dnsRecords) + { + RemoveRecord(record); + } + } + + private void RemoveRecord(DnsRecordInfo dnsRecord) + { + DataProvider.DeleteDomainDnsRecord(dnsRecord.Id); + } + + private void AddRecords(IEnumerable dnsRecords) + { + foreach (var record in dnsRecords) + { + AddRecord(record); + } + } + + private void AddRecord(DnsRecordInfo dnsRecord) + { + DataProvider.AddDomainDnsRecord(dnsRecord); + } + + private void SendMailMessage(UserInfo user, IEnumerable domainsChanges) + { + BackgroundTask topTask = TaskManager.TopTask; + + UserSettings settings = UserController.GetUserSettings(user.UserId, UserSettings.DOMAIN_LOOKUP_LETTER); + + string from = settings["From"]; + + var bcc = settings["CC"]; + + string subject = settings["Subject"]; + string body = user.HtmlMail ? settings["HtmlBody"] : settings["TextBody"]; + bool isHtml = user.HtmlMail; + + MailPriority priority = MailPriority.Normal; + if (!String.IsNullOrEmpty(settings["Priority"])) + priority = (MailPriority)Enum.Parse(typeof(MailPriority), settings["Priority"], true); + + // input parameters + string mailTo = (string)topTask.GetParamValue("MAIL_TO"); + + Hashtable items = new Hashtable(); + + items["user"] = user; + items["Domains"] = domainsChanges; + + body = PackageController.EvaluateTemplate(body, items); + + // send mail message + MailHelper.SendMessage(from, mailTo, bcc, subject, body, priority, isHtml); + } + + #endregion + } +} diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Servers/ServerController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Servers/ServerController.cs index 02050909..ecb354b9 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Servers/ServerController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Servers/ServerController.cs @@ -39,6 +39,8 @@ using WebsitePanel.Server; using WebsitePanel.Providers.ResultObjects; using WebsitePanel.Providers.Web; using WebsitePanel.Providers.HostedSolution; +using Whois.NET; +using System.Text.RegularExpressions; namespace WebsitePanel.EnterpriseServer { @@ -49,6 +51,24 @@ namespace WebsitePanel.EnterpriseServer { private const string LOG_SOURCE_SERVERS = "SERVERS"; + private static List _createdDatePatterns = new List { @"Creation Date:(.+)", // base + @"created:(.+)", + @"Created On:(.+)", + @"Domain Registration Date:(.+)", + @"Domain Create Date:(.+)", + @"Registered on:(.+)"}; + + private static List _expiredDatePatterns = new List { @"Expiration Date:(.+)", // base + @"Registry Expiry Date:(.+)", //.org + @"paid-till:(.+)", //.ru + @"Expires On:(.+)", //.name + @"Domain Expiration Date:(.+)", //.us + @"renewal date:(.+)", //.pl + @"Expiry date:(.+)", //.uk + @"anniversary:(.+)", //.fr + @"expires:(.+)" //.fi + }; + #region Servers public static List GetAllServers() { @@ -1787,6 +1807,8 @@ namespace WebsitePanel.EnterpriseServer ServerController.AddServiceDNSRecords(packageId, ResourceGroups.VPS, domain, ""); ServerController.AddServiceDNSRecords(packageId, ResourceGroups.VPSForPC, domain, ""); } + + UpdateDomainRegistrationData(domain); } // add instant alias @@ -2637,6 +2659,67 @@ namespace WebsitePanel.EnterpriseServer TaskManager.CompleteTask(); } } + + public static DomainInfo UpdateDomainRegistrationData(DomainInfo domain) + { + try + { + DataProvider.UpdateDomainLastUpdateDate(domain.DomainId, DateTime.Now); + + var whoisResult = WhoisClient.Query(domain.DomainName); + + var createdDate = GetDomainInfoDate(whoisResult.Raw, _createdDatePatterns); + var expiredDate = GetDomainInfoDate(whoisResult.Raw, _expiredDatePatterns); + + if (createdDate != null) + { + domain.CreationDate = createdDate; + DataProvider.UpdateDomainCreationDate(domain.DomainId, createdDate.Value); + } + + if (expiredDate != null) + { + domain.ExpirationDate = expiredDate; + DataProvider.UpdateDomainExpirationDate(domain.DomainId, expiredDate.Value); + } + } + catch (Exception e) + { + //wrong domain + } + + return domain; + } + + public static DomainInfo UpdateDomainRegistrationData(DomainInfo domain, DateTime? creationDate, DateTime? expirationDate) + { + domain.CreationDate = creationDate; + DataProvider.UpdateDomainCreationDate(domain.DomainId, creationDate.Value); + domain.ExpirationDate = expirationDate; + DataProvider.UpdateDomainExpirationDate(domain.DomainId, expirationDate.Value); + DataProvider.UpdateDomainLastUpdateDate(domain.DomainId, DateTime.Now); + + return domain; + } + + private static DateTime? GetDomainInfoDate(string raw, IEnumerable patterns) + { + foreach (var createdRegex in patterns) + { + var regex = new Regex(createdRegex, RegexOptions.IgnoreCase); + + foreach (Match match in regex.Matches(raw)) + { + if (match.Success && match.Groups.Count == 2) + { + return DateTime.Parse(match.Groups[1].ToString().Trim()); + } + } + } + + return null; + } + #endregion #region DNS Zones diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/WebsitePanel.EnterpriseServer.Code.csproj b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/WebsitePanel.EnterpriseServer.Code.csproj index 3fead25f..60954187 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/WebsitePanel.EnterpriseServer.Code.csproj +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/WebsitePanel.EnterpriseServer.Code.csproj @@ -35,6 +35,9 @@ ..\..\Lib\Ionic.Zip.Reduced.dll + + ..\..\Lib\References\Whois.NET\IPAddressRange.dll + ..\..\Lib\Microsoft.Web.Services3.dll True @@ -62,6 +65,9 @@ ..\..\Bin\WebsitePanel.Server.Client.dll + + ..\..\Lib\References\Whois.NET\WhoisClient.dll + @@ -140,9 +146,11 @@ + + diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Base/DomainLookup/DnsRecordInfo.cs b/WebsitePanel/Sources/WebsitePanel.Providers.Base/DomainLookup/DnsRecordInfo.cs new file mode 100644 index 00000000..47b8f30b --- /dev/null +++ b/WebsitePanel/Sources/WebsitePanel.Providers.Base/DomainLookup/DnsRecordInfo.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using WebsitePanel.Providers.DNS; + +namespace WebsitePanel.Providers.DomainLookup +{ + public class DnsRecordInfo + { + public int Id { get; set; } + public int DomainId { get; set; } + public string DnsServer { get; set; } + public DnsRecordType RecordType { get; set; } + public string Value { get; set; } + public DateTime Date { get; set; } + } +} diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Base/DomainLookup/DnsRecordInfoChange.cs b/WebsitePanel/Sources/WebsitePanel.Providers.Base/DomainLookup/DnsRecordInfoChange.cs new file mode 100644 index 00000000..183c16e0 --- /dev/null +++ b/WebsitePanel/Sources/WebsitePanel.Providers.Base/DomainLookup/DnsRecordInfoChange.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using WebsitePanel.Providers.DNS; + +namespace WebsitePanel.Providers.DomainLookup +{ + public class DnsRecordInfoChange + { + public string DnsServer { get; set; } + public DnsRecordInfo Record { get; set; } + public DomainDnsRecordStatuses Status { get; set; } + public DnsRecordType Type { get; set; } + } +} diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Base/DomainLookup/DomainDnsChanges.cs b/WebsitePanel/Sources/WebsitePanel.Providers.Base/DomainLookup/DomainDnsChanges.cs new file mode 100644 index 00000000..ff178e77 --- /dev/null +++ b/WebsitePanel/Sources/WebsitePanel.Providers.Base/DomainLookup/DomainDnsChanges.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace WebsitePanel.Providers.DomainLookup +{ + public class DomainDnsChanges + { + public string DomainName { get; set; } + + public List DnsChanges { get; set; } + + public DomainDnsChanges() + { + DnsChanges = new List(); + } + } +} diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Base/DomainLookup/DomainDnsRecordStatuses.cs b/WebsitePanel/Sources/WebsitePanel.Providers.Base/DomainLookup/DomainDnsRecordStatuses.cs new file mode 100644 index 00000000..88fa25ed --- /dev/null +++ b/WebsitePanel/Sources/WebsitePanel.Providers.Base/DomainLookup/DomainDnsRecordStatuses.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace WebsitePanel.Providers.DomainLookup +{ + public enum DomainDnsRecordStatuses + { + NotChanged, + Removed, + Added + } +} diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Base/HostedSolution/ExchangeAccountType.cs b/WebsitePanel/Sources/WebsitePanel.Providers.Base/HostedSolution/ExchangeAccountType.cs index 88b0ac93..fdeaa6f2 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.Base/HostedSolution/ExchangeAccountType.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.Base/HostedSolution/ExchangeAccountType.cs @@ -39,7 +39,7 @@ namespace WebsitePanel.Providers.HostedSolution Equipment = 6, User = 7, SecurityGroup = 8, - DefaultSecurityGroup = 9 - + DefaultSecurityGroup = 9, + SharedMailbox = 10 } } diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Base/HostedSolution/ExchangeMailboxPlan.cs b/WebsitePanel/Sources/WebsitePanel.Providers.Base/HostedSolution/ExchangeMailboxPlan.cs index 03435769..72e529c0 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.Base/HostedSolution/ExchangeMailboxPlan.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.Base/HostedSolution/ExchangeMailboxPlan.cs @@ -38,6 +38,15 @@ namespace WebsitePanel.Providers.HostedSolution int itemId; int mailboxPlanId; string mailboxPlan; + + public override string ToString() + { + if (mailboxPlan != null) + return mailboxPlan; + + return base.ToString(); + } + int mailboxSizeMB; int maxRecipients; int maxSendMessageSizeKB; @@ -63,7 +72,6 @@ namespace WebsitePanel.Providers.HostedSolution string litigationHoldUrl; string litigationHoldMsg; - public int ItemId { get { return this.itemId; } 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/OS/IOperatingSystem.cs b/WebsitePanel/Sources/WebsitePanel.Providers.Base/OS/IOperatingSystem.cs index 1d5c8b5b..5b311b48 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.Base/OS/IOperatingSystem.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.Base/OS/IOperatingSystem.cs @@ -28,6 +28,9 @@ using System; using System.Collections; +using System.Collections.Generic; +using WebsitePanel.Providers.DNS; +using WebsitePanel.Providers.DomainLookup; namespace WebsitePanel.Providers.OS { @@ -88,5 +91,8 @@ namespace WebsitePanel.Providers.OS // File Services bool CheckFileServicesInstallation(); + + //DNS + DnsRecordInfo[] GetDomainDnsRecords(string domain, string dnsServer, DnsRecordType recordType); } } diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Base/WebsitePanel.Providers.Base.csproj b/WebsitePanel/Sources/WebsitePanel.Providers.Base/WebsitePanel.Providers.Base.csproj index e5fff6ca..93fd43e7 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.Base/WebsitePanel.Providers.Base.csproj +++ b/WebsitePanel/Sources/WebsitePanel.Providers.Base/WebsitePanel.Providers.Base.csproj @@ -85,6 +85,10 @@ + + + + diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.HostedSolution.Exchange2013/Exchange2013.cs b/WebsitePanel/Sources/WebsitePanel.Providers.HostedSolution.Exchange2013/Exchange2013.cs index f318fe29..01909d57 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.HostedSolution.Exchange2013/Exchange2013.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.HostedSolution.Exchange2013/Exchange2013.cs @@ -1942,6 +1942,9 @@ 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"); + result = ExecuteShellCommand(runSpace, cmd); diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.HostedSolution/Exchange2010SP2.cs b/WebsitePanel/Sources/WebsitePanel.Providers.HostedSolution/Exchange2010SP2.cs index fbb33f3a..7ab55d2e 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.HostedSolution/Exchange2010SP2.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.HostedSolution/Exchange2010SP2.cs @@ -369,6 +369,8 @@ 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"); result = ExecuteShellCommand(runSpace, cmd); diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.OS.Windows2003/Windows2003.cs b/WebsitePanel/Sources/WebsitePanel.Providers.OS.Windows2003/Windows2003.cs index 71fec3fa..6d29c8c6 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.OS.Windows2003/Windows2003.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.OS.Windows2003/Windows2003.cs @@ -34,6 +34,8 @@ using Microsoft.Win32; using WebsitePanel.Server.Utils; using WebsitePanel.Providers.Utils; +using WebsitePanel.Providers.DomainLookup; +using WebsitePanel.Providers.DNS; namespace WebsitePanel.Providers.OS { @@ -744,6 +746,10 @@ namespace WebsitePanel.Providers.OS } #endregion + public virtual DnsRecordInfo[] GetDomainDnsRecords(string domain, string dnsServer, DnsRecordType recordType) + { + return new DnsRecordInfo[0]; + } public override bool IsInstalled() { diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.OS.Windows2012/Windows2012.cs b/WebsitePanel/Sources/WebsitePanel.Providers.OS.Windows2012/Windows2012.cs index 69b702e4..c9787fe6 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.OS.Windows2012/Windows2012.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.OS.Windows2012/Windows2012.cs @@ -49,6 +49,9 @@ using System.Management.Automation.Runspaces; using WebsitePanel.Providers.Common; using System.Runtime.InteropServices; +using System.Linq; +using WebsitePanel.Providers.DomainLookup; +using WebsitePanel.Providers.DNS; namespace WebsitePanel.Providers.OS @@ -295,6 +298,74 @@ namespace WebsitePanel.Providers.OS ExecuteShellCommand(runSpace, cmd, false); } + + #region Domain LookUp + + public override DnsRecordInfo[] GetDomainDnsRecords(string domain, string dnsServer, DnsRecordType recordType) + { + List records = new List(); + + Runspace runSpace = null; + + try + { + runSpace = OpenRunspace(); + + Command cmd = new Command("Resolve-DnsName"); + cmd.Parameters.Add("Name", domain); + cmd.Parameters.Add("Server", dnsServer); + cmd.Parameters.Add("Type", recordType.ToString()); + + var dnsRecordsPs = ExecuteShellCommand(runSpace, cmd, false); + + if (dnsRecordsPs != null) + { + foreach (var dnsRecordPs in dnsRecordsPs) + { + DnsRecordInfo newRecord = null; + + switch (recordType) + { + case DnsRecordType.MX: { newRecord = CreateDnsRecordFromPsObject(dnsRecordPs, "NameExchange"); break; } + case DnsRecordType.NS: { newRecord = CreateDnsRecordFromPsObject(dnsRecordPs, "NameHost"); break; } + default: continue; + } + + if (newRecord != null) + { + newRecord.DnsServer = dnsServer; + newRecord.RecordType = recordType; + + records.Add(newRecord); + } + } + + } + } + finally + { + CloseRunspace(runSpace); + } + + return records.ToArray(); + } + + private DnsRecordInfo CreateDnsRecordFromPsObject(PSObject psObject, string valueName) + { + if (!psObject.Members.Any(x => x.Name == valueName)) + { + return null; + } + + var dnsRecord = new DnsRecordInfo + { + Value = Convert.ToString(GetPSObjectProperty(psObject, valueName)), + }; + + return dnsRecord; + } + + #endregion #region PowerShell integration private static InitialSessionState session = null; diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Web.IIs80/SSL/SSLModuleService80.cs b/WebsitePanel/Sources/WebsitePanel.Providers.Web.IIs80/SSL/SSLModuleService80.cs index 01baf828..1ba070aa 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.Web.IIs80/SSL/SSLModuleService80.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.Web.IIs80/SSL/SSLModuleService80.cs @@ -49,14 +49,6 @@ namespace WebsitePanel.Providers.Web.Iis // We need to move it into "WebHosting" store // Get certificate var servercert = GetServerCertificates(StoreName.My.ToString()).Single(c => c.FriendlyName == cert.FriendlyName); - if (UseCCS) - { - // Delete existing certificate, if any. This is needed to install a new binding - if (CheckCertificate(website)) - { - DeleteCertificate(GetCurrentSiteCertificate(website), website); - } - } // Get certificate data - the one we just added to "Personal" store var storeMy = new X509Store(StoreName.My, StoreLocation.LocalMachine); @@ -64,6 +56,7 @@ namespace WebsitePanel.Providers.Web.Iis X509CertificateCollection existCerts2 = storeMy.Certificates.Find(X509FindType.FindBySerialNumber, servercert.SerialNumber, false); var certData = existCerts2[0].Export(X509ContentType.Pfx); storeMy.Close(); + var x509Cert = new X509Certificate2(certData); if (UseCCS) { @@ -74,7 +67,6 @@ namespace WebsitePanel.Providers.Web.Iis { // Add new certificate to "WebHosting" store var store = new X509Store(CertificateStoreName, StoreLocation.LocalMachine); - var x509Cert = new X509Certificate2(certData); store.Open(OpenFlags.ReadWrite); store.Add(x509Cert); store.Close(); @@ -85,6 +77,7 @@ namespace WebsitePanel.Providers.Web.Iis X509CertificateCollection existCerts = storeMy.Certificates.Find(X509FindType.FindBySerialNumber, servercert.SerialNumber, false); storeMy.Remove((X509Certificate2)existCerts[0]); storeMy.Close(); + // Fill object with certificate data cert.SerialNumber = servercert.SerialNumber; cert.ValidFrom = servercert.ValidFrom; @@ -99,7 +92,7 @@ namespace WebsitePanel.Providers.Web.Iis DeleteCertificate(GetCurrentSiteCertificate(website), website); } - AddBinding(cert, website); + AddBinding(x509Cert, website); } } catch (Exception ex) @@ -113,8 +106,10 @@ namespace WebsitePanel.Providers.Web.Iis public new List GetServerCertificates() { - // Use Web Hosting store - new for IIS 8.0 - return GetServerCertificates(CertificateStoreName); + // Get certificates from both WebHosting and My (Personal) store + var certificates = GetServerCertificates(CertificateStoreName); + certificates.AddRange(GetServerCertificates(StoreName.My.ToString())); + return certificates; } public new SSLCertificate ImportCertificate(WebSite website) @@ -134,12 +129,12 @@ namespace WebsitePanel.Providers.Web.Iis }; } - return certificate; + return certificate ?? (new SSLCertificate {Success = false, Certificate = "No certificate in binding on server, please remove or edit binding"}); } public new SSLCertificate InstallPfx(byte[] certificate, string password, WebSite website) { - SSLCertificate newcert, oldcert = null; + SSLCertificate newcert = null, oldcert = null; // Ensure we perform operations safely and preserve the original state during all manipulations, save the oldcert if one is used if (CheckCertificate(website)) @@ -170,7 +165,7 @@ namespace WebsitePanel.Providers.Web.Iis writer.Write(certData); writer.Flush(); writer.Close(); - // Certificated saved + // Certificate saved } catch (Exception ex) { @@ -189,7 +184,6 @@ namespace WebsitePanel.Providers.Web.Iis try { store.Open(OpenFlags.ReadWrite); - store.Add(x509Cert); } catch (Exception ex) @@ -205,82 +199,38 @@ namespace WebsitePanel.Providers.Web.Iis } // Step 2: Instantiate a copy of new X.509 certificate - try - { - store.Open(OpenFlags.ReadWrite); - newcert = GetSSLCertificateFromX509Certificate2(x509Cert); - } - catch (Exception ex) - { - if (!UseCCS) - { - // Rollback X.509 store changes - store.Remove(x509Cert); - } - // Log error - Log.WriteError("SSLModuleService could not instantiate a copy of new X.509 certificate. All previous changes have been rolled back.", ex); - // Re-throw - throw; - } - finally - { - store.Close(); - } + try + { + newcert = GetSSLCertificateFromX509Certificate2(x509Cert); + } + catch (Exception ex) + { + HandleExceptionAndRollbackCertificate(store, x509Cert, null, website, "SSLModuleService could not instantiate a copy of new X.509 certificate.", ex); + } - if (!UseCCS) - { - // Step 3: Remove old certificate from the web site if any - try - { - store.Open(OpenFlags.ReadWrite); - // Check if certificate already exists, remove it. - if (oldcert != null) - DeleteCertificate(oldcert, website); - } - catch (Exception ex) - { - // Rollback X.509 store changes - store.Remove(x509Cert); - // Log the error - Log.WriteError( - String.Format("SSLModuleService could not remove existing certificate from '{0}' web site. All changes have been rolled back.", website.Name), ex); - // Re-throw - throw; - } - finally - { - store.Close(); - } - } + // Step 3: Remove old certificate from the web site if any + try + { + // Check if certificate already exists, remove it. + if (oldcert != null) + { + DeleteCertificate(oldcert, website); + } + } + catch (Exception ex) + { + HandleExceptionAndRollbackCertificate(store, x509Cert, null, website, string.Format("SSLModuleService could not remove existing certificate from '{0}' web site.", website.Name), ex); + } - // Step 4: Register new certificate with HTTPS binding on the web site - try - { - //if (!UseCCS) - //{ - // store.Open(OpenFlags.ReadWrite); - //} - - AddBinding(newcert, website); - } - catch (Exception ex) - { - if (!UseCCS) - { - // Install old certificate back if any - store.Open(OpenFlags.ReadWrite); - if (oldcert != null) - InstallCertificate(oldcert, website); - // Rollback X.509 store changes - store.Remove(x509Cert); - store.Close(); - } - // Log the error - Log.WriteError( - String.Format("SSLModuleService could not add new X.509 certificate to '{0}' web site. All changes have been rolled back.", website.Name), ex); - // Re-throw - throw; - } + // Step 4: Register new certificate with HTTPS binding on the web site + try + { + AddBinding(x509Cert, website); + } + catch (Exception ex) + { + HandleExceptionAndRollbackCertificate(store, x509Cert, oldcert, website, String.Format("SSLModuleService could not add new X.509 certificate to '{0}' web site.", website.Name), ex); + } return newcert; } @@ -319,32 +269,47 @@ namespace WebsitePanel.Providers.Web.Iis } - public new void AddBinding(SSLCertificate certificate, WebSite website) + public void AddBinding(X509Certificate2 certificate, WebSite website) { using (var srvman = GetServerManager()) { - var store = new X509Store(CertificateStoreName, StoreLocation.LocalMachine); - store.Open(OpenFlags.ReadOnly); - // Look for dedicated ip var dedicatedIp = SiteHasBindingWithDedicatedIp(srvman, website); - var bindingInformation = string.Format("{0}:443:{1}", website.SiteIPAddress, dedicatedIp ? "" : certificate.Hostname); + // Look for all the hostnames this certificate is valid for if we are using SNI + var hostNames = new List(); - Binding siteBinding = UseCCS ? - srvman.Sites[website.SiteId].Bindings.Add(bindingInformation, "https") : - srvman.Sites[website.SiteId].Bindings.Add(bindingInformation, certificate.Hash, store.Name); + if (!dedicatedIp) + { + hostNames.AddRange(certificate.Extensions.Cast() + .Where(e => e.Oid.Value == "2.5.29.17") // Subject Alternative Names + .SelectMany(e => e.Format(true).Split(new[] {"\r\n", "\n", "\n"}, StringSplitOptions.RemoveEmptyEntries).Select(s => s.Split('=')[1]))); + } + + var simpleName = certificate.GetNameInfo(X509NameType.SimpleName, false); + if (hostNames.All(h => h != simpleName)) + { + hostNames.Add(simpleName); + } + + // For every hostname (only one if using old school dedicated IP binding) + foreach (var hostName in hostNames) + { + var bindingInformation = string.Format("{0}:443:{1}", website.SiteIPAddress ?? "*", dedicatedIp ? "" : hostName); + + Binding siteBinding = UseCCS ? + srvman.Sites[website.SiteId].Bindings.Add(bindingInformation, "https") : + srvman.Sites[website.SiteId].Bindings.Add(bindingInformation, certificate.GetCertHash(), CertificateStoreName); - if (UseSNI) - { - siteBinding.SslFlags |= SslFlags.Sni; + if (UseSNI && !dedicatedIp) + { + siteBinding.SslFlags |= SslFlags.Sni; + } + if (UseCCS) + { + siteBinding.SslFlags |= SslFlags.CentralCertStore; + } } - if (UseCCS) - { - siteBinding.SslFlags |= SslFlags.CentralCertStore; - } - - store.Close(); srvman.CommitChanges(); } @@ -352,7 +317,9 @@ namespace WebsitePanel.Providers.Web.Iis public new ResultObject DeleteCertificate(SSLCertificate certificate, WebSite website) { - var result = new ResultObject() { IsSuccess = true }; + // This method removes all https bindings and all certificates associated with them. + // Old implementation (IIS70) removed a single binding (there could not be more than one) and the first certificate that matched via serial number + var result = new ResultObject { IsSuccess = true }; if (certificate == null) { @@ -361,35 +328,70 @@ namespace WebsitePanel.Providers.Web.Iis try { - // Regardless of the CCS setting on the server, we try to find and remove the certificate from both CCS and WebHosting Store. - // This is because we don't know how this was set when the certificate was added + var certificatesAndStoreNames = new List>(); - if (!string.IsNullOrWhiteSpace(CCSUncPath) && Directory.Exists(CCSUncPath)) + // User servermanager to get aLL SSL-bindings on this website and try to remove the certificates used + using (var srvman = GetServerManager()) { - // This is where it will be if CCS is used - var path = GetCCSPath(certificate.Hostname); - if (File.Exists(path)) + + var site = srvman.Sites[website.Name]; + var bindings = site.Bindings.Where(b => b.Protocol == "https"); + + foreach (Binding binding in bindings.ToList()) { - File.Delete(path); + if (binding.SslFlags.HasFlag(SslFlags.CentralCertStore)) + { + if (!string.IsNullOrWhiteSpace(CCSUncPath) && Directory.Exists(CCSUncPath)) + { + // This is where it will be if CCS is used + var path = GetCCSPath(certificate.Hostname); + if (File.Exists(path)) + { + File.Delete(path); + } + + // If binding with hostname, also try to delete with the hostname in the binding + // This is because if SNI is used, several bindings are created for every valid name in the cerificate, but only one name exists in the SSLCertificate + if (!string.IsNullOrEmpty(binding.Host)) + { + path = GetCCSPath(binding.Host); + if (File.Exists(path)) + { + File.Delete(path); + } + } + } + } + else + { + var certificateAndStoreName = new Tuple(binding.CertificateStoreName, binding.CertificateHash); + + if (!string.IsNullOrEmpty(binding.CertificateStoreName) && !certificatesAndStoreNames.Contains(certificateAndStoreName)) + { + certificatesAndStoreNames.Add(certificateAndStoreName); + } + } + + // Remove binding from site + site.Bindings.Remove(binding); } - } - // Now delete all certs with the same serialnumber in WebHosting Store - var store = new X509Store(CertificateStoreName, StoreLocation.LocalMachine); - store.Open(OpenFlags.MaxAllowed); + srvman.CommitChanges(); - var certs = store.Certificates.Find(X509FindType.FindBySerialNumber, certificate.SerialNumber, false); - foreach (var cert in certs) - { - store.Remove(cert); - } + foreach (var certificateAndStoreName in certificatesAndStoreNames) + { + // Delete all certs with the same serialnumber in Store + var store = new X509Store(certificateAndStoreName.Item1, StoreLocation.LocalMachine); + store.Open(OpenFlags.MaxAllowed); - store.Close(); + var certs = store.Certificates.Find(X509FindType.FindByThumbprint, BitConverter.ToString(certificateAndStoreName.Item2).Replace("-", ""), false); + foreach (var cert in certs) + { + store.Remove(cert); + } - // Remove binding from site - if (CheckCertificate(website)) - { - RemoveBinding(certificate, website); + store.Close(); + } } } catch (Exception ex) @@ -409,9 +411,7 @@ namespace WebsitePanel.Providers.Web.Iis var site = srvman.Sites[website.SiteId]; var sslBinding = site.Bindings.First(b => b.Protocol == "https"); - X509Certificate2 cert = null; - - // If the certificate is in the central store + // If the certificate is in the central store if (((SslFlags)Enum.Parse(typeof(SslFlags), sslBinding["sslFlags"].ToString())).HasFlag(SslFlags.CentralCertStore)) { // Let's try to match binding host and certificate filename @@ -423,23 +423,19 @@ namespace WebsitePanel.Providers.Web.Iis // Read certificate data from file var certData = new byte[fileStream.Length]; fileStream.Read(certData, 0, (int) fileStream.Length); - cert = new X509Certificate2(certData, CCSCommonPassword); + var cert = new X509Certificate2(certData, CCSCommonPassword); fileStream.Close(); + return GetSSLCertificateFromX509Certificate2(cert); } } else { - var currentHash = sslBinding.CertificateHash; - var store = new X509Store(CertificateStoreName, StoreLocation.LocalMachine); - store.Open(OpenFlags.ReadOnly); - - cert = store.Certificates.Cast().Single(c => Convert.ToBase64String(c.GetCertHash()) == Convert.ToBase64String(currentHash)); - - store.Close(); + var currentHash = Convert.ToBase64String(sslBinding.CertificateHash); + return GetServerCertificates().FirstOrDefault(c => Convert.ToBase64String(c.Hash) == currentHash); } - - return GetSSLCertificateFromX509Certificate2(cert); } + + return null; } private static List GetServerCertificates(string certificateStoreName) @@ -504,5 +500,33 @@ namespace WebsitePanel.Providers.Web.Iis return false; } } + + private void HandleExceptionAndRollbackCertificate(X509Store store, X509Certificate2 x509Cert, SSLCertificate oldCert, WebSite webSite, string errorMessage, Exception ex) + { + if (!UseCCS) + { + try + { + // Rollback X.509 store changes + store.Open(OpenFlags.ReadWrite); + store.Remove(x509Cert); + store.Close(); + } + catch (Exception) + { + Log.WriteError("SSLModuleService could not rollback and remove certificate from store", ex); + } + + // Install old certificate back if any + if (oldCert != null) + InstallCertificate(oldCert, webSite); + } + + // Log the error + Log.WriteError(errorMessage + " All changes have been rolled back.", ex); + + // Re-throw + throw ex; + } } } diff --git a/WebsitePanel/Sources/WebsitePanel.SchedulerService/app.config b/WebsitePanel/Sources/WebsitePanel.SchedulerService/app.config index f4df3fb3..fc65dbf9 100644 --- a/WebsitePanel/Sources/WebsitePanel.SchedulerService/app.config +++ b/WebsitePanel/Sources/WebsitePanel.SchedulerService/app.config @@ -1,14 +1,14 @@ - + - + diff --git a/WebsitePanel/Sources/WebsitePanel.Server.Client/OperatingSystemProxy.cs b/WebsitePanel/Sources/WebsitePanel.Server.Client/OperatingSystemProxy.cs index d1dc1811..bd8dc161 100644 --- a/WebsitePanel/Sources/WebsitePanel.Server.Client/OperatingSystemProxy.cs +++ b/WebsitePanel/Sources/WebsitePanel.Server.Client/OperatingSystemProxy.cs @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // // This code was generated by a tool. -// Runtime Version:2.0.50727.4984 +// Runtime Version:2.0.50727.7905 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. @@ -9,635 +9,577 @@ //------------------------------------------------------------------------------ // -// This source code was auto-generated by wsdl, Version=2.0.50727.42. +// This source code was auto-generated by wsdl, Version=2.0.50727.3038. // -namespace WebsitePanel.Providers.OS -{ +namespace WebsitePanel.Providers.OS { using System.Xml.Serialization; using System.Web.Services; using System.ComponentModel; using System.Web.Services.Protocols; using System; using System.Diagnostics; - - + using WebsitePanel.Providers.DNS; + using WebsitePanel.Providers.DomainLookup; + + /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] - [System.Web.Services.WebServiceBindingAttribute(Name = "OperatingSystemSoap", Namespace = "http://smbsaas/websitepanel/server/")] + [System.Web.Services.WebServiceBindingAttribute(Name="OperatingSystemSoap", Namespace="http://smbsaas/websitepanel/server/")] [System.Xml.Serialization.XmlIncludeAttribute(typeof(ServiceProviderItem))] - public partial class OperatingSystem : Microsoft.Web.Services3.WebServicesClientProtocol - { - + public partial class OperatingSystem : Microsoft.Web.Services3.WebServicesClientProtocol { + public ServiceProviderSettingsSoapHeader ServiceProviderSettingsSoapHeaderValue; - + private System.Threading.SendOrPostCallback CreatePackageFolderOperationCompleted; - + private System.Threading.SendOrPostCallback FileExistsOperationCompleted; - + private System.Threading.SendOrPostCallback DirectoryExistsOperationCompleted; - + private System.Threading.SendOrPostCallback GetFileOperationCompleted; - + private System.Threading.SendOrPostCallback GetFilesOperationCompleted; - + private System.Threading.SendOrPostCallback GetDirectoriesRecursiveOperationCompleted; - + private System.Threading.SendOrPostCallback GetFilesRecursiveOperationCompleted; - + private System.Threading.SendOrPostCallback GetFilesRecursiveByPatternOperationCompleted; - + private System.Threading.SendOrPostCallback GetFileBinaryContentOperationCompleted; - + private System.Threading.SendOrPostCallback GetFileBinaryContentUsingEncodingOperationCompleted; - + private System.Threading.SendOrPostCallback GetFileBinaryChunkOperationCompleted; - + private System.Threading.SendOrPostCallback GetFileTextContentOperationCompleted; - + private System.Threading.SendOrPostCallback CreateFileOperationCompleted; - + private System.Threading.SendOrPostCallback CreateDirectoryOperationCompleted; - + private System.Threading.SendOrPostCallback ChangeFileAttributesOperationCompleted; - + private System.Threading.SendOrPostCallback DeleteFileOperationCompleted; - + private System.Threading.SendOrPostCallback DeleteFilesOperationCompleted; - + private System.Threading.SendOrPostCallback DeleteEmptyDirectoriesOperationCompleted; - + private System.Threading.SendOrPostCallback UpdateFileBinaryContentOperationCompleted; - + private System.Threading.SendOrPostCallback UpdateFileBinaryContentUsingEncodingOperationCompleted; - + private System.Threading.SendOrPostCallback AppendFileBinaryContentOperationCompleted; - + private System.Threading.SendOrPostCallback UpdateFileTextContentOperationCompleted; - + private System.Threading.SendOrPostCallback MoveFileOperationCompleted; - + private System.Threading.SendOrPostCallback CopyFileOperationCompleted; - + private System.Threading.SendOrPostCallback ZipFilesOperationCompleted; - + private System.Threading.SendOrPostCallback UnzipFilesOperationCompleted; - + private System.Threading.SendOrPostCallback CreateAccessDatabaseOperationCompleted; - + private System.Threading.SendOrPostCallback GetGroupNtfsPermissionsOperationCompleted; - + private System.Threading.SendOrPostCallback GrantGroupNtfsPermissionsOperationCompleted; - + private System.Threading.SendOrPostCallback SetQuotaLimitOnFolderOperationCompleted; - - private System.Threading.SendOrPostCallback GetQuotaLimitOnFolderOperationCompleted; - + + private System.Threading.SendOrPostCallback GetQuotaOnFolderOperationCompleted; + private System.Threading.SendOrPostCallback DeleteDirectoryRecursiveOperationCompleted; - + private System.Threading.SendOrPostCallback CheckFileServicesInstallationOperationCompleted; - + private System.Threading.SendOrPostCallback GetFolderGraphOperationCompleted; - + private System.Threading.SendOrPostCallback ExecuteSyncActionsOperationCompleted; - + private System.Threading.SendOrPostCallback GetInstalledOdbcDriversOperationCompleted; - + private System.Threading.SendOrPostCallback GetDSNNamesOperationCompleted; - + private System.Threading.SendOrPostCallback GetDSNOperationCompleted; - + private System.Threading.SendOrPostCallback CreateDSNOperationCompleted; - + private System.Threading.SendOrPostCallback UpdateDSNOperationCompleted; - + private System.Threading.SendOrPostCallback DeleteDSNOperationCompleted; - + + private System.Threading.SendOrPostCallback GetDomainDnsRecordsOperationCompleted; + /// - public OperatingSystem() - { - this.Url = "http://localhost:9004/OperatingSystem.asmx"; + public OperatingSystem() { + this.Url = "http://localhost:9003/OperatingSystem.asmx"; } - + /// public event CreatePackageFolderCompletedEventHandler CreatePackageFolderCompleted; - + /// public event FileExistsCompletedEventHandler FileExistsCompleted; - + /// public event DirectoryExistsCompletedEventHandler DirectoryExistsCompleted; - + /// public event GetFileCompletedEventHandler GetFileCompleted; - + /// public event GetFilesCompletedEventHandler GetFilesCompleted; - + /// public event GetDirectoriesRecursiveCompletedEventHandler GetDirectoriesRecursiveCompleted; - + /// public event GetFilesRecursiveCompletedEventHandler GetFilesRecursiveCompleted; - + /// public event GetFilesRecursiveByPatternCompletedEventHandler GetFilesRecursiveByPatternCompleted; - + /// public event GetFileBinaryContentCompletedEventHandler GetFileBinaryContentCompleted; - + /// public event GetFileBinaryContentUsingEncodingCompletedEventHandler GetFileBinaryContentUsingEncodingCompleted; - + /// public event GetFileBinaryChunkCompletedEventHandler GetFileBinaryChunkCompleted; - + /// public event GetFileTextContentCompletedEventHandler GetFileTextContentCompleted; - + /// public event CreateFileCompletedEventHandler CreateFileCompleted; - + /// public event CreateDirectoryCompletedEventHandler CreateDirectoryCompleted; - + /// public event ChangeFileAttributesCompletedEventHandler ChangeFileAttributesCompleted; - + /// public event DeleteFileCompletedEventHandler DeleteFileCompleted; - + /// public event DeleteFilesCompletedEventHandler DeleteFilesCompleted; - + /// public event DeleteEmptyDirectoriesCompletedEventHandler DeleteEmptyDirectoriesCompleted; - + /// public event UpdateFileBinaryContentCompletedEventHandler UpdateFileBinaryContentCompleted; - + /// public event UpdateFileBinaryContentUsingEncodingCompletedEventHandler UpdateFileBinaryContentUsingEncodingCompleted; - + /// public event AppendFileBinaryContentCompletedEventHandler AppendFileBinaryContentCompleted; - + /// public event UpdateFileTextContentCompletedEventHandler UpdateFileTextContentCompleted; - + /// public event MoveFileCompletedEventHandler MoveFileCompleted; - + /// public event CopyFileCompletedEventHandler CopyFileCompleted; - + /// public event ZipFilesCompletedEventHandler ZipFilesCompleted; - + /// public event UnzipFilesCompletedEventHandler UnzipFilesCompleted; - + /// public event CreateAccessDatabaseCompletedEventHandler CreateAccessDatabaseCompleted; - + /// public event GetGroupNtfsPermissionsCompletedEventHandler GetGroupNtfsPermissionsCompleted; - + /// public event GrantGroupNtfsPermissionsCompletedEventHandler GrantGroupNtfsPermissionsCompleted; - + /// public event SetQuotaLimitOnFolderCompletedEventHandler SetQuotaLimitOnFolderCompleted; - + /// - public event GetQuotaLimitOnFolderCompletedEventHandler GetQuotaLimitOnFolderCompleted; - + public event GetQuotaOnFolderCompletedEventHandler GetQuotaOnFolderCompleted; + /// public event DeleteDirectoryRecursiveCompletedEventHandler DeleteDirectoryRecursiveCompleted; - + /// public event CheckFileServicesInstallationCompletedEventHandler CheckFileServicesInstallationCompleted; - + /// public event GetFolderGraphCompletedEventHandler GetFolderGraphCompleted; - + /// public event ExecuteSyncActionsCompletedEventHandler ExecuteSyncActionsCompleted; - + /// public event GetInstalledOdbcDriversCompletedEventHandler GetInstalledOdbcDriversCompleted; - + /// public event GetDSNNamesCompletedEventHandler GetDSNNamesCompleted; - + /// public event GetDSNCompletedEventHandler GetDSNCompleted; - + /// public event CreateDSNCompletedEventHandler CreateDSNCompleted; - + /// public event UpdateDSNCompletedEventHandler UpdateDSNCompleted; - + /// public event DeleteDSNCompletedEventHandler DeleteDSNCompleted; - + + /// + public event GetDomainDnsRecordsCompletedEventHandler GetDomainDnsRecordsCompleted; + /// [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")] - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/CreatePackageFolder", 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 string CreatePackageFolder(string initialPath) - { + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/CreatePackageFolder", 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 string CreatePackageFolder(string initialPath) { object[] results = this.Invoke("CreatePackageFolder", new object[] { initialPath}); return ((string)(results[0])); } - + /// - public System.IAsyncResult BeginCreatePackageFolder(string initialPath, System.AsyncCallback callback, object asyncState) - { + public System.IAsyncResult BeginCreatePackageFolder(string initialPath, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("CreatePackageFolder", new object[] { initialPath}, callback, asyncState); } - + /// - public string EndCreatePackageFolder(System.IAsyncResult asyncResult) - { + public string EndCreatePackageFolder(System.IAsyncResult asyncResult) { object[] results = this.EndInvoke(asyncResult); return ((string)(results[0])); } - + /// - public void CreatePackageFolderAsync(string initialPath) - { + public void CreatePackageFolderAsync(string initialPath) { this.CreatePackageFolderAsync(initialPath, null); } - + /// - public void CreatePackageFolderAsync(string initialPath, object userState) - { - if ((this.CreatePackageFolderOperationCompleted == null)) - { + public void CreatePackageFolderAsync(string initialPath, object userState) { + if ((this.CreatePackageFolderOperationCompleted == null)) { this.CreatePackageFolderOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCreatePackageFolderOperationCompleted); } this.InvokeAsync("CreatePackageFolder", new object[] { initialPath}, this.CreatePackageFolderOperationCompleted, userState); } - - private void OnCreatePackageFolderOperationCompleted(object arg) - { - if ((this.CreatePackageFolderCompleted != null)) - { + + private void OnCreatePackageFolderOperationCompleted(object arg) { + if ((this.CreatePackageFolderCompleted != null)) { System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); this.CreatePackageFolderCompleted(this, new CreatePackageFolderCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); } } - + /// [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")] - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/FileExists", 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 FileExists(string path) - { + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/FileExists", 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 FileExists(string path) { object[] results = this.Invoke("FileExists", new object[] { path}); return ((bool)(results[0])); } - + /// - public System.IAsyncResult BeginFileExists(string path, System.AsyncCallback callback, object asyncState) - { + public System.IAsyncResult BeginFileExists(string path, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("FileExists", new object[] { path}, callback, asyncState); } - + /// - public bool EndFileExists(System.IAsyncResult asyncResult) - { + public bool EndFileExists(System.IAsyncResult asyncResult) { object[] results = this.EndInvoke(asyncResult); return ((bool)(results[0])); } - + /// - public void FileExistsAsync(string path) - { + public void FileExistsAsync(string path) { this.FileExistsAsync(path, null); } - + /// - public void FileExistsAsync(string path, object userState) - { - if ((this.FileExistsOperationCompleted == null)) - { + public void FileExistsAsync(string path, object userState) { + if ((this.FileExistsOperationCompleted == null)) { this.FileExistsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnFileExistsOperationCompleted); } this.InvokeAsync("FileExists", new object[] { path}, this.FileExistsOperationCompleted, userState); } - - private void OnFileExistsOperationCompleted(object arg) - { - if ((this.FileExistsCompleted != null)) - { + + private void OnFileExistsOperationCompleted(object arg) { + if ((this.FileExistsCompleted != null)) { System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); this.FileExistsCompleted(this, new FileExistsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); } } - + /// [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")] - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/DirectoryExists", 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 DirectoryExists(string path) - { + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/DirectoryExists", 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 DirectoryExists(string path) { object[] results = this.Invoke("DirectoryExists", new object[] { path}); return ((bool)(results[0])); } - + /// - public System.IAsyncResult BeginDirectoryExists(string path, System.AsyncCallback callback, object asyncState) - { + public System.IAsyncResult BeginDirectoryExists(string path, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("DirectoryExists", new object[] { path}, callback, asyncState); } - + /// - public bool EndDirectoryExists(System.IAsyncResult asyncResult) - { + public bool EndDirectoryExists(System.IAsyncResult asyncResult) { object[] results = this.EndInvoke(asyncResult); return ((bool)(results[0])); } - + /// - public void DirectoryExistsAsync(string path) - { + public void DirectoryExistsAsync(string path) { this.DirectoryExistsAsync(path, null); } - + /// - public void DirectoryExistsAsync(string path, object userState) - { - if ((this.DirectoryExistsOperationCompleted == null)) - { + public void DirectoryExistsAsync(string path, object userState) { + if ((this.DirectoryExistsOperationCompleted == null)) { this.DirectoryExistsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnDirectoryExistsOperationCompleted); } this.InvokeAsync("DirectoryExists", new object[] { path}, this.DirectoryExistsOperationCompleted, userState); } - - private void OnDirectoryExistsOperationCompleted(object arg) - { - if ((this.DirectoryExistsCompleted != null)) - { + + private void OnDirectoryExistsOperationCompleted(object arg) { + if ((this.DirectoryExistsCompleted != null)) { System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); this.DirectoryExistsCompleted(this, new DirectoryExistsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); } } - + /// [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")] - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/GetFile", 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 SystemFile GetFile(string path) - { + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/GetFile", 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 SystemFile GetFile(string path) { object[] results = this.Invoke("GetFile", new object[] { path}); return ((SystemFile)(results[0])); } - + /// - public System.IAsyncResult BeginGetFile(string path, System.AsyncCallback callback, object asyncState) - { + public System.IAsyncResult BeginGetFile(string path, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("GetFile", new object[] { path}, callback, asyncState); } - + /// - public SystemFile EndGetFile(System.IAsyncResult asyncResult) - { + public SystemFile EndGetFile(System.IAsyncResult asyncResult) { object[] results = this.EndInvoke(asyncResult); return ((SystemFile)(results[0])); } - + /// - public void GetFileAsync(string path) - { + public void GetFileAsync(string path) { this.GetFileAsync(path, null); } - + /// - public void GetFileAsync(string path, object userState) - { - if ((this.GetFileOperationCompleted == null)) - { + public void GetFileAsync(string path, object userState) { + if ((this.GetFileOperationCompleted == null)) { this.GetFileOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetFileOperationCompleted); } this.InvokeAsync("GetFile", new object[] { path}, this.GetFileOperationCompleted, userState); } - - private void OnGetFileOperationCompleted(object arg) - { - if ((this.GetFileCompleted != null)) - { + + private void OnGetFileOperationCompleted(object arg) { + if ((this.GetFileCompleted != null)) { System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); this.GetFileCompleted(this, new GetFileCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); } } - + /// [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")] - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/GetFiles", 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 SystemFile[] GetFiles(string path) - { + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/GetFiles", 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 SystemFile[] GetFiles(string path) { object[] results = this.Invoke("GetFiles", new object[] { path}); return ((SystemFile[])(results[0])); } - + /// - public System.IAsyncResult BeginGetFiles(string path, System.AsyncCallback callback, object asyncState) - { + public System.IAsyncResult BeginGetFiles(string path, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("GetFiles", new object[] { path}, callback, asyncState); } - + /// - public SystemFile[] EndGetFiles(System.IAsyncResult asyncResult) - { + public SystemFile[] EndGetFiles(System.IAsyncResult asyncResult) { object[] results = this.EndInvoke(asyncResult); return ((SystemFile[])(results[0])); } - + /// - public void GetFilesAsync(string path) - { + public void GetFilesAsync(string path) { this.GetFilesAsync(path, null); } - + /// - public void GetFilesAsync(string path, object userState) - { - if ((this.GetFilesOperationCompleted == null)) - { + public void GetFilesAsync(string path, object userState) { + if ((this.GetFilesOperationCompleted == null)) { this.GetFilesOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetFilesOperationCompleted); } this.InvokeAsync("GetFiles", new object[] { path}, this.GetFilesOperationCompleted, userState); } - - private void OnGetFilesOperationCompleted(object arg) - { - if ((this.GetFilesCompleted != null)) - { + + private void OnGetFilesOperationCompleted(object arg) { + if ((this.GetFilesCompleted != null)) { System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); this.GetFilesCompleted(this, new GetFilesCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); } } - + /// [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")] - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/GetDirectoriesRecursive", 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 SystemFile[] GetDirectoriesRecursive(string rootFolder, string path) - { + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/GetDirectoriesRecursive", 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 SystemFile[] GetDirectoriesRecursive(string rootFolder, string path) { object[] results = this.Invoke("GetDirectoriesRecursive", new object[] { rootFolder, path}); return ((SystemFile[])(results[0])); } - + /// - public System.IAsyncResult BeginGetDirectoriesRecursive(string rootFolder, string path, System.AsyncCallback callback, object asyncState) - { + public System.IAsyncResult BeginGetDirectoriesRecursive(string rootFolder, string path, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("GetDirectoriesRecursive", new object[] { rootFolder, path}, callback, asyncState); } - + /// - public SystemFile[] EndGetDirectoriesRecursive(System.IAsyncResult asyncResult) - { + public SystemFile[] EndGetDirectoriesRecursive(System.IAsyncResult asyncResult) { object[] results = this.EndInvoke(asyncResult); return ((SystemFile[])(results[0])); } - + /// - public void GetDirectoriesRecursiveAsync(string rootFolder, string path) - { + public void GetDirectoriesRecursiveAsync(string rootFolder, string path) { this.GetDirectoriesRecursiveAsync(rootFolder, path, null); } - + /// - public void GetDirectoriesRecursiveAsync(string rootFolder, string path, object userState) - { - if ((this.GetDirectoriesRecursiveOperationCompleted == null)) - { + public void GetDirectoriesRecursiveAsync(string rootFolder, string path, object userState) { + if ((this.GetDirectoriesRecursiveOperationCompleted == null)) { this.GetDirectoriesRecursiveOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetDirectoriesRecursiveOperationCompleted); } this.InvokeAsync("GetDirectoriesRecursive", new object[] { rootFolder, path}, this.GetDirectoriesRecursiveOperationCompleted, userState); } - - private void OnGetDirectoriesRecursiveOperationCompleted(object arg) - { - if ((this.GetDirectoriesRecursiveCompleted != null)) - { + + private void OnGetDirectoriesRecursiveOperationCompleted(object arg) { + if ((this.GetDirectoriesRecursiveCompleted != null)) { System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); this.GetDirectoriesRecursiveCompleted(this, new GetDirectoriesRecursiveCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); } } - + /// [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")] - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/GetFilesRecursive", 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 SystemFile[] GetFilesRecursive(string rootFolder, string path) - { + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/GetFilesRecursive", 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 SystemFile[] GetFilesRecursive(string rootFolder, string path) { object[] results = this.Invoke("GetFilesRecursive", new object[] { rootFolder, path}); return ((SystemFile[])(results[0])); } - + /// - public System.IAsyncResult BeginGetFilesRecursive(string rootFolder, string path, System.AsyncCallback callback, object asyncState) - { + public System.IAsyncResult BeginGetFilesRecursive(string rootFolder, string path, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("GetFilesRecursive", new object[] { rootFolder, path}, callback, asyncState); } - + /// - public SystemFile[] EndGetFilesRecursive(System.IAsyncResult asyncResult) - { + public SystemFile[] EndGetFilesRecursive(System.IAsyncResult asyncResult) { object[] results = this.EndInvoke(asyncResult); return ((SystemFile[])(results[0])); } - + /// - public void GetFilesRecursiveAsync(string rootFolder, string path) - { + public void GetFilesRecursiveAsync(string rootFolder, string path) { this.GetFilesRecursiveAsync(rootFolder, path, null); } - + /// - public void GetFilesRecursiveAsync(string rootFolder, string path, object userState) - { - if ((this.GetFilesRecursiveOperationCompleted == null)) - { + public void GetFilesRecursiveAsync(string rootFolder, string path, object userState) { + if ((this.GetFilesRecursiveOperationCompleted == null)) { this.GetFilesRecursiveOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetFilesRecursiveOperationCompleted); } this.InvokeAsync("GetFilesRecursive", new object[] { rootFolder, path}, this.GetFilesRecursiveOperationCompleted, userState); } - - private void OnGetFilesRecursiveOperationCompleted(object arg) - { - if ((this.GetFilesRecursiveCompleted != null)) - { + + private void OnGetFilesRecursiveOperationCompleted(object arg) { + if ((this.GetFilesRecursiveCompleted != null)) { System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); this.GetFilesRecursiveCompleted(this, new GetFilesRecursiveCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); } } - + /// [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")] - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/GetFilesRecursiveByPattern", 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 SystemFile[] GetFilesRecursiveByPattern(string rootFolder, string path, string pattern) - { + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/GetFilesRecursiveByPattern", 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 SystemFile[] GetFilesRecursiveByPattern(string rootFolder, string path, string pattern) { object[] results = this.Invoke("GetFilesRecursiveByPattern", new object[] { rootFolder, path, pattern}); return ((SystemFile[])(results[0])); } - + /// - public System.IAsyncResult BeginGetFilesRecursiveByPattern(string rootFolder, string path, string pattern, System.AsyncCallback callback, object asyncState) - { + public System.IAsyncResult BeginGetFilesRecursiveByPattern(string rootFolder, string path, string pattern, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("GetFilesRecursiveByPattern", new object[] { rootFolder, path, pattern}, callback, asyncState); } - + /// - public SystemFile[] EndGetFilesRecursiveByPattern(System.IAsyncResult asyncResult) - { + public SystemFile[] EndGetFilesRecursiveByPattern(System.IAsyncResult asyncResult) { object[] results = this.EndInvoke(asyncResult); return ((SystemFile[])(results[0])); } - + /// - public void GetFilesRecursiveByPatternAsync(string rootFolder, string path, string pattern) - { + public void GetFilesRecursiveByPatternAsync(string rootFolder, string path, string pattern) { this.GetFilesRecursiveByPatternAsync(rootFolder, path, pattern, null); } - + /// - public void GetFilesRecursiveByPatternAsync(string rootFolder, string path, string pattern, object userState) - { - if ((this.GetFilesRecursiveByPatternOperationCompleted == null)) - { + public void GetFilesRecursiveByPatternAsync(string rootFolder, string path, string pattern, object userState) { + if ((this.GetFilesRecursiveByPatternOperationCompleted == null)) { this.GetFilesRecursiveByPatternOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetFilesRecursiveByPatternOperationCompleted); } this.InvokeAsync("GetFilesRecursiveByPattern", new object[] { @@ -645,161 +587,137 @@ namespace WebsitePanel.Providers.OS path, pattern}, this.GetFilesRecursiveByPatternOperationCompleted, userState); } - - private void OnGetFilesRecursiveByPatternOperationCompleted(object arg) - { - if ((this.GetFilesRecursiveByPatternCompleted != null)) - { + + private void OnGetFilesRecursiveByPatternOperationCompleted(object arg) { + if ((this.GetFilesRecursiveByPatternCompleted != null)) { System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); this.GetFilesRecursiveByPatternCompleted(this, new GetFilesRecursiveByPatternCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); } } - + /// [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")] - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/GetFileBinaryContent", RequestNamespace = "http://smbsaas/websitepanel/server/", ResponseNamespace = "http://smbsaas/websitepanel/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] - [return: System.Xml.Serialization.XmlElementAttribute(DataType = "base64Binary")] - public byte[] GetFileBinaryContent(string path) - { + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/GetFileBinaryContent", RequestNamespace="http://smbsaas/websitepanel/server/", ResponseNamespace="http://smbsaas/websitepanel/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + [return: System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary")] + public byte[] GetFileBinaryContent(string path) { object[] results = this.Invoke("GetFileBinaryContent", new object[] { path}); return ((byte[])(results[0])); } - + /// - public System.IAsyncResult BeginGetFileBinaryContent(string path, System.AsyncCallback callback, object asyncState) - { + public System.IAsyncResult BeginGetFileBinaryContent(string path, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("GetFileBinaryContent", new object[] { path}, callback, asyncState); } - + /// - public byte[] EndGetFileBinaryContent(System.IAsyncResult asyncResult) - { + public byte[] EndGetFileBinaryContent(System.IAsyncResult asyncResult) { object[] results = this.EndInvoke(asyncResult); return ((byte[])(results[0])); } - + /// - public void GetFileBinaryContentAsync(string path) - { + public void GetFileBinaryContentAsync(string path) { this.GetFileBinaryContentAsync(path, null); } - + /// - public void GetFileBinaryContentAsync(string path, object userState) - { - if ((this.GetFileBinaryContentOperationCompleted == null)) - { + public void GetFileBinaryContentAsync(string path, object userState) { + if ((this.GetFileBinaryContentOperationCompleted == null)) { this.GetFileBinaryContentOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetFileBinaryContentOperationCompleted); } this.InvokeAsync("GetFileBinaryContent", new object[] { path}, this.GetFileBinaryContentOperationCompleted, userState); } - - private void OnGetFileBinaryContentOperationCompleted(object arg) - { - if ((this.GetFileBinaryContentCompleted != null)) - { + + private void OnGetFileBinaryContentOperationCompleted(object arg) { + if ((this.GetFileBinaryContentCompleted != null)) { System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); this.GetFileBinaryContentCompleted(this, new GetFileBinaryContentCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); } } - + /// [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")] - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/GetFileBinaryContentUsingEncoding", RequestNamespace = "http://smbsaas/websitepanel/server/", ResponseNamespace = "http://smbsaas/websitepanel/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] - [return: System.Xml.Serialization.XmlElementAttribute(DataType = "base64Binary")] - public byte[] GetFileBinaryContentUsingEncoding(string path, string encoding) - { + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/GetFileBinaryContentUsingEncoding", RequestNamespace="http://smbsaas/websitepanel/server/", ResponseNamespace="http://smbsaas/websitepanel/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + [return: System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary")] + public byte[] GetFileBinaryContentUsingEncoding(string path, string encoding) { object[] results = this.Invoke("GetFileBinaryContentUsingEncoding", new object[] { path, encoding}); return ((byte[])(results[0])); } - + /// - public System.IAsyncResult BeginGetFileBinaryContentUsingEncoding(string path, string encoding, System.AsyncCallback callback, object asyncState) - { + public System.IAsyncResult BeginGetFileBinaryContentUsingEncoding(string path, string encoding, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("GetFileBinaryContentUsingEncoding", new object[] { path, encoding}, callback, asyncState); } - + /// - public byte[] EndGetFileBinaryContentUsingEncoding(System.IAsyncResult asyncResult) - { + public byte[] EndGetFileBinaryContentUsingEncoding(System.IAsyncResult asyncResult) { object[] results = this.EndInvoke(asyncResult); return ((byte[])(results[0])); } - + /// - public void GetFileBinaryContentUsingEncodingAsync(string path, string encoding) - { + public void GetFileBinaryContentUsingEncodingAsync(string path, string encoding) { this.GetFileBinaryContentUsingEncodingAsync(path, encoding, null); } - + /// - public void GetFileBinaryContentUsingEncodingAsync(string path, string encoding, object userState) - { - if ((this.GetFileBinaryContentUsingEncodingOperationCompleted == null)) - { + public void GetFileBinaryContentUsingEncodingAsync(string path, string encoding, object userState) { + if ((this.GetFileBinaryContentUsingEncodingOperationCompleted == null)) { this.GetFileBinaryContentUsingEncodingOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetFileBinaryContentUsingEncodingOperationCompleted); } this.InvokeAsync("GetFileBinaryContentUsingEncoding", new object[] { path, encoding}, this.GetFileBinaryContentUsingEncodingOperationCompleted, userState); } - - private void OnGetFileBinaryContentUsingEncodingOperationCompleted(object arg) - { - if ((this.GetFileBinaryContentUsingEncodingCompleted != null)) - { + + private void OnGetFileBinaryContentUsingEncodingOperationCompleted(object arg) { + if ((this.GetFileBinaryContentUsingEncodingCompleted != null)) { System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); this.GetFileBinaryContentUsingEncodingCompleted(this, new GetFileBinaryContentUsingEncodingCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); } } - + /// [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")] - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/GetFileBinaryChunk", RequestNamespace = "http://smbsaas/websitepanel/server/", ResponseNamespace = "http://smbsaas/websitepanel/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] - [return: System.Xml.Serialization.XmlElementAttribute(DataType = "base64Binary")] - public byte[] GetFileBinaryChunk(string path, int offset, int length) - { + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/GetFileBinaryChunk", RequestNamespace="http://smbsaas/websitepanel/server/", ResponseNamespace="http://smbsaas/websitepanel/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + [return: System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary")] + public byte[] GetFileBinaryChunk(string path, int offset, int length) { object[] results = this.Invoke("GetFileBinaryChunk", new object[] { path, offset, length}); return ((byte[])(results[0])); } - + /// - public System.IAsyncResult BeginGetFileBinaryChunk(string path, int offset, int length, System.AsyncCallback callback, object asyncState) - { + public System.IAsyncResult BeginGetFileBinaryChunk(string path, int offset, int length, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("GetFileBinaryChunk", new object[] { path, offset, length}, callback, asyncState); } - + /// - public byte[] EndGetFileBinaryChunk(System.IAsyncResult asyncResult) - { + public byte[] EndGetFileBinaryChunk(System.IAsyncResult asyncResult) { object[] results = this.EndInvoke(asyncResult); return ((byte[])(results[0])); } - + /// - public void GetFileBinaryChunkAsync(string path, int offset, int length) - { + public void GetFileBinaryChunkAsync(string path, int offset, int length) { this.GetFileBinaryChunkAsync(path, offset, length, null); } - + /// - public void GetFileBinaryChunkAsync(string path, int offset, int length, object userState) - { - if ((this.GetFileBinaryChunkOperationCompleted == null)) - { + public void GetFileBinaryChunkAsync(string path, int offset, int length, object userState) { + if ((this.GetFileBinaryChunkOperationCompleted == null)) { this.GetFileBinaryChunkOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetFileBinaryChunkOperationCompleted); } this.InvokeAsync("GetFileBinaryChunk", new object[] { @@ -807,199 +725,167 @@ namespace WebsitePanel.Providers.OS offset, length}, this.GetFileBinaryChunkOperationCompleted, userState); } - - private void OnGetFileBinaryChunkOperationCompleted(object arg) - { - if ((this.GetFileBinaryChunkCompleted != null)) - { + + private void OnGetFileBinaryChunkOperationCompleted(object arg) { + if ((this.GetFileBinaryChunkCompleted != null)) { System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); this.GetFileBinaryChunkCompleted(this, new GetFileBinaryChunkCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); } } - + /// [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")] - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/GetFileTextContent", 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 string GetFileTextContent(string path) - { + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/GetFileTextContent", 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 string GetFileTextContent(string path) { object[] results = this.Invoke("GetFileTextContent", new object[] { path}); return ((string)(results[0])); } - + /// - public System.IAsyncResult BeginGetFileTextContent(string path, System.AsyncCallback callback, object asyncState) - { + public System.IAsyncResult BeginGetFileTextContent(string path, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("GetFileTextContent", new object[] { path}, callback, asyncState); } - + /// - public string EndGetFileTextContent(System.IAsyncResult asyncResult) - { + public string EndGetFileTextContent(System.IAsyncResult asyncResult) { object[] results = this.EndInvoke(asyncResult); return ((string)(results[0])); } - + /// - public void GetFileTextContentAsync(string path) - { + public void GetFileTextContentAsync(string path) { this.GetFileTextContentAsync(path, null); } - + /// - public void GetFileTextContentAsync(string path, object userState) - { - if ((this.GetFileTextContentOperationCompleted == null)) - { + public void GetFileTextContentAsync(string path, object userState) { + if ((this.GetFileTextContentOperationCompleted == null)) { this.GetFileTextContentOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetFileTextContentOperationCompleted); } this.InvokeAsync("GetFileTextContent", new object[] { path}, this.GetFileTextContentOperationCompleted, userState); } - - private void OnGetFileTextContentOperationCompleted(object arg) - { - if ((this.GetFileTextContentCompleted != null)) - { + + private void OnGetFileTextContentOperationCompleted(object arg) { + if ((this.GetFileTextContentCompleted != null)) { System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); this.GetFileTextContentCompleted(this, new GetFileTextContentCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); } } - + /// [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")] - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/CreateFile", 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 CreateFile(string path) - { + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/CreateFile", 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 CreateFile(string path) { this.Invoke("CreateFile", new object[] { path}); } - + /// - public System.IAsyncResult BeginCreateFile(string path, System.AsyncCallback callback, object asyncState) - { + public System.IAsyncResult BeginCreateFile(string path, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("CreateFile", new object[] { path}, callback, asyncState); } - + /// - public void EndCreateFile(System.IAsyncResult asyncResult) - { + public void EndCreateFile(System.IAsyncResult asyncResult) { this.EndInvoke(asyncResult); } - + /// - public void CreateFileAsync(string path) - { + public void CreateFileAsync(string path) { this.CreateFileAsync(path, null); } - + /// - public void CreateFileAsync(string path, object userState) - { - if ((this.CreateFileOperationCompleted == null)) - { + public void CreateFileAsync(string path, object userState) { + if ((this.CreateFileOperationCompleted == null)) { this.CreateFileOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCreateFileOperationCompleted); } this.InvokeAsync("CreateFile", new object[] { path}, this.CreateFileOperationCompleted, userState); } - - private void OnCreateFileOperationCompleted(object arg) - { - if ((this.CreateFileCompleted != null)) - { + + private void OnCreateFileOperationCompleted(object arg) { + if ((this.CreateFileCompleted != null)) { System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); this.CreateFileCompleted(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/CreateDirectory", 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 CreateDirectory(string path) - { + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/CreateDirectory", 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 CreateDirectory(string path) { this.Invoke("CreateDirectory", new object[] { path}); } - + /// - public System.IAsyncResult BeginCreateDirectory(string path, System.AsyncCallback callback, object asyncState) - { + public System.IAsyncResult BeginCreateDirectory(string path, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("CreateDirectory", new object[] { path}, callback, asyncState); } - + /// - public void EndCreateDirectory(System.IAsyncResult asyncResult) - { + public void EndCreateDirectory(System.IAsyncResult asyncResult) { this.EndInvoke(asyncResult); } - + /// - public void CreateDirectoryAsync(string path) - { + public void CreateDirectoryAsync(string path) { this.CreateDirectoryAsync(path, null); } - + /// - public void CreateDirectoryAsync(string path, object userState) - { - if ((this.CreateDirectoryOperationCompleted == null)) - { + public void CreateDirectoryAsync(string path, object userState) { + if ((this.CreateDirectoryOperationCompleted == null)) { this.CreateDirectoryOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCreateDirectoryOperationCompleted); } this.InvokeAsync("CreateDirectory", new object[] { path}, this.CreateDirectoryOperationCompleted, userState); } - - private void OnCreateDirectoryOperationCompleted(object arg) - { - if ((this.CreateDirectoryCompleted != null)) - { + + private void OnCreateDirectoryOperationCompleted(object arg) { + if ((this.CreateDirectoryCompleted != null)) { System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); this.CreateDirectoryCompleted(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/ChangeFileAttributes", 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 ChangeFileAttributes(string path, System.DateTime createdTime, System.DateTime changedTime) - { + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/ChangeFileAttributes", 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 ChangeFileAttributes(string path, System.DateTime createdTime, System.DateTime changedTime) { this.Invoke("ChangeFileAttributes", new object[] { path, createdTime, changedTime}); } - + /// - public System.IAsyncResult BeginChangeFileAttributes(string path, System.DateTime createdTime, System.DateTime changedTime, System.AsyncCallback callback, object asyncState) - { + public System.IAsyncResult BeginChangeFileAttributes(string path, System.DateTime createdTime, System.DateTime changedTime, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("ChangeFileAttributes", new object[] { path, createdTime, changedTime}, callback, asyncState); } - + /// - public void EndChangeFileAttributes(System.IAsyncResult asyncResult) - { + public void EndChangeFileAttributes(System.IAsyncResult asyncResult) { this.EndInvoke(asyncResult); } - + /// - public void ChangeFileAttributesAsync(string path, System.DateTime createdTime, System.DateTime changedTime) - { + public void ChangeFileAttributesAsync(string path, System.DateTime createdTime, System.DateTime changedTime) { this.ChangeFileAttributesAsync(path, createdTime, changedTime, null); } - + /// - public void ChangeFileAttributesAsync(string path, System.DateTime createdTime, System.DateTime changedTime, object userState) - { - if ((this.ChangeFileAttributesOperationCompleted == null)) - { + public void ChangeFileAttributesAsync(string path, System.DateTime createdTime, System.DateTime changedTime, object userState) { + if ((this.ChangeFileAttributesOperationCompleted == null)) { this.ChangeFileAttributesOperationCompleted = new System.Threading.SendOrPostCallback(this.OnChangeFileAttributesOperationCompleted); } this.InvokeAsync("ChangeFileAttributes", new object[] { @@ -1007,248 +893,208 @@ namespace WebsitePanel.Providers.OS createdTime, changedTime}, this.ChangeFileAttributesOperationCompleted, userState); } - - private void OnChangeFileAttributesOperationCompleted(object arg) - { - if ((this.ChangeFileAttributesCompleted != null)) - { + + private void OnChangeFileAttributesOperationCompleted(object arg) { + if ((this.ChangeFileAttributesCompleted != null)) { System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); this.ChangeFileAttributesCompleted(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/DeleteFile", 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 DeleteFile(string path) - { + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/DeleteFile", 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 DeleteFile(string path) { this.Invoke("DeleteFile", new object[] { path}); } - + /// - public System.IAsyncResult BeginDeleteFile(string path, System.AsyncCallback callback, object asyncState) - { + public System.IAsyncResult BeginDeleteFile(string path, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("DeleteFile", new object[] { path}, callback, asyncState); } - + /// - public void EndDeleteFile(System.IAsyncResult asyncResult) - { + public void EndDeleteFile(System.IAsyncResult asyncResult) { this.EndInvoke(asyncResult); } - + /// - public void DeleteFileAsync(string path) - { + public void DeleteFileAsync(string path) { this.DeleteFileAsync(path, null); } - + /// - public void DeleteFileAsync(string path, object userState) - { - if ((this.DeleteFileOperationCompleted == null)) - { + public void DeleteFileAsync(string path, object userState) { + if ((this.DeleteFileOperationCompleted == null)) { this.DeleteFileOperationCompleted = new System.Threading.SendOrPostCallback(this.OnDeleteFileOperationCompleted); } this.InvokeAsync("DeleteFile", new object[] { path}, this.DeleteFileOperationCompleted, userState); } - - private void OnDeleteFileOperationCompleted(object arg) - { - if ((this.DeleteFileCompleted != null)) - { + + private void OnDeleteFileOperationCompleted(object arg) { + if ((this.DeleteFileCompleted != null)) { System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); this.DeleteFileCompleted(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/DeleteFiles", 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 DeleteFiles(string[] files) - { + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/DeleteFiles", 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 DeleteFiles(string[] files) { this.Invoke("DeleteFiles", new object[] { files}); } - + /// - public System.IAsyncResult BeginDeleteFiles(string[] files, System.AsyncCallback callback, object asyncState) - { + public System.IAsyncResult BeginDeleteFiles(string[] files, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("DeleteFiles", new object[] { files}, callback, asyncState); } - + /// - public void EndDeleteFiles(System.IAsyncResult asyncResult) - { + public void EndDeleteFiles(System.IAsyncResult asyncResult) { this.EndInvoke(asyncResult); } - + /// - public void DeleteFilesAsync(string[] files) - { + public void DeleteFilesAsync(string[] files) { this.DeleteFilesAsync(files, null); } - + /// - public void DeleteFilesAsync(string[] files, object userState) - { - if ((this.DeleteFilesOperationCompleted == null)) - { + public void DeleteFilesAsync(string[] files, object userState) { + if ((this.DeleteFilesOperationCompleted == null)) { this.DeleteFilesOperationCompleted = new System.Threading.SendOrPostCallback(this.OnDeleteFilesOperationCompleted); } this.InvokeAsync("DeleteFiles", new object[] { files}, this.DeleteFilesOperationCompleted, userState); } - - private void OnDeleteFilesOperationCompleted(object arg) - { - if ((this.DeleteFilesCompleted != null)) - { + + private void OnDeleteFilesOperationCompleted(object arg) { + if ((this.DeleteFilesCompleted != null)) { System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); this.DeleteFilesCompleted(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/DeleteEmptyDirectories", 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 DeleteEmptyDirectories(string[] directories) - { + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/DeleteEmptyDirectories", 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 DeleteEmptyDirectories(string[] directories) { this.Invoke("DeleteEmptyDirectories", new object[] { directories}); } - + /// - public System.IAsyncResult BeginDeleteEmptyDirectories(string[] directories, System.AsyncCallback callback, object asyncState) - { + public System.IAsyncResult BeginDeleteEmptyDirectories(string[] directories, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("DeleteEmptyDirectories", new object[] { directories}, callback, asyncState); } - + /// - public void EndDeleteEmptyDirectories(System.IAsyncResult asyncResult) - { + public void EndDeleteEmptyDirectories(System.IAsyncResult asyncResult) { this.EndInvoke(asyncResult); } - + /// - public void DeleteEmptyDirectoriesAsync(string[] directories) - { + public void DeleteEmptyDirectoriesAsync(string[] directories) { this.DeleteEmptyDirectoriesAsync(directories, null); } - + /// - public void DeleteEmptyDirectoriesAsync(string[] directories, object userState) - { - if ((this.DeleteEmptyDirectoriesOperationCompleted == null)) - { + public void DeleteEmptyDirectoriesAsync(string[] directories, object userState) { + if ((this.DeleteEmptyDirectoriesOperationCompleted == null)) { this.DeleteEmptyDirectoriesOperationCompleted = new System.Threading.SendOrPostCallback(this.OnDeleteEmptyDirectoriesOperationCompleted); } this.InvokeAsync("DeleteEmptyDirectories", new object[] { directories}, this.DeleteEmptyDirectoriesOperationCompleted, userState); } - - private void OnDeleteEmptyDirectoriesOperationCompleted(object arg) - { - if ((this.DeleteEmptyDirectoriesCompleted != null)) - { + + private void OnDeleteEmptyDirectoriesOperationCompleted(object arg) { + if ((this.DeleteEmptyDirectoriesCompleted != null)) { System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); this.DeleteEmptyDirectoriesCompleted(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/UpdateFileBinaryContent", 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 UpdateFileBinaryContent(string path, [System.Xml.Serialization.XmlElementAttribute(DataType = "base64Binary")] byte[] content) - { + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/UpdateFileBinaryContent", 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 UpdateFileBinaryContent(string path, [System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary")] byte[] content) { this.Invoke("UpdateFileBinaryContent", new object[] { path, content}); } - + /// - public System.IAsyncResult BeginUpdateFileBinaryContent(string path, byte[] content, System.AsyncCallback callback, object asyncState) - { + public System.IAsyncResult BeginUpdateFileBinaryContent(string path, byte[] content, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("UpdateFileBinaryContent", new object[] { path, content}, callback, asyncState); } - + /// - public void EndUpdateFileBinaryContent(System.IAsyncResult asyncResult) - { + public void EndUpdateFileBinaryContent(System.IAsyncResult asyncResult) { this.EndInvoke(asyncResult); } - + /// - public void UpdateFileBinaryContentAsync(string path, byte[] content) - { + public void UpdateFileBinaryContentAsync(string path, byte[] content) { this.UpdateFileBinaryContentAsync(path, content, null); } - + /// - public void UpdateFileBinaryContentAsync(string path, byte[] content, object userState) - { - if ((this.UpdateFileBinaryContentOperationCompleted == null)) - { + public void UpdateFileBinaryContentAsync(string path, byte[] content, object userState) { + if ((this.UpdateFileBinaryContentOperationCompleted == null)) { this.UpdateFileBinaryContentOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUpdateFileBinaryContentOperationCompleted); } this.InvokeAsync("UpdateFileBinaryContent", new object[] { path, content}, this.UpdateFileBinaryContentOperationCompleted, userState); } - - private void OnUpdateFileBinaryContentOperationCompleted(object arg) - { - if ((this.UpdateFileBinaryContentCompleted != null)) - { + + private void OnUpdateFileBinaryContentOperationCompleted(object arg) { + if ((this.UpdateFileBinaryContentCompleted != null)) { System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); this.UpdateFileBinaryContentCompleted(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/UpdateFileBinaryContentUsingEncoding", 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 UpdateFileBinaryContentUsingEncoding(string path, [System.Xml.Serialization.XmlElementAttribute(DataType = "base64Binary")] byte[] content, string encoding) - { + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/UpdateFileBinaryContentUsingEncoding", 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 UpdateFileBinaryContentUsingEncoding(string path, [System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary")] byte[] content, string encoding) { this.Invoke("UpdateFileBinaryContentUsingEncoding", new object[] { path, content, encoding}); } - + /// - public System.IAsyncResult BeginUpdateFileBinaryContentUsingEncoding(string path, byte[] content, string encoding, System.AsyncCallback callback, object asyncState) - { + public System.IAsyncResult BeginUpdateFileBinaryContentUsingEncoding(string path, byte[] content, string encoding, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("UpdateFileBinaryContentUsingEncoding", new object[] { path, content, encoding}, callback, asyncState); } - + /// - public void EndUpdateFileBinaryContentUsingEncoding(System.IAsyncResult asyncResult) - { + public void EndUpdateFileBinaryContentUsingEncoding(System.IAsyncResult asyncResult) { this.EndInvoke(asyncResult); } - + /// - public void UpdateFileBinaryContentUsingEncodingAsync(string path, byte[] content, string encoding) - { + public void UpdateFileBinaryContentUsingEncodingAsync(string path, byte[] content, string encoding) { this.UpdateFileBinaryContentUsingEncodingAsync(path, content, encoding, null); } - + /// - public void UpdateFileBinaryContentUsingEncodingAsync(string path, byte[] content, string encoding, object userState) - { - if ((this.UpdateFileBinaryContentUsingEncodingOperationCompleted == null)) - { + public void UpdateFileBinaryContentUsingEncodingAsync(string path, byte[] content, string encoding, object userState) { + if ((this.UpdateFileBinaryContentUsingEncodingOperationCompleted == null)) { this.UpdateFileBinaryContentUsingEncodingOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUpdateFileBinaryContentUsingEncodingOperationCompleted); } this.InvokeAsync("UpdateFileBinaryContentUsingEncoding", new object[] { @@ -1256,257 +1102,217 @@ namespace WebsitePanel.Providers.OS content, encoding}, this.UpdateFileBinaryContentUsingEncodingOperationCompleted, userState); } - - private void OnUpdateFileBinaryContentUsingEncodingOperationCompleted(object arg) - { - if ((this.UpdateFileBinaryContentUsingEncodingCompleted != null)) - { + + private void OnUpdateFileBinaryContentUsingEncodingOperationCompleted(object arg) { + if ((this.UpdateFileBinaryContentUsingEncodingCompleted != null)) { System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); this.UpdateFileBinaryContentUsingEncodingCompleted(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/AppendFileBinaryContent", 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 AppendFileBinaryContent(string path, [System.Xml.Serialization.XmlElementAttribute(DataType = "base64Binary")] byte[] chunk) - { + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/AppendFileBinaryContent", 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 AppendFileBinaryContent(string path, [System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary")] byte[] chunk) { this.Invoke("AppendFileBinaryContent", new object[] { path, chunk}); } - + /// - public System.IAsyncResult BeginAppendFileBinaryContent(string path, byte[] chunk, System.AsyncCallback callback, object asyncState) - { + public System.IAsyncResult BeginAppendFileBinaryContent(string path, byte[] chunk, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("AppendFileBinaryContent", new object[] { path, chunk}, callback, asyncState); } - + /// - public void EndAppendFileBinaryContent(System.IAsyncResult asyncResult) - { + public void EndAppendFileBinaryContent(System.IAsyncResult asyncResult) { this.EndInvoke(asyncResult); } - + /// - public void AppendFileBinaryContentAsync(string path, byte[] chunk) - { + public void AppendFileBinaryContentAsync(string path, byte[] chunk) { this.AppendFileBinaryContentAsync(path, chunk, null); } - + /// - public void AppendFileBinaryContentAsync(string path, byte[] chunk, object userState) - { - if ((this.AppendFileBinaryContentOperationCompleted == null)) - { + public void AppendFileBinaryContentAsync(string path, byte[] chunk, object userState) { + if ((this.AppendFileBinaryContentOperationCompleted == null)) { this.AppendFileBinaryContentOperationCompleted = new System.Threading.SendOrPostCallback(this.OnAppendFileBinaryContentOperationCompleted); } this.InvokeAsync("AppendFileBinaryContent", new object[] { path, chunk}, this.AppendFileBinaryContentOperationCompleted, userState); } - - private void OnAppendFileBinaryContentOperationCompleted(object arg) - { - if ((this.AppendFileBinaryContentCompleted != null)) - { + + private void OnAppendFileBinaryContentOperationCompleted(object arg) { + if ((this.AppendFileBinaryContentCompleted != null)) { System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); this.AppendFileBinaryContentCompleted(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/UpdateFileTextContent", 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 UpdateFileTextContent(string path, string content) - { + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/UpdateFileTextContent", 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 UpdateFileTextContent(string path, string content) { this.Invoke("UpdateFileTextContent", new object[] { path, content}); } - + /// - public System.IAsyncResult BeginUpdateFileTextContent(string path, string content, System.AsyncCallback callback, object asyncState) - { + public System.IAsyncResult BeginUpdateFileTextContent(string path, string content, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("UpdateFileTextContent", new object[] { path, content}, callback, asyncState); } - + /// - public void EndUpdateFileTextContent(System.IAsyncResult asyncResult) - { + public void EndUpdateFileTextContent(System.IAsyncResult asyncResult) { this.EndInvoke(asyncResult); } - + /// - public void UpdateFileTextContentAsync(string path, string content) - { + public void UpdateFileTextContentAsync(string path, string content) { this.UpdateFileTextContentAsync(path, content, null); } - + /// - public void UpdateFileTextContentAsync(string path, string content, object userState) - { - if ((this.UpdateFileTextContentOperationCompleted == null)) - { + public void UpdateFileTextContentAsync(string path, string content, object userState) { + if ((this.UpdateFileTextContentOperationCompleted == null)) { this.UpdateFileTextContentOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUpdateFileTextContentOperationCompleted); } this.InvokeAsync("UpdateFileTextContent", new object[] { path, content}, this.UpdateFileTextContentOperationCompleted, userState); } - - private void OnUpdateFileTextContentOperationCompleted(object arg) - { - if ((this.UpdateFileTextContentCompleted != null)) - { + + private void OnUpdateFileTextContentOperationCompleted(object arg) { + if ((this.UpdateFileTextContentCompleted != null)) { System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); this.UpdateFileTextContentCompleted(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/MoveFile", 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 MoveFile(string sourcePath, string destinationPath) - { + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/MoveFile", 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 MoveFile(string sourcePath, string destinationPath) { this.Invoke("MoveFile", new object[] { sourcePath, destinationPath}); } - + /// - public System.IAsyncResult BeginMoveFile(string sourcePath, string destinationPath, System.AsyncCallback callback, object asyncState) - { + public System.IAsyncResult BeginMoveFile(string sourcePath, string destinationPath, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("MoveFile", new object[] { sourcePath, destinationPath}, callback, asyncState); } - + /// - public void EndMoveFile(System.IAsyncResult asyncResult) - { + public void EndMoveFile(System.IAsyncResult asyncResult) { this.EndInvoke(asyncResult); } - + /// - public void MoveFileAsync(string sourcePath, string destinationPath) - { + public void MoveFileAsync(string sourcePath, string destinationPath) { this.MoveFileAsync(sourcePath, destinationPath, null); } - + /// - public void MoveFileAsync(string sourcePath, string destinationPath, object userState) - { - if ((this.MoveFileOperationCompleted == null)) - { + public void MoveFileAsync(string sourcePath, string destinationPath, object userState) { + if ((this.MoveFileOperationCompleted == null)) { this.MoveFileOperationCompleted = new System.Threading.SendOrPostCallback(this.OnMoveFileOperationCompleted); } this.InvokeAsync("MoveFile", new object[] { sourcePath, destinationPath}, this.MoveFileOperationCompleted, userState); } - - private void OnMoveFileOperationCompleted(object arg) - { - if ((this.MoveFileCompleted != null)) - { + + private void OnMoveFileOperationCompleted(object arg) { + if ((this.MoveFileCompleted != null)) { System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); this.MoveFileCompleted(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/CopyFile", 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 CopyFile(string sourcePath, string destinationPath) - { + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/CopyFile", 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 CopyFile(string sourcePath, string destinationPath) { this.Invoke("CopyFile", new object[] { sourcePath, destinationPath}); } - + /// - public System.IAsyncResult BeginCopyFile(string sourcePath, string destinationPath, System.AsyncCallback callback, object asyncState) - { + public System.IAsyncResult BeginCopyFile(string sourcePath, string destinationPath, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("CopyFile", new object[] { sourcePath, destinationPath}, callback, asyncState); } - + /// - public void EndCopyFile(System.IAsyncResult asyncResult) - { + public void EndCopyFile(System.IAsyncResult asyncResult) { this.EndInvoke(asyncResult); } - + /// - public void CopyFileAsync(string sourcePath, string destinationPath) - { + public void CopyFileAsync(string sourcePath, string destinationPath) { this.CopyFileAsync(sourcePath, destinationPath, null); } - + /// - public void CopyFileAsync(string sourcePath, string destinationPath, object userState) - { - if ((this.CopyFileOperationCompleted == null)) - { + public void CopyFileAsync(string sourcePath, string destinationPath, object userState) { + if ((this.CopyFileOperationCompleted == null)) { this.CopyFileOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCopyFileOperationCompleted); } this.InvokeAsync("CopyFile", new object[] { sourcePath, destinationPath}, this.CopyFileOperationCompleted, userState); } - - private void OnCopyFileOperationCompleted(object arg) - { - if ((this.CopyFileCompleted != null)) - { + + private void OnCopyFileOperationCompleted(object arg) { + if ((this.CopyFileCompleted != null)) { System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); this.CopyFileCompleted(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/ZipFiles", 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 ZipFiles(string zipFile, string rootPath, string[] files) - { + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/ZipFiles", 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 ZipFiles(string zipFile, string rootPath, string[] files) { this.Invoke("ZipFiles", new object[] { zipFile, rootPath, files}); } - + /// - public System.IAsyncResult BeginZipFiles(string zipFile, string rootPath, string[] files, System.AsyncCallback callback, object asyncState) - { + public System.IAsyncResult BeginZipFiles(string zipFile, string rootPath, string[] files, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("ZipFiles", new object[] { zipFile, rootPath, files}, callback, asyncState); } - + /// - public void EndZipFiles(System.IAsyncResult asyncResult) - { + public void EndZipFiles(System.IAsyncResult asyncResult) { this.EndInvoke(asyncResult); } - + /// - public void ZipFilesAsync(string zipFile, string rootPath, string[] files) - { + public void ZipFilesAsync(string zipFile, string rootPath, string[] files) { this.ZipFilesAsync(zipFile, rootPath, files, null); } - + /// - public void ZipFilesAsync(string zipFile, string rootPath, string[] files, object userState) - { - if ((this.ZipFilesOperationCompleted == null)) - { + public void ZipFilesAsync(string zipFile, string rootPath, string[] files, object userState) { + if ((this.ZipFilesOperationCompleted == null)) { this.ZipFilesOperationCompleted = new System.Threading.SendOrPostCallback(this.OnZipFilesOperationCompleted); } this.InvokeAsync("ZipFiles", new object[] { @@ -1514,156 +1320,132 @@ namespace WebsitePanel.Providers.OS rootPath, files}, this.ZipFilesOperationCompleted, userState); } - - private void OnZipFilesOperationCompleted(object arg) - { - if ((this.ZipFilesCompleted != null)) - { + + private void OnZipFilesOperationCompleted(object arg) { + if ((this.ZipFilesCompleted != null)) { System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); this.ZipFilesCompleted(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/UnzipFiles", 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 string[] UnzipFiles(string zipFile, string destFolder) - { + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/UnzipFiles", 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 string[] UnzipFiles(string zipFile, string destFolder) { object[] results = this.Invoke("UnzipFiles", new object[] { zipFile, destFolder}); return ((string[])(results[0])); } - + /// - public System.IAsyncResult BeginUnzipFiles(string zipFile, string destFolder, System.AsyncCallback callback, object asyncState) - { + public System.IAsyncResult BeginUnzipFiles(string zipFile, string destFolder, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("UnzipFiles", new object[] { zipFile, destFolder}, callback, asyncState); } - + /// - public string[] EndUnzipFiles(System.IAsyncResult asyncResult) - { + public string[] EndUnzipFiles(System.IAsyncResult asyncResult) { object[] results = this.EndInvoke(asyncResult); return ((string[])(results[0])); } - + /// - public void UnzipFilesAsync(string zipFile, string destFolder) - { + public void UnzipFilesAsync(string zipFile, string destFolder) { this.UnzipFilesAsync(zipFile, destFolder, null); } - + /// - public void UnzipFilesAsync(string zipFile, string destFolder, object userState) - { - if ((this.UnzipFilesOperationCompleted == null)) - { + public void UnzipFilesAsync(string zipFile, string destFolder, object userState) { + if ((this.UnzipFilesOperationCompleted == null)) { this.UnzipFilesOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUnzipFilesOperationCompleted); } this.InvokeAsync("UnzipFiles", new object[] { zipFile, destFolder}, this.UnzipFilesOperationCompleted, userState); } - - private void OnUnzipFilesOperationCompleted(object arg) - { - if ((this.UnzipFilesCompleted != null)) - { + + private void OnUnzipFilesOperationCompleted(object arg) { + if ((this.UnzipFilesCompleted != null)) { System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); this.UnzipFilesCompleted(this, new UnzipFilesCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); } } - + /// [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")] - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/CreateAccessDatabase", 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 CreateAccessDatabase(string databasePath) - { + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/CreateAccessDatabase", 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 CreateAccessDatabase(string databasePath) { this.Invoke("CreateAccessDatabase", new object[] { databasePath}); } - + /// - public System.IAsyncResult BeginCreateAccessDatabase(string databasePath, System.AsyncCallback callback, object asyncState) - { + public System.IAsyncResult BeginCreateAccessDatabase(string databasePath, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("CreateAccessDatabase", new object[] { databasePath}, callback, asyncState); } - + /// - public void EndCreateAccessDatabase(System.IAsyncResult asyncResult) - { + public void EndCreateAccessDatabase(System.IAsyncResult asyncResult) { this.EndInvoke(asyncResult); } - + /// - public void CreateAccessDatabaseAsync(string databasePath) - { + public void CreateAccessDatabaseAsync(string databasePath) { this.CreateAccessDatabaseAsync(databasePath, null); } - + /// - public void CreateAccessDatabaseAsync(string databasePath, object userState) - { - if ((this.CreateAccessDatabaseOperationCompleted == null)) - { + public void CreateAccessDatabaseAsync(string databasePath, object userState) { + if ((this.CreateAccessDatabaseOperationCompleted == null)) { this.CreateAccessDatabaseOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCreateAccessDatabaseOperationCompleted); } this.InvokeAsync("CreateAccessDatabase", new object[] { databasePath}, this.CreateAccessDatabaseOperationCompleted, userState); } - - private void OnCreateAccessDatabaseOperationCompleted(object arg) - { - if ((this.CreateAccessDatabaseCompleted != null)) - { + + private void OnCreateAccessDatabaseOperationCompleted(object arg) { + if ((this.CreateAccessDatabaseCompleted != null)) { System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); this.CreateAccessDatabaseCompleted(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/GetGroupNtfsPermissions", 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 UserPermission[] GetGroupNtfsPermissions(string path, UserPermission[] users, string usersOU) - { + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/GetGroupNtfsPermissions", 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 UserPermission[] GetGroupNtfsPermissions(string path, UserPermission[] users, string usersOU) { object[] results = this.Invoke("GetGroupNtfsPermissions", new object[] { path, users, usersOU}); return ((UserPermission[])(results[0])); } - + /// - public System.IAsyncResult BeginGetGroupNtfsPermissions(string path, UserPermission[] users, string usersOU, System.AsyncCallback callback, object asyncState) - { + public System.IAsyncResult BeginGetGroupNtfsPermissions(string path, UserPermission[] users, string usersOU, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("GetGroupNtfsPermissions", new object[] { path, users, usersOU}, callback, asyncState); } - + /// - public UserPermission[] EndGetGroupNtfsPermissions(System.IAsyncResult asyncResult) - { + public UserPermission[] EndGetGroupNtfsPermissions(System.IAsyncResult asyncResult) { object[] results = this.EndInvoke(asyncResult); return ((UserPermission[])(results[0])); } - + /// - public void GetGroupNtfsPermissionsAsync(string path, UserPermission[] users, string usersOU) - { + public void GetGroupNtfsPermissionsAsync(string path, UserPermission[] users, string usersOU) { this.GetGroupNtfsPermissionsAsync(path, users, usersOU, null); } - + /// - public void GetGroupNtfsPermissionsAsync(string path, UserPermission[] users, string usersOU, object userState) - { - if ((this.GetGroupNtfsPermissionsOperationCompleted == null)) - { + public void GetGroupNtfsPermissionsAsync(string path, UserPermission[] users, string usersOU, object userState) { + if ((this.GetGroupNtfsPermissionsOperationCompleted == null)) { this.GetGroupNtfsPermissionsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetGroupNtfsPermissionsOperationCompleted); } this.InvokeAsync("GetGroupNtfsPermissions", new object[] { @@ -1671,55 +1453,47 @@ namespace WebsitePanel.Providers.OS users, usersOU}, this.GetGroupNtfsPermissionsOperationCompleted, userState); } - - private void OnGetGroupNtfsPermissionsOperationCompleted(object arg) - { - if ((this.GetGroupNtfsPermissionsCompleted != null)) - { + + private void OnGetGroupNtfsPermissionsOperationCompleted(object arg) { + if ((this.GetGroupNtfsPermissionsCompleted != null)) { System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); this.GetGroupNtfsPermissionsCompleted(this, new GetGroupNtfsPermissionsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); } } - + /// [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")] - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/GrantGroupNtfsPermissions", 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 GrantGroupNtfsPermissions(string path, UserPermission[] users, string usersOU, bool resetChildPermissions) - { + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/GrantGroupNtfsPermissions", 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 GrantGroupNtfsPermissions(string path, UserPermission[] users, string usersOU, bool resetChildPermissions) { this.Invoke("GrantGroupNtfsPermissions", new object[] { path, users, usersOU, resetChildPermissions}); } - + /// - public System.IAsyncResult BeginGrantGroupNtfsPermissions(string path, UserPermission[] users, string usersOU, bool resetChildPermissions, System.AsyncCallback callback, object asyncState) - { + public System.IAsyncResult BeginGrantGroupNtfsPermissions(string path, UserPermission[] users, string usersOU, bool resetChildPermissions, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("GrantGroupNtfsPermissions", new object[] { path, users, usersOU, resetChildPermissions}, callback, asyncState); } - + /// - public void EndGrantGroupNtfsPermissions(System.IAsyncResult asyncResult) - { + public void EndGrantGroupNtfsPermissions(System.IAsyncResult asyncResult) { this.EndInvoke(asyncResult); } - + /// - public void GrantGroupNtfsPermissionsAsync(string path, UserPermission[] users, string usersOU, bool resetChildPermissions) - { + public void GrantGroupNtfsPermissionsAsync(string path, UserPermission[] users, string usersOU, bool resetChildPermissions) { this.GrantGroupNtfsPermissionsAsync(path, users, usersOU, resetChildPermissions, null); } - + /// - public void GrantGroupNtfsPermissionsAsync(string path, UserPermission[] users, string usersOU, bool resetChildPermissions, object userState) - { - if ((this.GrantGroupNtfsPermissionsOperationCompleted == null)) - { + public void GrantGroupNtfsPermissionsAsync(string path, UserPermission[] users, string usersOU, bool resetChildPermissions, object userState) { + if ((this.GrantGroupNtfsPermissionsOperationCompleted == null)) { this.GrantGroupNtfsPermissionsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGrantGroupNtfsPermissionsOperationCompleted); } this.InvokeAsync("GrantGroupNtfsPermissions", new object[] { @@ -1728,21 +1502,18 @@ namespace WebsitePanel.Providers.OS usersOU, resetChildPermissions}, this.GrantGroupNtfsPermissionsOperationCompleted, userState); } - - private void OnGrantGroupNtfsPermissionsOperationCompleted(object arg) - { - if ((this.GrantGroupNtfsPermissionsCompleted != null)) - { + + private void OnGrantGroupNtfsPermissionsOperationCompleted(object arg) { + if ((this.GrantGroupNtfsPermissionsCompleted != null)) { System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); this.GrantGroupNtfsPermissionsCompleted(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/SetQuotaLimitOnFolder", 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 SetQuotaLimitOnFolder(string folderPath, string shareNameDrive, QuotaType quotaType, string quotaLimit, int mode, string wmiUserName, string wmiPassword) - { + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/SetQuotaLimitOnFolder", 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 SetQuotaLimitOnFolder(string folderPath, string shareNameDrive, QuotaType quotaType, string quotaLimit, int mode, string wmiUserName, string wmiPassword) { this.Invoke("SetQuotaLimitOnFolder", new object[] { folderPath, shareNameDrive, @@ -1752,10 +1523,9 @@ namespace WebsitePanel.Providers.OS wmiUserName, wmiPassword}); } - + /// - public System.IAsyncResult BeginSetQuotaLimitOnFolder(string folderPath, string shareNameDrive, QuotaType quotaType, string quotaLimit, int mode, string wmiUserName, string wmiPassword, System.AsyncCallback callback, object asyncState) - { + public System.IAsyncResult BeginSetQuotaLimitOnFolder(string folderPath, string shareNameDrive, QuotaType quotaType, string quotaLimit, int mode, string wmiUserName, string wmiPassword, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("SetQuotaLimitOnFolder", new object[] { folderPath, shareNameDrive, @@ -1765,24 +1535,20 @@ namespace WebsitePanel.Providers.OS wmiUserName, wmiPassword}, callback, asyncState); } - + /// - public void EndSetQuotaLimitOnFolder(System.IAsyncResult asyncResult) - { + public void EndSetQuotaLimitOnFolder(System.IAsyncResult asyncResult) { this.EndInvoke(asyncResult); } - + /// - public void SetQuotaLimitOnFolderAsync(string folderPath, string shareNameDrive, QuotaType quotaType, string quotaLimit, int mode, string wmiUserName, string wmiPassword) - { + public void SetQuotaLimitOnFolderAsync(string folderPath, string shareNameDrive, QuotaType quotaType, string quotaLimit, int mode, string wmiUserName, string wmiPassword) { this.SetQuotaLimitOnFolderAsync(folderPath, shareNameDrive, quotaType, quotaLimit, mode, wmiUserName, wmiPassword, null); } - + /// - public void SetQuotaLimitOnFolderAsync(string folderPath, string shareNameDrive, QuotaType quotaType, string quotaLimit, int mode, string wmiUserName, string wmiPassword, object userState) - { - if ((this.SetQuotaLimitOnFolderOperationCompleted == null)) - { + public void SetQuotaLimitOnFolderAsync(string folderPath, string shareNameDrive, QuotaType quotaType, string quotaLimit, int mode, string wmiUserName, string wmiPassword, object userState) { + if ((this.SetQuotaLimitOnFolderOperationCompleted == null)) { this.SetQuotaLimitOnFolderOperationCompleted = new System.Threading.SendOrPostCallback(this.OnSetQuotaLimitOnFolderOperationCompleted); } this.InvokeAsync("SetQuotaLimitOnFolder", new object[] { @@ -1794,1241 +1560,1144 @@ namespace WebsitePanel.Providers.OS wmiUserName, wmiPassword}, this.SetQuotaLimitOnFolderOperationCompleted, userState); } - - private void OnSetQuotaLimitOnFolderOperationCompleted(object arg) - { - if ((this.SetQuotaLimitOnFolderCompleted != null)) - { + + private void OnSetQuotaLimitOnFolderOperationCompleted(object arg) { + if ((this.SetQuotaLimitOnFolderCompleted != null)) { System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); this.SetQuotaLimitOnFolderCompleted(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/GetQuotaLimitOnFolder", 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 int GetQuotaLimitOnFolder(string folderPath, string wmiUserName, string wmiPassword) - { - object[] results = this.Invoke("GetQuotaLimitOnFolder", new object[] { + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/GetQuotaOnFolder", 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 Quota GetQuotaOnFolder(string folderPath, string wmiUserName, string wmiPassword) { + object[] results = this.Invoke("GetQuotaOnFolder", new object[] { folderPath, wmiUserName, wmiPassword}); - return ((int)(results[0])); + return ((Quota)(results[0])); } - + /// - public System.IAsyncResult BeginGetQuotaLimitOnFolder(string folderPath, string wmiUserName, string wmiPassword, System.AsyncCallback callback, object asyncState) - { - return this.BeginInvoke("GetQuotaLimitOnFolder", new object[] { + public System.IAsyncResult BeginGetQuotaOnFolder(string folderPath, string wmiUserName, string wmiPassword, System.AsyncCallback callback, object asyncState) { + return this.BeginInvoke("GetQuotaOnFolder", new object[] { folderPath, wmiUserName, wmiPassword}, callback, asyncState); } - + /// - public int EndGetQuotaLimitOnFolder(System.IAsyncResult asyncResult) - { + public Quota EndGetQuotaOnFolder(System.IAsyncResult asyncResult) { object[] results = this.EndInvoke(asyncResult); - return ((int)(results[0])); + return ((Quota)(results[0])); } - + /// - public void GetQuotaLimitOnFolderAsync(string folderPath, string wmiUserName, string wmiPassword) - { - this.GetQuotaLimitOnFolderAsync(folderPath, wmiUserName, wmiPassword, null); + public void GetQuotaOnFolderAsync(string folderPath, string wmiUserName, string wmiPassword) { + this.GetQuotaOnFolderAsync(folderPath, wmiUserName, wmiPassword, null); } - + /// - public void GetQuotaLimitOnFolderAsync(string folderPath, string wmiUserName, string wmiPassword, object userState) - { - if ((this.GetQuotaLimitOnFolderOperationCompleted == null)) - { - this.GetQuotaLimitOnFolderOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetQuotaLimitOnFolderOperationCompleted); + public void GetQuotaOnFolderAsync(string folderPath, string wmiUserName, string wmiPassword, object userState) { + if ((this.GetQuotaOnFolderOperationCompleted == null)) { + this.GetQuotaOnFolderOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetQuotaOnFolderOperationCompleted); } - this.InvokeAsync("GetQuotaLimitOnFolder", new object[] { + this.InvokeAsync("GetQuotaOnFolder", new object[] { folderPath, wmiUserName, - wmiPassword}, this.GetQuotaLimitOnFolderOperationCompleted, userState); + wmiPassword}, this.GetQuotaOnFolderOperationCompleted, userState); } - - private void OnGetQuotaLimitOnFolderOperationCompleted(object arg) - { - if ((this.GetQuotaLimitOnFolderCompleted != null)) - { + + private void OnGetQuotaOnFolderOperationCompleted(object arg) { + if ((this.GetQuotaOnFolderCompleted != null)) { System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); - this.GetQuotaLimitOnFolderCompleted(this, new GetQuotaLimitOnFolderCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + this.GetQuotaOnFolderCompleted(this, new GetQuotaOnFolderCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); } } - + /// [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")] - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/DeleteDirectoryRecursive", 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 DeleteDirectoryRecursive(string rootPath) - { + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/DeleteDirectoryRecursive", 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 DeleteDirectoryRecursive(string rootPath) { this.Invoke("DeleteDirectoryRecursive", new object[] { rootPath}); } - + /// - public System.IAsyncResult BeginDeleteDirectoryRecursive(string rootPath, System.AsyncCallback callback, object asyncState) - { + public System.IAsyncResult BeginDeleteDirectoryRecursive(string rootPath, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("DeleteDirectoryRecursive", new object[] { rootPath}, callback, asyncState); } - + /// - public void EndDeleteDirectoryRecursive(System.IAsyncResult asyncResult) - { + public void EndDeleteDirectoryRecursive(System.IAsyncResult asyncResult) { this.EndInvoke(asyncResult); } - + /// - public void DeleteDirectoryRecursiveAsync(string rootPath) - { + public void DeleteDirectoryRecursiveAsync(string rootPath) { this.DeleteDirectoryRecursiveAsync(rootPath, null); } - + /// - public void DeleteDirectoryRecursiveAsync(string rootPath, object userState) - { - if ((this.DeleteDirectoryRecursiveOperationCompleted == null)) - { + public void DeleteDirectoryRecursiveAsync(string rootPath, object userState) { + if ((this.DeleteDirectoryRecursiveOperationCompleted == null)) { this.DeleteDirectoryRecursiveOperationCompleted = new System.Threading.SendOrPostCallback(this.OnDeleteDirectoryRecursiveOperationCompleted); } this.InvokeAsync("DeleteDirectoryRecursive", new object[] { rootPath}, this.DeleteDirectoryRecursiveOperationCompleted, userState); } - - private void OnDeleteDirectoryRecursiveOperationCompleted(object arg) - { - if ((this.DeleteDirectoryRecursiveCompleted != null)) - { + + private void OnDeleteDirectoryRecursiveOperationCompleted(object arg) { + if ((this.DeleteDirectoryRecursiveCompleted != null)) { System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); this.DeleteDirectoryRecursiveCompleted(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/CheckFileServicesInstallation", 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 CheckFileServicesInstallation() - { + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/CheckFileServicesInstallation", 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 CheckFileServicesInstallation() { object[] results = this.Invoke("CheckFileServicesInstallation", new object[0]); return ((bool)(results[0])); } - + /// - public System.IAsyncResult BeginCheckFileServicesInstallation(System.AsyncCallback callback, object asyncState) - { + public System.IAsyncResult BeginCheckFileServicesInstallation(System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("CheckFileServicesInstallation", new object[0], callback, asyncState); } - + /// - public bool EndCheckFileServicesInstallation(System.IAsyncResult asyncResult) - { + public bool EndCheckFileServicesInstallation(System.IAsyncResult asyncResult) { object[] results = this.EndInvoke(asyncResult); return ((bool)(results[0])); } - + /// - public void CheckFileServicesInstallationAsync() - { + public void CheckFileServicesInstallationAsync() { this.CheckFileServicesInstallationAsync(null); } - + /// - public void CheckFileServicesInstallationAsync(object userState) - { - if ((this.CheckFileServicesInstallationOperationCompleted == null)) - { + public void CheckFileServicesInstallationAsync(object userState) { + if ((this.CheckFileServicesInstallationOperationCompleted == null)) { this.CheckFileServicesInstallationOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCheckFileServicesInstallationOperationCompleted); } this.InvokeAsync("CheckFileServicesInstallation", new object[0], this.CheckFileServicesInstallationOperationCompleted, userState); } - - private void OnCheckFileServicesInstallationOperationCompleted(object arg) - { - if ((this.CheckFileServicesInstallationCompleted != null)) - { + + private void OnCheckFileServicesInstallationOperationCompleted(object arg) { + if ((this.CheckFileServicesInstallationCompleted != null)) { System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); this.CheckFileServicesInstallationCompleted(this, new CheckFileServicesInstallationCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); } } - + /// [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")] - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/GetFolderGraph", 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 FolderGraph GetFolderGraph(string path) - { + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/GetFolderGraph", 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 FolderGraph GetFolderGraph(string path) { object[] results = this.Invoke("GetFolderGraph", new object[] { path}); return ((FolderGraph)(results[0])); } - + /// - public System.IAsyncResult BeginGetFolderGraph(string path, System.AsyncCallback callback, object asyncState) - { + public System.IAsyncResult BeginGetFolderGraph(string path, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("GetFolderGraph", new object[] { path}, callback, asyncState); } - + /// - public FolderGraph EndGetFolderGraph(System.IAsyncResult asyncResult) - { + public FolderGraph EndGetFolderGraph(System.IAsyncResult asyncResult) { object[] results = this.EndInvoke(asyncResult); return ((FolderGraph)(results[0])); } - + /// - public void GetFolderGraphAsync(string path) - { + public void GetFolderGraphAsync(string path) { this.GetFolderGraphAsync(path, null); } - + /// - public void GetFolderGraphAsync(string path, object userState) - { - if ((this.GetFolderGraphOperationCompleted == null)) - { + public void GetFolderGraphAsync(string path, object userState) { + if ((this.GetFolderGraphOperationCompleted == null)) { this.GetFolderGraphOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetFolderGraphOperationCompleted); } this.InvokeAsync("GetFolderGraph", new object[] { path}, this.GetFolderGraphOperationCompleted, userState); } - - private void OnGetFolderGraphOperationCompleted(object arg) - { - if ((this.GetFolderGraphCompleted != null)) - { + + private void OnGetFolderGraphOperationCompleted(object arg) { + if ((this.GetFolderGraphCompleted != null)) { System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); this.GetFolderGraphCompleted(this, new GetFolderGraphCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); } } - + /// [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")] - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/ExecuteSyncActions", 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 ExecuteSyncActions(FileSyncAction[] actions) - { + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/ExecuteSyncActions", 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 ExecuteSyncActions(FileSyncAction[] actions) { this.Invoke("ExecuteSyncActions", new object[] { actions}); } - + /// - public System.IAsyncResult BeginExecuteSyncActions(FileSyncAction[] actions, System.AsyncCallback callback, object asyncState) - { + public System.IAsyncResult BeginExecuteSyncActions(FileSyncAction[] actions, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("ExecuteSyncActions", new object[] { actions}, callback, asyncState); } - + /// - public void EndExecuteSyncActions(System.IAsyncResult asyncResult) - { + public void EndExecuteSyncActions(System.IAsyncResult asyncResult) { this.EndInvoke(asyncResult); } - + /// - public void ExecuteSyncActionsAsync(FileSyncAction[] actions) - { + public void ExecuteSyncActionsAsync(FileSyncAction[] actions) { this.ExecuteSyncActionsAsync(actions, null); } - + /// - public void ExecuteSyncActionsAsync(FileSyncAction[] actions, object userState) - { - if ((this.ExecuteSyncActionsOperationCompleted == null)) - { + public void ExecuteSyncActionsAsync(FileSyncAction[] actions, object userState) { + if ((this.ExecuteSyncActionsOperationCompleted == null)) { this.ExecuteSyncActionsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnExecuteSyncActionsOperationCompleted); } this.InvokeAsync("ExecuteSyncActions", new object[] { actions}, this.ExecuteSyncActionsOperationCompleted, userState); } - - private void OnExecuteSyncActionsOperationCompleted(object arg) - { - if ((this.ExecuteSyncActionsCompleted != null)) - { + + private void OnExecuteSyncActionsOperationCompleted(object arg) { + if ((this.ExecuteSyncActionsCompleted != null)) { System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); this.ExecuteSyncActionsCompleted(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/GetInstalledOdbcDrivers", 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 string[] GetInstalledOdbcDrivers() - { + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/GetInstalledOdbcDrivers", 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 string[] GetInstalledOdbcDrivers() { object[] results = this.Invoke("GetInstalledOdbcDrivers", new object[0]); return ((string[])(results[0])); } - + /// - public System.IAsyncResult BeginGetInstalledOdbcDrivers(System.AsyncCallback callback, object asyncState) - { + public System.IAsyncResult BeginGetInstalledOdbcDrivers(System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("GetInstalledOdbcDrivers", new object[0], callback, asyncState); } - + /// - public string[] EndGetInstalledOdbcDrivers(System.IAsyncResult asyncResult) - { + public string[] EndGetInstalledOdbcDrivers(System.IAsyncResult asyncResult) { object[] results = this.EndInvoke(asyncResult); return ((string[])(results[0])); } - + /// - public void GetInstalledOdbcDriversAsync() - { + public void GetInstalledOdbcDriversAsync() { this.GetInstalledOdbcDriversAsync(null); } - + /// - public void GetInstalledOdbcDriversAsync(object userState) - { - if ((this.GetInstalledOdbcDriversOperationCompleted == null)) - { + public void GetInstalledOdbcDriversAsync(object userState) { + if ((this.GetInstalledOdbcDriversOperationCompleted == null)) { this.GetInstalledOdbcDriversOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetInstalledOdbcDriversOperationCompleted); } this.InvokeAsync("GetInstalledOdbcDrivers", new object[0], this.GetInstalledOdbcDriversOperationCompleted, userState); } - - private void OnGetInstalledOdbcDriversOperationCompleted(object arg) - { - if ((this.GetInstalledOdbcDriversCompleted != null)) - { + + private void OnGetInstalledOdbcDriversOperationCompleted(object arg) { + if ((this.GetInstalledOdbcDriversCompleted != null)) { System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); this.GetInstalledOdbcDriversCompleted(this, new GetInstalledOdbcDriversCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); } } - + /// [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")] - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/GetDSNNames", 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 string[] GetDSNNames() - { + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/GetDSNNames", 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 string[] GetDSNNames() { object[] results = this.Invoke("GetDSNNames", new object[0]); return ((string[])(results[0])); } - + /// - public System.IAsyncResult BeginGetDSNNames(System.AsyncCallback callback, object asyncState) - { + public System.IAsyncResult BeginGetDSNNames(System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("GetDSNNames", new object[0], callback, asyncState); } - + /// - public string[] EndGetDSNNames(System.IAsyncResult asyncResult) - { + public string[] EndGetDSNNames(System.IAsyncResult asyncResult) { object[] results = this.EndInvoke(asyncResult); return ((string[])(results[0])); } - + /// - public void GetDSNNamesAsync() - { + public void GetDSNNamesAsync() { this.GetDSNNamesAsync(null); } - + /// - public void GetDSNNamesAsync(object userState) - { - if ((this.GetDSNNamesOperationCompleted == null)) - { + public void GetDSNNamesAsync(object userState) { + if ((this.GetDSNNamesOperationCompleted == null)) { this.GetDSNNamesOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetDSNNamesOperationCompleted); } this.InvokeAsync("GetDSNNames", new object[0], this.GetDSNNamesOperationCompleted, userState); } - - private void OnGetDSNNamesOperationCompleted(object arg) - { - if ((this.GetDSNNamesCompleted != null)) - { + + private void OnGetDSNNamesOperationCompleted(object arg) { + if ((this.GetDSNNamesCompleted != null)) { System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); this.GetDSNNamesCompleted(this, new GetDSNNamesCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); } } - + /// [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")] - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/GetDSN", 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 SystemDSN GetDSN(string dsnName) - { + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/GetDSN", 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 SystemDSN GetDSN(string dsnName) { object[] results = this.Invoke("GetDSN", new object[] { dsnName}); return ((SystemDSN)(results[0])); } - + /// - public System.IAsyncResult BeginGetDSN(string dsnName, System.AsyncCallback callback, object asyncState) - { + public System.IAsyncResult BeginGetDSN(string dsnName, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("GetDSN", new object[] { dsnName}, callback, asyncState); } - + /// - public SystemDSN EndGetDSN(System.IAsyncResult asyncResult) - { + public SystemDSN EndGetDSN(System.IAsyncResult asyncResult) { object[] results = this.EndInvoke(asyncResult); return ((SystemDSN)(results[0])); } - + /// - public void GetDSNAsync(string dsnName) - { + public void GetDSNAsync(string dsnName) { this.GetDSNAsync(dsnName, null); } - + /// - public void GetDSNAsync(string dsnName, object userState) - { - if ((this.GetDSNOperationCompleted == null)) - { + public void GetDSNAsync(string dsnName, object userState) { + if ((this.GetDSNOperationCompleted == null)) { this.GetDSNOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetDSNOperationCompleted); } this.InvokeAsync("GetDSN", new object[] { dsnName}, this.GetDSNOperationCompleted, userState); } - - private void OnGetDSNOperationCompleted(object arg) - { - if ((this.GetDSNCompleted != null)) - { + + private void OnGetDSNOperationCompleted(object arg) { + if ((this.GetDSNCompleted != null)) { System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); this.GetDSNCompleted(this, new GetDSNCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); } } - + /// [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")] - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/CreateDSN", 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 CreateDSN(SystemDSN dsn) - { + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/CreateDSN", 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 CreateDSN(SystemDSN dsn) { this.Invoke("CreateDSN", new object[] { dsn}); } - + /// - public System.IAsyncResult BeginCreateDSN(SystemDSN dsn, System.AsyncCallback callback, object asyncState) - { + public System.IAsyncResult BeginCreateDSN(SystemDSN dsn, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("CreateDSN", new object[] { dsn}, callback, asyncState); } - + /// - public void EndCreateDSN(System.IAsyncResult asyncResult) - { + public void EndCreateDSN(System.IAsyncResult asyncResult) { this.EndInvoke(asyncResult); } - + /// - public void CreateDSNAsync(SystemDSN dsn) - { + public void CreateDSNAsync(SystemDSN dsn) { this.CreateDSNAsync(dsn, null); } - + /// - public void CreateDSNAsync(SystemDSN dsn, object userState) - { - if ((this.CreateDSNOperationCompleted == null)) - { + public void CreateDSNAsync(SystemDSN dsn, object userState) { + if ((this.CreateDSNOperationCompleted == null)) { this.CreateDSNOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCreateDSNOperationCompleted); } this.InvokeAsync("CreateDSN", new object[] { dsn}, this.CreateDSNOperationCompleted, userState); } - - private void OnCreateDSNOperationCompleted(object arg) - { - if ((this.CreateDSNCompleted != null)) - { + + private void OnCreateDSNOperationCompleted(object arg) { + if ((this.CreateDSNCompleted != null)) { System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); this.CreateDSNCompleted(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/UpdateDSN", 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 UpdateDSN(SystemDSN dsn) - { + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/UpdateDSN", 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 UpdateDSN(SystemDSN dsn) { this.Invoke("UpdateDSN", new object[] { dsn}); } - + /// - public System.IAsyncResult BeginUpdateDSN(SystemDSN dsn, System.AsyncCallback callback, object asyncState) - { + public System.IAsyncResult BeginUpdateDSN(SystemDSN dsn, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("UpdateDSN", new object[] { dsn}, callback, asyncState); } - + /// - public void EndUpdateDSN(System.IAsyncResult asyncResult) - { + public void EndUpdateDSN(System.IAsyncResult asyncResult) { this.EndInvoke(asyncResult); } - + /// - public void UpdateDSNAsync(SystemDSN dsn) - { + public void UpdateDSNAsync(SystemDSN dsn) { this.UpdateDSNAsync(dsn, null); } - + /// - public void UpdateDSNAsync(SystemDSN dsn, object userState) - { - if ((this.UpdateDSNOperationCompleted == null)) - { + public void UpdateDSNAsync(SystemDSN dsn, object userState) { + if ((this.UpdateDSNOperationCompleted == null)) { this.UpdateDSNOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUpdateDSNOperationCompleted); } this.InvokeAsync("UpdateDSN", new object[] { dsn}, this.UpdateDSNOperationCompleted, userState); } - - private void OnUpdateDSNOperationCompleted(object arg) - { - if ((this.UpdateDSNCompleted != null)) - { + + private void OnUpdateDSNOperationCompleted(object arg) { + if ((this.UpdateDSNCompleted != null)) { System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); this.UpdateDSNCompleted(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/DeleteDSN", 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 DeleteDSN(string dsnName) - { + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/DeleteDSN", 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 DeleteDSN(string dsnName) { this.Invoke("DeleteDSN", new object[] { dsnName}); } - + /// - public System.IAsyncResult BeginDeleteDSN(string dsnName, System.AsyncCallback callback, object asyncState) - { + public System.IAsyncResult BeginDeleteDSN(string dsnName, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("DeleteDSN", new object[] { dsnName}, callback, asyncState); } - + /// - public void EndDeleteDSN(System.IAsyncResult asyncResult) - { + public void EndDeleteDSN(System.IAsyncResult asyncResult) { this.EndInvoke(asyncResult); } - + /// - public void DeleteDSNAsync(string dsnName) - { + public void DeleteDSNAsync(string dsnName) { this.DeleteDSNAsync(dsnName, null); } - + /// - public void DeleteDSNAsync(string dsnName, object userState) - { - if ((this.DeleteDSNOperationCompleted == null)) - { + public void DeleteDSNAsync(string dsnName, object userState) { + if ((this.DeleteDSNOperationCompleted == null)) { this.DeleteDSNOperationCompleted = new System.Threading.SendOrPostCallback(this.OnDeleteDSNOperationCompleted); } this.InvokeAsync("DeleteDSN", new object[] { dsnName}, this.DeleteDSNOperationCompleted, userState); } - - private void OnDeleteDSNOperationCompleted(object arg) - { - if ((this.DeleteDSNCompleted != null)) - { + + private void OnDeleteDSNOperationCompleted(object arg) { + if ((this.DeleteDSNCompleted != null)) { System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); this.DeleteDSNCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); } } - + /// - public new void CancelAsync(object userState) - { + [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")] + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/GetDomainDnsRecords", 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 DnsRecordInfo[] GetDomainDnsRecords(string domain, string dnsServer, DnsRecordType recordType) { + object[] results = this.Invoke("GetDomainDnsRecords", new object[] { + domain, + dnsServer, + recordType}); + return ((DnsRecordInfo[])(results[0])); + } + + /// + public System.IAsyncResult BeginGetDomainDnsRecords(string domain, string dnsServer, DnsRecordType recordType, System.AsyncCallback callback, object asyncState) { + return this.BeginInvoke("GetDomainDnsRecords", new object[] { + domain, + dnsServer, + recordType}, callback, asyncState); + } + + /// + public DnsRecordInfo[] EndGetDomainDnsRecords(System.IAsyncResult asyncResult) { + object[] results = this.EndInvoke(asyncResult); + return ((DnsRecordInfo[])(results[0])); + } + + /// + public void GetDomainDnsRecordsAsync(string domain, string dnsServer, DnsRecordType recordType) { + this.GetDomainDnsRecordsAsync(domain, dnsServer, recordType, null); + } + + /// + public void GetDomainDnsRecordsAsync(string domain, string dnsServer, DnsRecordType recordType, object userState) { + if ((this.GetDomainDnsRecordsOperationCompleted == null)) { + this.GetDomainDnsRecordsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetDomainDnsRecordsOperationCompleted); + } + this.InvokeAsync("GetDomainDnsRecords", new object[] { + domain, + dnsServer, + recordType}, this.GetDomainDnsRecordsOperationCompleted, userState); + } + + private void OnGetDomainDnsRecordsOperationCompleted(object arg) { + if ((this.GetDomainDnsRecordsCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetDomainDnsRecordsCompleted(this, new GetDomainDnsRecordsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + public new void CancelAsync(object userState) { base.CancelAsync(userState); } } - + /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void CreatePackageFolderCompletedEventHandler(object sender, CreatePackageFolderCompletedEventArgs e); - + /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] - public partial class CreatePackageFolderCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs - { - + public partial class CreatePackageFolderCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + private object[] results; - - internal CreatePackageFolderCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : - base(exception, cancelled, userState) - { + + internal CreatePackageFolderCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { this.results = results; } - + /// - public string Result - { - get - { + public string Result { + get { this.RaiseExceptionIfNecessary(); return ((string)(this.results[0])); } } } - + /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void FileExistsCompletedEventHandler(object sender, FileExistsCompletedEventArgs e); - + /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] - public partial class FileExistsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs - { - + public partial class FileExistsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + private object[] results; - - internal FileExistsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : - base(exception, cancelled, userState) - { + + internal FileExistsCompletedEventArgs(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.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void DirectoryExistsCompletedEventHandler(object sender, DirectoryExistsCompletedEventArgs e); - + /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] - public partial class DirectoryExistsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs - { - + public partial class DirectoryExistsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + private object[] results; - - internal DirectoryExistsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : - base(exception, cancelled, userState) - { + + internal DirectoryExistsCompletedEventArgs(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.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void GetFileCompletedEventHandler(object sender, GetFileCompletedEventArgs e); - + /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] - public partial class GetFileCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs - { - + public partial class GetFileCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + private object[] results; - - internal GetFileCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : - base(exception, cancelled, userState) - { + + internal GetFileCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { this.results = results; } - + /// - public SystemFile Result - { - get - { + public SystemFile Result { + get { this.RaiseExceptionIfNecessary(); return ((SystemFile)(this.results[0])); } } } - + /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void GetFilesCompletedEventHandler(object sender, GetFilesCompletedEventArgs e); - + /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] - public partial class GetFilesCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs - { - + public partial class GetFilesCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + private object[] results; - - internal GetFilesCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : - base(exception, cancelled, userState) - { + + internal GetFilesCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { this.results = results; } - + /// - public SystemFile[] Result - { - get - { + public SystemFile[] Result { + get { this.RaiseExceptionIfNecessary(); return ((SystemFile[])(this.results[0])); } } } - + /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void GetDirectoriesRecursiveCompletedEventHandler(object sender, GetDirectoriesRecursiveCompletedEventArgs e); - + /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] - public partial class GetDirectoriesRecursiveCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs - { - + public partial class GetDirectoriesRecursiveCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + private object[] results; - - internal GetDirectoriesRecursiveCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : - base(exception, cancelled, userState) - { + + internal GetDirectoriesRecursiveCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { this.results = results; } - + /// - public SystemFile[] Result - { - get - { + public SystemFile[] Result { + get { this.RaiseExceptionIfNecessary(); return ((SystemFile[])(this.results[0])); } } } - + /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void GetFilesRecursiveCompletedEventHandler(object sender, GetFilesRecursiveCompletedEventArgs e); - + /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] - public partial class GetFilesRecursiveCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs - { - + public partial class GetFilesRecursiveCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + private object[] results; - - internal GetFilesRecursiveCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : - base(exception, cancelled, userState) - { + + internal GetFilesRecursiveCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { this.results = results; } - + /// - public SystemFile[] Result - { - get - { + public SystemFile[] Result { + get { this.RaiseExceptionIfNecessary(); return ((SystemFile[])(this.results[0])); } } } - + /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void GetFilesRecursiveByPatternCompletedEventHandler(object sender, GetFilesRecursiveByPatternCompletedEventArgs e); - + /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] - public partial class GetFilesRecursiveByPatternCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs - { - + public partial class GetFilesRecursiveByPatternCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + private object[] results; - - internal GetFilesRecursiveByPatternCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : - base(exception, cancelled, userState) - { + + internal GetFilesRecursiveByPatternCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { this.results = results; } - + /// - public SystemFile[] Result - { - get - { + public SystemFile[] Result { + get { this.RaiseExceptionIfNecessary(); return ((SystemFile[])(this.results[0])); } } } - + /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void GetFileBinaryContentCompletedEventHandler(object sender, GetFileBinaryContentCompletedEventArgs e); - + /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] - public partial class GetFileBinaryContentCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs - { - + public partial class GetFileBinaryContentCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + private object[] results; - - internal GetFileBinaryContentCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : - base(exception, cancelled, userState) - { + + internal GetFileBinaryContentCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { this.results = results; } - + /// - public byte[] Result - { - get - { + public byte[] Result { + get { this.RaiseExceptionIfNecessary(); return ((byte[])(this.results[0])); } } } - + /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void GetFileBinaryContentUsingEncodingCompletedEventHandler(object sender, GetFileBinaryContentUsingEncodingCompletedEventArgs e); - + /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] - public partial class GetFileBinaryContentUsingEncodingCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs - { - + public partial class GetFileBinaryContentUsingEncodingCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + private object[] results; - - internal GetFileBinaryContentUsingEncodingCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : - base(exception, cancelled, userState) - { + + internal GetFileBinaryContentUsingEncodingCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { this.results = results; } - + /// - public byte[] Result - { - get - { + public byte[] Result { + get { this.RaiseExceptionIfNecessary(); return ((byte[])(this.results[0])); } } } - + /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void GetFileBinaryChunkCompletedEventHandler(object sender, GetFileBinaryChunkCompletedEventArgs e); - + /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] - public partial class GetFileBinaryChunkCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs - { - + public partial class GetFileBinaryChunkCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + private object[] results; - - internal GetFileBinaryChunkCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : - base(exception, cancelled, userState) - { + + internal GetFileBinaryChunkCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { this.results = results; } - + /// - public byte[] Result - { - get - { + public byte[] Result { + get { this.RaiseExceptionIfNecessary(); return ((byte[])(this.results[0])); } } } - + /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void GetFileTextContentCompletedEventHandler(object sender, GetFileTextContentCompletedEventArgs e); - + /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] - public partial class GetFileTextContentCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs - { - + public partial class GetFileTextContentCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + private object[] results; - - internal GetFileTextContentCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : - base(exception, cancelled, userState) - { + + internal GetFileTextContentCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { this.results = results; } - + /// - public string Result - { - get - { + public string Result { + get { this.RaiseExceptionIfNecessary(); return ((string)(this.results[0])); } } } - + /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void CreateFileCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e); - + /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void CreateDirectoryCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e); - + /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void ChangeFileAttributesCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e); - + /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void DeleteFileCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e); - + /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void DeleteFilesCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e); - + /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void DeleteEmptyDirectoriesCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e); - + /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void UpdateFileBinaryContentCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e); - + /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void UpdateFileBinaryContentUsingEncodingCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e); - + /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void AppendFileBinaryContentCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e); - + /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void UpdateFileTextContentCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e); - + /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void MoveFileCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e); - + /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void CopyFileCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e); - + /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void ZipFilesCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e); - + /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void UnzipFilesCompletedEventHandler(object sender, UnzipFilesCompletedEventArgs e); - + /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] - public partial class UnzipFilesCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs - { - + public partial class UnzipFilesCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + private object[] results; - - internal UnzipFilesCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : - base(exception, cancelled, userState) - { + + internal UnzipFilesCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { this.results = results; } - + /// - public string[] Result - { - get - { + public string[] Result { + get { this.RaiseExceptionIfNecessary(); return ((string[])(this.results[0])); } } } - + /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void CreateAccessDatabaseCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e); - + /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void GetGroupNtfsPermissionsCompletedEventHandler(object sender, GetGroupNtfsPermissionsCompletedEventArgs e); - + /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] - public partial class GetGroupNtfsPermissionsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs - { - + public partial class GetGroupNtfsPermissionsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + private object[] results; - - internal GetGroupNtfsPermissionsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : - base(exception, cancelled, userState) - { + + internal GetGroupNtfsPermissionsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { this.results = results; } - + /// - public UserPermission[] Result - { - get - { + public UserPermission[] Result { + get { this.RaiseExceptionIfNecessary(); return ((UserPermission[])(this.results[0])); } } } - + /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void GrantGroupNtfsPermissionsCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e); - + /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void SetQuotaLimitOnFolderCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e); - + /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] - public delegate void GetQuotaLimitOnFolderCompletedEventHandler(object sender, GetQuotaLimitOnFolderCompletedEventArgs e); - + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + public delegate void GetQuotaOnFolderCompletedEventHandler(object sender, GetQuotaOnFolderCompletedEventArgs e); + /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] - public partial class GetQuotaLimitOnFolderCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs - { - + public partial class GetQuotaOnFolderCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + private object[] results; - - internal GetQuotaLimitOnFolderCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : - base(exception, cancelled, userState) - { + + internal GetQuotaOnFolderCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { this.results = results; } - + /// - public int Result - { - get - { + public Quota Result { + get { this.RaiseExceptionIfNecessary(); - return ((int)(this.results[0])); + return ((Quota)(this.results[0])); } } } - + /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void DeleteDirectoryRecursiveCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e); - + /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void CheckFileServicesInstallationCompletedEventHandler(object sender, CheckFileServicesInstallationCompletedEventArgs e); - + /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] - public partial class CheckFileServicesInstallationCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs - { - + public partial class CheckFileServicesInstallationCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + private object[] results; - - internal CheckFileServicesInstallationCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : - base(exception, cancelled, userState) - { + + internal CheckFileServicesInstallationCompletedEventArgs(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.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void GetFolderGraphCompletedEventHandler(object sender, GetFolderGraphCompletedEventArgs e); - + /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] - public partial class GetFolderGraphCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs - { - + public partial class GetFolderGraphCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + private object[] results; - - internal GetFolderGraphCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : - base(exception, cancelled, userState) - { + + internal GetFolderGraphCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { this.results = results; } - + /// - public FolderGraph Result - { - get - { + public FolderGraph Result { + get { this.RaiseExceptionIfNecessary(); return ((FolderGraph)(this.results[0])); } } } - + /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void ExecuteSyncActionsCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e); - + /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void GetInstalledOdbcDriversCompletedEventHandler(object sender, GetInstalledOdbcDriversCompletedEventArgs e); - + /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] - public partial class GetInstalledOdbcDriversCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs - { - + public partial class GetInstalledOdbcDriversCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + private object[] results; - - internal GetInstalledOdbcDriversCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : - base(exception, cancelled, userState) - { + + internal GetInstalledOdbcDriversCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { this.results = results; } - + /// - public string[] Result - { - get - { + public string[] Result { + get { this.RaiseExceptionIfNecessary(); return ((string[])(this.results[0])); } } } - + /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void GetDSNNamesCompletedEventHandler(object sender, GetDSNNamesCompletedEventArgs e); - + /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] - public partial class GetDSNNamesCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs - { - + public partial class GetDSNNamesCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + private object[] results; - - internal GetDSNNamesCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : - base(exception, cancelled, userState) - { + + internal GetDSNNamesCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { this.results = results; } - + /// - public string[] Result - { - get - { + public string[] Result { + get { this.RaiseExceptionIfNecessary(); return ((string[])(this.results[0])); } } } - + /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void GetDSNCompletedEventHandler(object sender, GetDSNCompletedEventArgs e); - + /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] - public partial class GetDSNCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs - { - + public partial class GetDSNCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + private object[] results; - - internal GetDSNCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : - base(exception, cancelled, userState) - { + + internal GetDSNCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { this.results = results; } - + /// - public SystemDSN Result - { - get - { + public SystemDSN Result { + get { this.RaiseExceptionIfNecessary(); return ((SystemDSN)(this.results[0])); } } } - + /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void CreateDSNCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e); - + /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void UpdateDSNCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e); - + /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void DeleteDSNCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + public delegate void GetDomainDnsRecordsCompletedEventHandler(object sender, GetDomainDnsRecordsCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class GetDomainDnsRecordsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal GetDomainDnsRecordsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public DnsRecordInfo[] Result { + get { + this.RaiseExceptionIfNecessary(); + return ((DnsRecordInfo[])(this.results[0])); + } + } + } } diff --git a/WebsitePanel/Sources/WebsitePanel.Server/OperatingSystem.asmx.cs b/WebsitePanel/Sources/WebsitePanel.Server/OperatingSystem.asmx.cs index c082133e..20c80ca2 100644 --- a/WebsitePanel/Sources/WebsitePanel.Server/OperatingSystem.asmx.cs +++ b/WebsitePanel/Sources/WebsitePanel.Server/OperatingSystem.asmx.cs @@ -38,6 +38,9 @@ using Microsoft.Web.Services3; using WebsitePanel.Providers; using WebsitePanel.Providers.OS; using WebsitePanel.Server.Utils; +using WebsitePanel.Providers.DNS; +using WebsitePanel.Providers.DomainLookup; +using System.Collections.Generic; namespace WebsitePanel.Server { @@ -737,5 +740,26 @@ namespace WebsitePanel.Server } } #endregion + + #region Dns + + [WebMethod, SoapHeader("settings")] + public DnsRecordInfo[] GetDomainDnsRecords(string domain, string dnsServer, DnsRecordType recordType) + { + try + { + Log.WriteStart("'{0}' GetDomainDnsRecords", ProviderSettings.ProviderName); + var result = OsProvider.GetDomainDnsRecords(domain, dnsServer, recordType); + Log.WriteEnd("'{0}' GetDomainDnsRecords", ProviderSettings.ProviderName); + return result; + } + catch (Exception ex) + { + Log.WriteError(String.Format("'{0}' GetDomainDnsRecords", ProviderSettings.ProviderName), ex); + throw; + } + } + + #endregion } } 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 7508ff20..c8d36c92 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_GlobalResources/WebsitePanel_SharedResources.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_GlobalResources/WebsitePanel_SharedResources.ascx.resx @@ -5593,7 +5593,32 @@ Error creating rds collection. You need to add at least 1 rds server to collection - - Error deleting rds server from organization: server is used in rds collection + + Resource Mailboxes per Organization + + Shared Mailboxes per Organization + + + (room mailbox) + + + (shared mailbox) + + + (equipment mailbox) + + + Domain information has been successfully updated. + + + Web site has been successfully updated. + + + Check MX and NS on DNS servers + + + Check domain expiration date + + \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Themes/Default/Images/Exchange/shared_16.gif b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Themes/Default/Images/Exchange/shared_16.gif new file mode 100644 index 00000000..17af30c4 Binary files /dev/null and b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Themes/Default/Images/Exchange/shared_16.gif differ diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/Domains.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/Domains.ascx.resx index c48860e6..3116414f 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/Domains.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/Domains.ascx.resx @@ -112,10 +112,10 @@ 2.0 - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 Add New Domain @@ -198,4 +198,19 @@ Type + + Expired + + + Unknown + + + Expiration Date + + + Not Checked + + + Non-Existent + \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/DomainsEditDomain.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/DomainsEditDomain.ascx.resx index f9ef6f4f..72437c36 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/DomainsEditDomain.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/DomainsEditDomain.ascx.resx @@ -112,24 +112,18 @@ 2.0 - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - Save - - - Cancel - Delete if(!confirm('Do you really want to delete this domain?')) return false;ShowProgressDialog('Deleting domain...'); - + ShowProgressDialog('Updating Domain...'); diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/SettingsDomainExpirationLetter.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/SettingsDomainExpirationLetter.ascx.resx new file mode 100644 index 00000000..c0e9bcb8 --- /dev/null +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/SettingsDomainExpirationLetter.ascx.resx @@ -0,0 +1,147 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + High + + + Low + + + Normal + + + CC: + + + From: + + + HTML Body: + + + Priority: + + + Subject: + + + Text Body: + + \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/SettingsDomainLookupLetter.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/SettingsDomainLookupLetter.ascx.resx new file mode 100644 index 00000000..c0e9bcb8 --- /dev/null +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/SettingsDomainLookupLetter.ascx.resx @@ -0,0 +1,147 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + High + + + Low + + + Normal + + + CC: + + + From: + + + HTML Body: + + + Priority: + + + Subject: + + + Text Body: + + \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/UserAccountMailTemplateSettings.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/UserAccountMailTemplateSettings.ascx.resx index 61f11639..fddd4fbc 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/UserAccountMailTemplateSettings.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/UserAccountMailTemplateSettings.ascx.resx @@ -112,10 +112,10 @@ 2.0 - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 Cancel @@ -141,4 +141,10 @@ VPS Summary Letter + + Domain Expiration Letter + + + Domain MX and NS Letter + \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/WebSitesEditSite.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/WebSitesEditSite.ascx.resx index 7ef313a2..21e1cb0e 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/WebSitesEditSite.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/WebSitesEditSite.ascx.resx @@ -132,9 +132,6 @@ Create Directory - - Cancel - Change Password @@ -150,12 +147,9 @@ Uninstall - + ShowProgressDialog('Updating web site...'); - - Update - Continue Web Site diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Domains.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Domains.ascx index 30250fd8..e7b86704 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Domains.ascx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Domains.ascx @@ -25,7 +25,7 @@ CssSelectorClass="NormalGridView" AllowPaging="True" OnRowCommand="gvDomains_RowCommand"> - + @@ -37,6 +37,12 @@
+ + + + <%# GetDomainExpirationDate(Eval("ExpirationDate"), Eval("LastUpdateDate"))%> + + diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Domains.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Domains.ascx.cs index b14df618..77ccd425 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Domains.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Domains.ascx.cs @@ -49,10 +49,10 @@ namespace WebsitePanel.Portal // visibility chkRecursive.Visible = (PanelSecurity.SelectedUser.Role != UserRole.User); - gvDomains.Columns[2].Visible = gvDomains.Columns[3].Visible = + gvDomains.Columns[3].Visible = gvDomains.Columns[3].Visible = (PanelSecurity.SelectedUser.Role != UserRole.User) && chkRecursive.Checked; - gvDomains.Columns[4].Visible = (PanelSecurity.SelectedUser.Role == UserRole.Administrator); - gvDomains.Columns[5].Visible = (PanelSecurity.EffectiveUser.Role == UserRole.Administrator); + gvDomains.Columns[5].Visible = (PanelSecurity.SelectedUser.Role == UserRole.Administrator); + gvDomains.Columns[6].Visible = (PanelSecurity.EffectiveUser.Role == UserRole.Administrator); if (!IsPostBack) { @@ -100,6 +100,29 @@ namespace WebsitePanel.Portal return GetLocalizedString("DomainType.Domain"); } + public string GetDomainExpirationDate(object expirationDateObject, object LastUpdateDateObject) + { + var expirationDate = expirationDateObject as DateTime?; + var lastUpdateDate = LastUpdateDateObject as DateTime?; + + if (expirationDate != null && expirationDate < DateTime.Now) + { + return GetLocalizedString("DomainExpirationDate.Expired"); + } + else if(expirationDate != null) + { + return expirationDate.Value.ToShortDateString(); + } + else if (lastUpdateDate == null) + { + return GetLocalizedString("DomainExpirationDate.NotChecked"); + } + else + { + return GetLocalizedString("DomainExpirationDate.NotExist"); + } + } + protected void odsDomainsPaged_Selected(object sender, ObjectDataSourceStatusEventArgs e) { if (e.Exception != null) diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Domains.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Domains.ascx.designer.cs index be5acefc..4bfa5231 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Domains.ascx.designer.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Domains.ascx.designer.cs @@ -1,31 +1,3 @@ -// 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. diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/DomainsEditDomain.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/DomainsEditDomain.ascx index ab077baa..85fcb516 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/DomainsEditDomain.ascx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/DomainsEditDomain.ascx @@ -1,6 +1,7 @@ <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="DomainsEditDomain.ascx.cs" Inherits="WebsitePanel.Portal.DomainsEditDomain" %> <%@ Register Src="UserControls/EnableAsyncTasksSupport.ascx" TagName="EnableAsyncTasksSupport" TagPrefix="wsp" %> <%@ Register Src="UserControls/CollapsiblePanel.ascx" TagPrefix="wsp" TagName="CollapsiblePanel" %> +<%@ Register Src="UserControls/ItemButtonPanel.ascx" TagName="ItemButtonPanel" TagPrefix="wsp" %> @@ -119,9 +120,8 @@
- - +
\ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/DomainsEditDomain.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/DomainsEditDomain.ascx.cs index f2249fce..a03b0ac3 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/DomainsEditDomain.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/DomainsEditDomain.ascx.cs @@ -48,6 +48,9 @@ namespace WebsitePanel.Portal if (!IsPostBack) { BindDomain(); + + if (GetLocalizedString("buttonPanel.OnSaveClientClick") != null) + buttonPanel.OnSaveClientClick = GetLocalizedString("buttonPanel.OnSaveClientClick"); } } @@ -194,15 +197,13 @@ namespace WebsitePanel.Portal ShowResultMessage(result); return; } + ShowSuccessMessage("DOMAIN_UPDATE_DOMAIN"); } catch (Exception ex) { ShowErrorMessage("DOMAIN_UPDATE_DOMAIN", ex); return; } - - // return - RedirectSpaceHomePage(); } private void DeleteDomain() @@ -232,8 +233,10 @@ namespace WebsitePanel.Portal SaveDomain(); } - protected void btnCancel_Click(object sender, EventArgs e) + protected void btnSaveExit_Click(object sender, EventArgs e) { + SaveDomain(); + // return RedirectSpaceHomePage(); } diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/DomainsEditDomain.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/DomainsEditDomain.ascx.designer.cs index 9fc907ea..b80a1857 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/DomainsEditDomain.ascx.designer.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/DomainsEditDomain.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. // //------------------------------------------------------------------------------ @@ -428,22 +427,13 @@ namespace WebsitePanel.Portal { protected global::System.Web.UI.WebControls.Localize DescribeAllowSubDomains; /// - /// btnSave control. + /// buttonPanel control. /// /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. /// - protected global::System.Web.UI.WebControls.Button btnSave; - - /// - /// btnCancel control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::System.Web.UI.WebControls.Button btnCancel; + protected global::WebsitePanel.Portal.ItemButtonPanel buttonPanel; /// /// btnDelete control. 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..0d07fca4 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,7 @@ * + + Shared Mailbox + \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeMailboxGeneralSettings.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeMailboxGeneralSettings.ascx.resx index 9b7b5be3..e3520cf0 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeMailboxGeneralSettings.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeMailboxGeneralSettings.ascx.resx @@ -117,12 +117,9 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + ShowProgressDialog('Updating mailbox settings...'); - - Save Changes - Disable Mailbox diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeMailboxMailFlowSettings.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeMailboxMailFlowSettings.ascx.resx index 9ed871cb..a245ae1d 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeMailboxMailFlowSettings.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeMailboxMailFlowSettings.ascx.resx @@ -117,12 +117,9 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + ShowProgressDialog('Updating mailbox settings...'); - - Save Changes - Deliver messages to both forwarding address and mailbox diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeMailboxMemberOf.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeMailboxMemberOf.ascx.resx index c243cc33..83035c26 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeMailboxMemberOf.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeMailboxMemberOf.ascx.resx @@ -117,12 +117,6 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - ShowProgressDialog('Updating...'); - - - Save Changes - Edit Mailbox diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeMailboxPermissions.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeMailboxPermissions.ascx.resx index 9c1cac80..109aa29f 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeMailboxPermissions.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeMailboxPermissions.ascx.resx @@ -117,12 +117,9 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + ShowProgressDialog('Updating mailbox permissions...'); - - Save Changes - diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/OrganizationUserGeneralSettings.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/OrganizationUserGeneralSettings.ascx.resx index b21e975e..732e6c03 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/OrganizationUserGeneralSettings.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/OrganizationUserGeneralSettings.ascx.resx @@ -117,12 +117,9 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + ShowProgressDialog('Updating user settings...'); - - Save Changes - Disable User diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/OrganizationUserMemberOf.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/OrganizationUserMemberOf.ascx.resx index 81ca9211..5fa94e6c 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/OrganizationUserMemberOf.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/OrganizationUserMemberOf.ascx.resx @@ -117,12 +117,6 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - ShowProgressDialog('Updating...'); - - - Save Changes - Edit User 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..fb1e73da 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeCreateMailbox.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeCreateMailbox.ascx.cs @@ -91,16 +91,37 @@ namespace WebsitePanel.Portal.ExchangeServer if (plans.Length == 0) btnCreate.Enabled = false; + bool allowResourceMailbox = false; + if (cntx.Quotas.ContainsKey(Quotas.EXCHANGE2007_ISCONSUMER)) { if (cntx.Quotas[Quotas.EXCHANGE2007_ISCONSUMER].QuotaAllocatedValue != 1) { locSubscriberNumber.Visible = txtSubscriberNumber.Visible = valRequireSubscriberNumber.Enabled = false; - rbMailboxType.Items.Add(new System.Web.UI.WebControls.ListItem(GetLocalizedString("RoomMailbox.Text"), "5")); - rbMailboxType.Items.Add(new System.Web.UI.WebControls.ListItem(GetLocalizedString("EquipmentMailbox.Text"), "6")); + allowResourceMailbox = true; } } + if (cntx.Quotas.ContainsKey(Quotas.EXCHANGE2013_RESOURCEMAILBOXES)) + { + if (cntx.Quotas[Quotas.EXCHANGE2013_RESOURCEMAILBOXES].QuotaAllocatedValue != 0) + allowResourceMailbox = true; + } + + + if (allowResourceMailbox) + { + rbMailboxType.Items.Add(new System.Web.UI.WebControls.ListItem(GetLocalizedString("RoomMailbox.Text"), "5")); + rbMailboxType.Items.Add(new System.Web.UI.WebControls.ListItem(GetLocalizedString("EquipmentMailbox.Text"), "6")); + } + + 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")); + } + + rowRetentionPolicy.Visible = Utils.CheckQouta(Quotas.EXCHANGE2013_ALLOWRETENTIONPOLICY, cntx); } diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxGeneralSettings.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxGeneralSettings.ascx index 77f97218..d323d473 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxGeneralSettings.ascx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxGeneralSettings.ascx @@ -7,8 +7,9 @@ <%@ Register Src="../UserControls/EnableAsyncTasksSupport.ascx" TagName="EnableAsyncTasksSupport" TagPrefix="wsp" %> <%@ Register Src="UserControls/MailboxPlanSelector.ascx" TagName="MailboxPlanSelector" TagPrefix="wsp" %> <%@ Register Src="../UserControls/QuotaViewer.ascx" TagName="QuotaViewer" TagPrefix="wsp" %> +<%@ Register Src="../UserControls/ItemButtonPanel.ascx" TagName="ItemButtonPanel" TagPrefix="wsp" %> -<%-- < wsp:EnableAsyncTasksSupport id="asyncTasks" runat="server"/> --%> +
@@ -157,10 +158,8 @@
- - +
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..ff2dc086 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxGeneralSettings.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxGeneralSettings.ascx.cs @@ -81,6 +81,9 @@ namespace WebsitePanel.Portal.ExchangeServer } secRetentionPolicy.Visible = Utils.CheckQouta(Quotas.EXCHANGE2013_ALLOWRETENTIONPOLICY, Cntx); + + if (GetLocalizedString("buttonPanel.OnSaveClientClick") != null) + buttonPanel.OnSaveClientClick = GetLocalizedString("buttonPanel.OnSaveClientClick"); } int planId = -1; @@ -183,6 +186,15 @@ 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.Room) + litDisplayName.Text += GetSharedLocalizedString("RoomMailbox.Text"); + + if (account.AccountType == ExchangeAccountType.Equipment) + litDisplayName.Text += GetSharedLocalizedString("EquipmentMailbox.Text"); + } catch (Exception ex) { diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxGeneralSettings.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxGeneralSettings.ascx.designer.cs index 9f3029a2..be14fb27 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxGeneralSettings.ascx.designer.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxGeneralSettings.ascx.designer.cs @@ -12,6 +12,15 @@ namespace WebsitePanel.Portal.ExchangeServer { public partial class ExchangeMailboxGeneralSettings { + /// + /// asyncTasks control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::WebsitePanel.Portal.EnableAsyncTasksSupport asyncTasks; + /// /// Image1 control. /// @@ -382,22 +391,13 @@ namespace WebsitePanel.Portal.ExchangeServer { protected global::System.Web.UI.WebControls.Label lblExchangeGuid; /// - /// btnSave control. + /// buttonPanel control. /// /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. /// - protected global::System.Web.UI.WebControls.Button btnSave; - - /// - /// btnSaveExit control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::System.Web.UI.WebControls.Button btnSaveExit; + protected global::WebsitePanel.Portal.ItemButtonPanel buttonPanel; /// /// ValidationSummary1 control. diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxMailFlowSettings.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxMailFlowSettings.ascx index ed7b7c73..b7d2386b 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxMailFlowSettings.ascx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxMailFlowSettings.ascx @@ -8,6 +8,7 @@ <%@ Register Src="UserControls/AccountsList.ascx" TagName="AccountsList" TagPrefix="wsp" %> <%@ Register TagPrefix="wsp" TagName="CollapsiblePanel" Src="../UserControls/CollapsiblePanel.ascx" %> <%@ Register Src="../UserControls/EnableAsyncTasksSupport.ascx" TagName="EnableAsyncTasksSupport" TagPrefix="wsp" %> +<%@ Register Src="../UserControls/ItemButtonPanel.ascx" TagName="ItemButtonPanel" TagPrefix="wsp" %> @@ -110,9 +111,8 @@
- - +
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxMailFlowSettings.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxMailFlowSettings.ascx.cs index 51c04f98..73d11805 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxMailFlowSettings.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxMailFlowSettings.ascx.cs @@ -49,6 +49,9 @@ namespace WebsitePanel.Portal.ExchangeServer if (!IsPostBack) { BindSettings(); + + if (GetLocalizedString("buttonPanel.OnSaveClientClick") != null) + buttonPanel.OnSaveClientClick = GetLocalizedString("buttonPanel.OnSaveClientClick"); } } diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxMailFlowSettings.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxMailFlowSettings.ascx.designer.cs index 1ed59e75..f396c6b4 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxMailFlowSettings.ascx.designer.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxMailFlowSettings.ascx.designer.cs @@ -247,22 +247,13 @@ namespace WebsitePanel.Portal.ExchangeServer { protected global::System.Web.UI.WebControls.CheckBox chkPmmAllowed; /// - /// btnSave control. + /// buttonPanel control. /// /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. /// - protected global::System.Web.UI.WebControls.Button btnSave; - - /// - /// btnSaveExit control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::System.Web.UI.WebControls.Button btnSaveExit; + protected global::WebsitePanel.Portal.ItemButtonPanel buttonPanel; /// /// ValidationSummary1 control. diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxMemberOf.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxMemberOf.ascx index 452914dc..0e144703 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxMemberOf.ascx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxMemberOf.ascx @@ -7,6 +7,7 @@ <%@ Register Src="../UserControls/EnableAsyncTasksSupport.ascx" TagName="EnableAsyncTasksSupport" TagPrefix="wsp" %> <%@ Register Src="UserControls/MailboxPlanSelector.ascx" TagName="MailboxPlanSelector" TagPrefix="wsp" %> <%@ Register Src="../UserControls/QuotaViewer.ascx" TagName="QuotaViewer" TagPrefix="wsp" %> +<%@ Register Src="../UserControls/ItemButtonPanel.ascx" TagName="ItemButtonPanel" TagPrefix="wsp" %> @@ -43,10 +44,8 @@
- - +
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxMemberOf.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxMemberOf.ascx.designer.cs index 03c07ca6..91c01a76 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxMemberOf.ascx.designer.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxMemberOf.ascx.designer.cs @@ -103,22 +103,13 @@ namespace WebsitePanel.Portal.ExchangeServer { protected global::WebsitePanel.Portal.ExchangeServer.UserControls.AccountsList groups; /// - /// btnSave control. + /// buttonPanel control. /// /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. /// - protected global::System.Web.UI.WebControls.Button btnSave; - - /// - /// btnSaveExit control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::System.Web.UI.WebControls.Button btnSaveExit; + protected global::WebsitePanel.Portal.ItemButtonPanel buttonPanel; /// /// ValidationSummary1 control. diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxPermissions.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxPermissions.ascx index b296eac7..589f69f6 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxPermissions.ascx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxPermissions.ascx @@ -6,6 +6,7 @@ <%@ Register Src="UserControls/MailboxTabs.ascx" TagName="MailboxTabs" TagPrefix="wsp" %> <%@ Register TagPrefix="wsp" TagName="CollapsiblePanel" Src="../UserControls/CollapsiblePanel.ascx" %> <%@ Register Src="../UserControls/EnableAsyncTasksSupport.ascx" TagName="EnableAsyncTasksSupport" TagPrefix="wsp" %> +<%@ Register Src="../UserControls/ItemButtonPanel.ascx" TagName="ItemButtonPanel" TagPrefix="wsp" %> @@ -44,9 +45,8 @@
- - +
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..6a63fbe4 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxPermissions.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxPermissions.ascx.cs @@ -37,8 +37,13 @@ namespace WebsitePanel.Portal.ExchangeServer protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) + { BindPermissions(); + if (GetLocalizedString("buttonPanel.OnSaveClientClick") != null) + buttonPanel.OnSaveClientClick = GetLocalizedString("buttonPanel.OnSaveClientClick"); + } + } @@ -67,6 +72,19 @@ 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.Room) + litDisplayName.Text += GetSharedLocalizedString("RoomMailbox.Text"); + + if (account.AccountType == ExchangeAccountType.Equipment) + litDisplayName.Text += GetSharedLocalizedString("EquipmentMailbox.Text"); + } catch (Exception ex) { diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxPermissions.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxPermissions.ascx.designer.cs index 0c1e2494..886b9614 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxPermissions.ascx.designer.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxPermissions.ascx.designer.cs @@ -139,21 +139,12 @@ namespace WebsitePanel.Portal.ExchangeServer { protected global::WebsitePanel.Portal.ExchangeServer.UserControls.AccountsList fullAccessPermission; /// - /// btnSave control. + /// buttonPanel control. /// /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. /// - protected global::System.Web.UI.WebControls.Button btnSave; - - /// - /// btnSaveExit control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::System.Web.UI.WebControls.Button btnSaveExit; + protected global::WebsitePanel.Portal.ItemButtonPanel buttonPanel; } } diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxes.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeMailboxes.ascx index 40852b11..aba30904 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..09f60d64 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(); } @@ -147,6 +151,7 @@ namespace WebsitePanel.Portal.ExchangeServer { ExchangeAccountType accountType = (ExchangeAccountType)accountTypeId; string imgName = "mailbox_16.gif"; + if (accountType == ExchangeAccountType.Contact) imgName = "contact_16.gif"; else if (accountType == ExchangeAccountType.DistributionList) @@ -155,6 +160,8 @@ namespace WebsitePanel.Portal.ExchangeServer imgName = "room_16.gif"; else if (accountType == ExchangeAccountType.Equipment) imgName = "equipment_16.gif"; + else if (accountType == ExchangeAccountType.SharedMailbox) + imgName = "shared_16.gif"; if (vip && cntx.Groups.ContainsKey(ResourceGroups.ServiceLevels)) imgName = "vip_user_16.png"; @@ -246,5 +253,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.Add("1"); + + if (chkSharedMailboxes.Checked) + accountTypes.Add("10"); + + if (chkResourceMailboxes.Checked) + accountTypes.AddRange(new string[] {"5","6"}); + + 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/ExchangeServer/OrganizationUserGeneralSettings.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserGeneralSettings.ascx index cd770aea..a2d2032b 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserGeneralSettings.ascx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserGeneralSettings.ascx @@ -13,6 +13,7 @@ <%@ Register src="UserControls/UserTabs.ascx" tagname="UserTabs" tagprefix="uc1" %> <%@ Register src="UserControls/MailboxTabs.ascx" tagname="MailboxTabs" tagprefix="uc1" %> +<%@ Register Src="../UserControls/ItemButtonPanel.ascx" TagName="ItemButtonPanel" TagPrefix="wsp" %> @@ -283,10 +284,8 @@
- - +
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserGeneralSettings.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserGeneralSettings.ascx.cs index 865e8665..028a2e4d 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserGeneralSettings.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserGeneralSettings.ascx.cs @@ -49,6 +49,9 @@ namespace WebsitePanel.Portal.HostedSolution MailboxTabsId.Visible = (PanelRequest.Context == "Mailbox"); UserTabsId.Visible = (PanelRequest.Context == "User"); + + if (GetLocalizedString("buttonPanel.OnSaveClientClick") != null) + buttonPanel.OnSaveClientClick = GetLocalizedString("buttonPanel.OnSaveClientClick"); } } diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserGeneralSettings.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserGeneralSettings.ascx.designer.cs index fef1a739..7c18c1d8 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserGeneralSettings.ascx.designer.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserGeneralSettings.ascx.designer.cs @@ -769,22 +769,13 @@ namespace WebsitePanel.Portal.HostedSolution { protected global::System.Web.UI.WebControls.Label lblUserDomainName; /// - /// btnSave control. + /// buttonPanel control. /// /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. /// - protected global::System.Web.UI.WebControls.Button btnSave; - - /// - /// btnSaveExit control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::System.Web.UI.WebControls.Button btnSaveExit; + protected global::WebsitePanel.Portal.ItemButtonPanel buttonPanel; /// /// ValidationSummary1 control. diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserMemberOf.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserMemberOf.ascx index a92bde4a..179955d0 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserMemberOf.ascx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserMemberOf.ascx @@ -15,6 +15,7 @@ <%@ Register src="UserControls/UserTabs.ascx" tagname="UserTabs" tagprefix="uc1" %> <%@ Register src="UserControls/MailboxTabs.ascx" tagname="MailboxTabs" tagprefix="uc1" %> +<%@ Register Src="../UserControls/ItemButtonPanel.ascx" TagName="ItemButtonPanel" TagPrefix="wsp" %> @@ -54,10 +55,8 @@
- - +
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserMemberOf.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserMemberOf.ascx.designer.cs index 89567bb0..a1f28695 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserMemberOf.ascx.designer.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationUserMemberOf.ascx.designer.cs @@ -112,22 +112,13 @@ namespace WebsitePanel.Portal.HostedSolution { protected global::WebsitePanel.Portal.ExchangeServer.UserControls.AccountsList groups; /// - /// btnSave control. + /// buttonPanel control. /// /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. /// - protected global::System.Web.UI.WebControls.Button btnSave; - - /// - /// btnSaveExit control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::System.Web.UI.WebControls.Button btnSaveExit; + protected global::WebsitePanel.Portal.ItemButtonPanel buttonPanel; /// /// ValidationSummary1 control. diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ScheduleTaskControls/App_LocalResources/DomainExpirationView.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ScheduleTaskControls/App_LocalResources/DomainExpirationView.ascx.resx new file mode 100644 index 00000000..e5d6418b --- /dev/null +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ScheduleTaskControls/App_LocalResources/DomainExpirationView.ascx.resx @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + Enable Client Notification + + + Include Non-Existen Domains + + + Notify before (days) + + + Number of days before expiration date + + \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ScheduleTaskControls/App_LocalResources/DomainLookupView.ascx.Designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ScheduleTaskControls/App_LocalResources/DomainLookupView.ascx.Designer.cs new file mode 100644 index 00000000..a654215f --- /dev/null +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ScheduleTaskControls/App_LocalResources/DomainLookupView.ascx.Designer.cs @@ -0,0 +1,82 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.33440 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace WebsitePanel.Portal.ScheduleTaskControls.App_LocalResources { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class DomainLookupView_ascx { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal DomainLookupView_ascx() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("WebsitePanel.Portal.ScheduleTaskControls.App_LocalResources.DomainLookupView.ascx" + + "", typeof(DomainLookupView_ascx).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to DNS Servers. + /// + internal static string lblDnsServers { + get { + return ResourceManager.GetString("lblDnsServers", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Please enter dns servers to check.. + /// + internal static string lblDnsServersHint { + get { + return ResourceManager.GetString("lblDnsServersHint", resourceCulture); + } + } + } +} diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ScheduleTaskControls/App_LocalResources/DomainLookupView.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ScheduleTaskControls/App_LocalResources/DomainLookupView.ascx.resx new file mode 100644 index 00000000..21183eb3 --- /dev/null +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ScheduleTaskControls/App_LocalResources/DomainLookupView.ascx.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + DNS Servers + + + Please enter dns servers to check. + + \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ScheduleTaskControls/DomainExpirationView.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ScheduleTaskControls/DomainExpirationView.ascx new file mode 100644 index 00000000..9f341587 --- /dev/null +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ScheduleTaskControls/DomainExpirationView.ascx @@ -0,0 +1,38 @@ +<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="DomainExpirationView.ascx.cs" Inherits="WebsitePanel.Portal.ScheduleTaskControls.DomainExpirationView" %> + + + + + + + + + + + + + + + + + + + + +
+ + +
+
+ + +
+
+ + + +
+ + + +
\ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ScheduleTaskControls/DomainExpirationView.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ScheduleTaskControls/DomainExpirationView.ascx.cs new file mode 100644 index 00000000..80aaaf00 --- /dev/null +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ScheduleTaskControls/DomainExpirationView.ascx.cs @@ -0,0 +1,52 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; +using WebsitePanel.EnterpriseServer; +using WebsitePanel.Portal.UserControls.ScheduleTaskView; + +namespace WebsitePanel.Portal.ScheduleTaskControls +{ + public partial class DomainExpirationView : EmptyView + { + private static readonly string DaysBeforeParameter = "DAYS_BEFORE"; + private static readonly string MailToParameter = "MAIL_TO"; + private static readonly string EnableNotificationParameter = "ENABLE_NOTIFICATION"; + private static readonly string IncludeNonExistenDomainsParameter = "INCLUDE_NONEXISTEN_DOMAINS"; + + protected void Page_Load(object sender, EventArgs e) + { + + } + + /// + /// Sets scheduler task parameters on view. + /// + /// Parameters list to be set on view. + public override void SetParameters(ScheduleTaskParameterInfo[] parameters) + { + base.SetParameters(parameters); + + this.SetParameter(this.txtDaysBeforeNotify, DaysBeforeParameter); + this.SetParameter(this.txtMailTo, MailToParameter); + this.SetParameter(this.cbEnableNotify, EnableNotificationParameter); + this.SetParameter(this.cbIncludeNonExistenDomains, IncludeNonExistenDomainsParameter); + } + + /// + /// Gets scheduler task parameters from view. + /// + /// Parameters list filled from view. + public override ScheduleTaskParameterInfo[] GetParameters() + { + ScheduleTaskParameterInfo daysBefore = this.GetParameter(this.txtDaysBeforeNotify, DaysBeforeParameter); + ScheduleTaskParameterInfo mailTo = this.GetParameter(this.txtMailTo, MailToParameter); + ScheduleTaskParameterInfo enableNotification = this.GetParameter(this.cbEnableNotify, EnableNotificationParameter); + ScheduleTaskParameterInfo includeNonExistenDomains = this.GetParameter(this.cbIncludeNonExistenDomains, IncludeNonExistenDomainsParameter); + + return new ScheduleTaskParameterInfo[4] { daysBefore, mailTo, enableNotification, includeNonExistenDomains }; + } + } +} \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ScheduleTaskControls/DomainExpirationView.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ScheduleTaskControls/DomainExpirationView.ascx.designer.cs new file mode 100644 index 00000000..27ee5ba7 --- /dev/null +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ScheduleTaskControls/DomainExpirationView.ascx.designer.cs @@ -0,0 +1,87 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace WebsitePanel.Portal.ScheduleTaskControls { + + + public partial class DomainExpirationView { + + /// + /// Label1 control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Label Label1; + + /// + /// cbEnableNotify control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.CheckBox cbEnableNotify; + + /// + /// lblSendNonExistenDomains control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Label lblSendNonExistenDomains; + + /// + /// cbIncludeNonExistenDomains control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.CheckBox cbIncludeNonExistenDomains; + + /// + /// lblMailTo control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Label lblMailTo; + + /// + /// txtMailTo control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.TextBox txtMailTo; + + /// + /// lblDayBeforeNotify control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Label lblDayBeforeNotify; + + /// + /// txtDaysBeforeNotify control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.TextBox txtDaysBeforeNotify; + } +} diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ScheduleTaskControls/DomainLookupView.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ScheduleTaskControls/DomainLookupView.ascx new file mode 100644 index 00000000..56abdaa9 --- /dev/null +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ScheduleTaskControls/DomainLookupView.ascx @@ -0,0 +1,20 @@ +<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="DomainLookupView.ascx.cs" Inherits="WebsitePanel.Portal.ScheduleTaskControls.DomainLookupView" %> + + + + + + + + + + +
+ + + +
+ + + +
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ScheduleTaskControls/DomainLookupView.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ScheduleTaskControls/DomainLookupView.ascx.cs new file mode 100644 index 00000000..089d2a4d --- /dev/null +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ScheduleTaskControls/DomainLookupView.ascx.cs @@ -0,0 +1,46 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; +using WebsitePanel.EnterpriseServer; +using WebsitePanel.Portal.UserControls.ScheduleTaskView; + +namespace WebsitePanel.Portal.ScheduleTaskControls +{ + public partial class DomainLookupView : EmptyView + { + private static readonly string DnsServersParameter = "DNS_SERVERS"; + private static readonly string MailToParameter = "MAIL_TO"; + + protected void Page_Load(object sender, EventArgs e) + { + + } + + /// + /// Sets scheduler task parameters on view. + /// + /// Parameters list to be set on view. + public override void SetParameters(ScheduleTaskParameterInfo[] parameters) + { + base.SetParameters(parameters); + + this.SetParameter(this.txtDnsServers, DnsServersParameter); + this.SetParameter(this.txtMailTo, MailToParameter); + } + + /// + /// Gets scheduler task parameters from view. + /// + /// Parameters list filled from view. + public override ScheduleTaskParameterInfo[] GetParameters() + { + ScheduleTaskParameterInfo dnsServers = this.GetParameter(this.txtDnsServers, DnsServersParameter); + ScheduleTaskParameterInfo mailTo = this.GetParameter(this.txtMailTo, MailToParameter); + + return new ScheduleTaskParameterInfo[2] { dnsServers, mailTo }; + } + } +} \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ScheduleTaskControls/DomainLookupView.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ScheduleTaskControls/DomainLookupView.ascx.designer.cs new file mode 100644 index 00000000..f9c000f5 --- /dev/null +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ScheduleTaskControls/DomainLookupView.ascx.designer.cs @@ -0,0 +1,51 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace WebsitePanel.Portal.ScheduleTaskControls { + + + public partial class DomainLookupView { + + /// + /// lblDnsServers control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Label lblDnsServers; + + /// + /// txtDnsServers control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.TextBox txtDnsServers; + + /// + /// lblMailTo control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Label lblMailTo; + + /// + /// txtMailTo control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.TextBox txtMailTo; + } +} diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SearchSpaces.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SearchSpaces.ascx index 24996dfa..6286574d 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SearchSpaces.ascx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SearchSpaces.ascx @@ -17,7 +17,16 @@ EmptyDataText="gvPackages" CssSelectorClass="NormalGridView" AllowSorting="True" DataSourceID="odsItemsPaged" AllowPaging="True"> - + + + + <%# Eval("ItemName") %> + + + <%# Eval("ItemName") %> + + + diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SearchSpaces.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SearchSpaces.ascx.cs index 1b67827a..e02f5eb7 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SearchSpaces.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SearchSpaces.ascx.cs @@ -30,6 +30,7 @@ using System; using System.Data; using System.Configuration; using System.Collections; +using System.Collections.Generic; using System.Web; using System.Web.Security; using System.Web.UI; @@ -37,10 +38,26 @@ using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; +using WebsitePanel.WebPortal; +using WebsitePanel.Portal.UserControls; + namespace WebsitePanel.Portal { public partial class SearchSpaces : WebsitePanelModuleBase { + + string ItemTypeName; + + const string type_WebSite = "WebSite"; + const string type_Domain = "Domain"; + const string type_Organization = "Organization"; + + List linkTypes = new List(new string[] {type_WebSite, type_Domain, type_Organization}); + + const string PID_SPACE_WEBSITES = "SpaceWebSites"; + const string PID_SPACE_DIMAINS = "SpaceDomains"; + const string PID_SPACE_EXCHANGESERVER = "SpaceExchangeServer"; + protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) @@ -48,10 +65,16 @@ namespace WebsitePanel.Portal // bind item types DataTable dtItemTypes = ES.Services.Packages.GetSearchableServiceItemTypes().Tables[0]; foreach (DataRow dr in dtItemTypes.Rows) + { + string displayName = dr["DisplayName"].ToString(); ddlItemType.Items.Add(new ListItem( - GetSharedLocalizedString("ServiceItemType." + dr["DisplayName"].ToString()), + GetSharedLocalizedString("ServiceItemType." + displayName), dr["ItemTypeID"].ToString())); + if (Request["ItemTypeID"] == dr["ItemTypeID"].ToString()) + ItemTypeName = displayName; + } + // bind filter Utils.SelectListItem(ddlItemType, Request["ItemTypeID"]); txtFilterValue.Text = Request["Query"]; @@ -68,6 +91,32 @@ namespace WebsitePanel.Portal return PortalUtils.GetSpaceHomePageUrl(spaceId); } + public string GetItemPageUrl(int itemId, int spaceId) + { + string res = ""; + + switch(ItemTypeName) + { + case type_WebSite: + res = PortalUtils.NavigatePageURL(PID_SPACE_WEBSITES, "ItemID", itemId.ToString(), + PortalUtils.SPACE_ID_PARAM + "=" + spaceId, DefaultPage.CONTROL_ID_PARAM + "=" + "edit_item", + "moduleDefId=websites"); + break; + case type_Domain: + res = PortalUtils.NavigatePageURL(PID_SPACE_DIMAINS, "DomainID", itemId.ToString(), + PortalUtils.SPACE_ID_PARAM + "=" + spaceId, DefaultPage.CONTROL_ID_PARAM + "=" + "edit_item", + "moduleDefId=domains"); + break; + case type_Organization: + res = PortalUtils.NavigatePageURL(PID_SPACE_EXCHANGESERVER, "ItemID", itemId.ToString(), + PortalUtils.SPACE_ID_PARAM + "=" + spaceId, DefaultPage.CONTROL_ID_PARAM + "=" + "organization_home", + "moduleDefId=ExchangeServer"); + break; + } + + return res; + } + protected void cmdSearch_Click(object sender, ImageClickEventArgs e) { string query = txtFilterValue.Text.Trim().Replace("%", ""); @@ -86,5 +135,12 @@ namespace WebsitePanel.Portal e.ExceptionHandled = true; } } + + public bool AllowItemLink() + { + bool res = linkTypes.Exists(x => x == ItemTypeName); + + return res; + } } } \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SearchSpaces.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SearchSpaces.ascx.designer.cs index 64034cc0..780bb15b 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SearchSpaces.ascx.designer.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SearchSpaces.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/SettingsDomainExpirationLetter.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SettingsDomainExpirationLetter.ascx new file mode 100644 index 00000000..e1154165 --- /dev/null +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SettingsDomainExpirationLetter.ascx @@ -0,0 +1,42 @@ +<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="SettingsDomainExpirationLetter.ascx.cs" Inherits="WebsitePanel.Portal.SettingsDomainExpirationLetter" %> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ + High + Normal + Low + +


+


+
\ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SettingsDomainExpirationLetter.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SettingsDomainExpirationLetter.ascx.cs new file mode 100644 index 00000000..e0120667 --- /dev/null +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SettingsDomainExpirationLetter.ascx.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; +using WebsitePanel.EnterpriseServer; + +namespace WebsitePanel.Portal +{ + public partial class SettingsDomainExpirationLetter : WebsitePanelControlBase, IUserSettingsEditorControl + { + public void BindSettings(UserSettings settings) + { + txtFrom.Text = settings["From"]; + txtCC.Text = settings["CC"]; + txtSubject.Text = settings["Subject"]; + Utils.SelectListItem(ddlPriority, settings["Priority"]); + txtHtmlBody.Text = settings["HtmlBody"]; + txtTextBody.Text = settings["TextBody"]; + } + + public void SaveSettings(UserSettings settings) + { + settings["From"] = txtFrom.Text; + settings["CC"] = txtCC.Text; + settings["Subject"] = txtSubject.Text; + settings["Priority"] = ddlPriority.SelectedValue; + settings["HtmlBody"] = txtHtmlBody.Text; + settings["TextBody"] = txtTextBody.Text; + } + } +} \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SettingsDomainExpirationLetter.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SettingsDomainExpirationLetter.ascx.designer.cs new file mode 100644 index 00000000..e448fe3b --- /dev/null +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SettingsDomainExpirationLetter.ascx.designer.cs @@ -0,0 +1,123 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace WebsitePanel.Portal { + + + public partial class SettingsDomainExpirationLetter { + + /// + /// lblFrom control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Label lblFrom; + + /// + /// txtFrom control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.TextBox txtFrom; + + /// + /// lblCC control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Label lblCC; + + /// + /// txtCC control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.TextBox txtCC; + + /// + /// lblSubject control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Label lblSubject; + + /// + /// txtSubject control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.TextBox txtSubject; + + /// + /// lblPriority control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Label lblPriority; + + /// + /// ddlPriority control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.DropDownList ddlPriority; + + /// + /// lblHtmlBody control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Label lblHtmlBody; + + /// + /// txtHtmlBody control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.TextBox txtHtmlBody; + + /// + /// lblTextBody control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Label lblTextBody; + + /// + /// txtTextBody control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.TextBox txtTextBody; + } +} diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SettingsDomainLookupLetter.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SettingsDomainLookupLetter.ascx new file mode 100644 index 00000000..435167f8 --- /dev/null +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SettingsDomainLookupLetter.ascx @@ -0,0 +1,42 @@ +<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="SettingsDomainLookupLetter.ascx.cs" Inherits="WebsitePanel.Portal.SettingsDomainLookupLetter" %> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ + High + Normal + Low + +


+


+
\ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SettingsDomainLookupLetter.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SettingsDomainLookupLetter.ascx.cs new file mode 100644 index 00000000..b8a9951d --- /dev/null +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SettingsDomainLookupLetter.ascx.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; +using WebsitePanel.EnterpriseServer; + +namespace WebsitePanel.Portal +{ + public partial class SettingsDomainLookupLetter : WebsitePanelControlBase, IUserSettingsEditorControl + { + public void BindSettings(UserSettings settings) + { + txtFrom.Text = settings["From"]; + txtCC.Text = settings["CC"]; + txtSubject.Text = settings["Subject"]; + Utils.SelectListItem(ddlPriority, settings["Priority"]); + txtHtmlBody.Text = settings["HtmlBody"]; + txtTextBody.Text = settings["TextBody"]; + } + + public void SaveSettings(UserSettings settings) + { + settings["From"] = txtFrom.Text; + settings["CC"] = txtCC.Text; + settings["Subject"] = txtSubject.Text; + settings["Priority"] = ddlPriority.SelectedValue; + settings["HtmlBody"] = txtHtmlBody.Text; + settings["TextBody"] = txtTextBody.Text; + } + } +} \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SettingsDomainLookupLetter.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SettingsDomainLookupLetter.ascx.designer.cs new file mode 100644 index 00000000..afcf7988 --- /dev/null +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SettingsDomainLookupLetter.ascx.designer.cs @@ -0,0 +1,123 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace WebsitePanel.Portal { + + + public partial class SettingsDomainLookupLetter { + + /// + /// lblFrom control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Label lblFrom; + + /// + /// txtFrom control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.TextBox txtFrom; + + /// + /// lblCC control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Label lblCC; + + /// + /// txtCC control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.TextBox txtCC; + + /// + /// lblSubject control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Label lblSubject; + + /// + /// txtSubject control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.TextBox txtSubject; + + /// + /// lblPriority control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Label lblPriority; + + /// + /// ddlPriority control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.DropDownList ddlPriority; + + /// + /// lblHtmlBody control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Label lblHtmlBody; + + /// + /// txtHtmlBody control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.TextBox txtHtmlBody; + + /// + /// lblTextBody control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Label lblTextBody; + + /// + /// txtTextBody control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.TextBox txtTextBody; + } +} diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserAccountMailTemplateSettings.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserAccountMailTemplateSettings.ascx index 12da225e..45a3d489 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserAccountMailTemplateSettings.ascx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserAccountMailTemplateSettings.ascx @@ -29,7 +29,15 @@
  • -
  • + +
  • + +
  • +
  • + +
  • diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserAccountMailTemplateSettings.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserAccountMailTemplateSettings.ascx.designer.cs index f30b5556..0822c99e 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserAccountMailTemplateSettings.ascx.designer.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserAccountMailTemplateSettings.ascx.designer.cs @@ -75,6 +75,24 @@ namespace WebsitePanel.Portal { /// protected global::System.Web.UI.WebControls.HyperLink lnkVpsSummaryLetter; + /// + /// lnkDomainExpirationLetter control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.HyperLink lnkDomainExpirationLetter; + + /// + /// lnkDomainLookupLetter control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.HyperLink lnkDomainLookupLetter; + /// /// btnCancel control. /// diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserControls/App_LocalResources/ItemButtonPanel.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserControls/App_LocalResources/ItemButtonPanel.ascx.resx new file mode 100644 index 00000000..33712da6 --- /dev/null +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserControls/App_LocalResources/ItemButtonPanel.ascx.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + Save Changes + + + Save Changes and Exit + + \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserControls/ItemButtonPanel.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserControls/ItemButtonPanel.ascx new file mode 100644 index 00000000..998c862b --- /dev/null +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserControls/ItemButtonPanel.ascx @@ -0,0 +1,5 @@ +<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="ItemButtonPanel.ascx.cs" Inherits="WebsitePanel.Portal.ItemButtonPanel" %> + + \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserControls/ItemButtonPanel.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserControls/ItemButtonPanel.ascx.cs new file mode 100644 index 00000000..50c284d4 --- /dev/null +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserControls/ItemButtonPanel.ascx.cs @@ -0,0 +1,85 @@ +// 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. + +using System; + +namespace WebsitePanel.Portal +{ + public partial class ItemButtonPanel : WebsitePanelControlBase + { + public bool ButtonSaveVisible + { + set { btnSave.Visible = value; } + get { return btnSave.Visible; } + } + + public bool ButtonSaveExitVisible + { + set { btnSaveExit.Visible = value; } + get { return btnSaveExit.Visible; } + } + + public string ValidationGroup + { + set { + btnSave.ValidationGroup = value; + btnSaveExit.ValidationGroup = value; + } + get { return btnSave.ValidationGroup; } + } + + public string OnSaveClientClick + { + set + { + btnSave.OnClientClick = value; + btnSaveExit.OnClientClick = value; + } + } + + + public event EventHandler SaveClick = null; + protected void btnSave_Click(object sender, EventArgs e) + { + if (SaveClick!=null) + { + SaveClick(this, e); + } + } + + public event EventHandler SaveExitClick = null; + protected void btnSaveExit_Click(object sender, EventArgs e) + { + if (SaveExitClick!=null) + { + SaveExitClick(this, e); + } + } + + } +} \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserControls/ItemButtonPanel.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserControls/ItemButtonPanel.ascx.designer.cs new file mode 100644 index 00000000..1cab6d5d --- /dev/null +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserControls/ItemButtonPanel.ascx.designer.cs @@ -0,0 +1,33 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace WebsitePanel.Portal { + + + public partial class ItemButtonPanel { + + /// + /// btnSave control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Button btnSave; + + /// + /// btnSaveExit control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Button btnSaveExit; + } +} diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/WebSitesEditSite.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/WebSitesEditSite.ascx index 0c6e28dd..a8fd47ff 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/WebSitesEditSite.ascx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/WebSitesEditSite.ascx @@ -16,6 +16,8 @@ <%@ Register Src="UserControls/PopupHeader.ascx" TagName="PopupHeader" TagPrefix="wsp" %> <%@ Register TagPrefix="wsp" Namespace="WebsitePanel.Portal" %> <%@ Register Src="WebsitesSSL.ascx" TagName="WebsitesSSL" TagPrefix="uc2" %> +<%@ Register Src="UserControls/ItemButtonPanel.ascx" TagName="ItemButtonPanel" TagPrefix="wsp" %> +