diff --git a/WebsitePanel/Database/update_db.sql b/WebsitePanel/Database/update_db.sql index c1ec8176..db477da0 100644 --- a/WebsitePanel/Database/update_db.sql +++ b/WebsitePanel/Database/update_db.sql @@ -2799,16 +2799,230 @@ AND (@OrgID = 0 OR @OrgID <> 0 AND PA.OrgID = @OrgID) END GO --- Enterprise Storage - -IF EXISTS (SELECT * FROM [dbo].[Quotas] WHERE [QuotaName] = 'EnterpriseStorage.DiskStorageSpace') +-- Enterprise Storage Quotas +IF NOT EXISTS (SELECT * FROM [dbo].[Quotas] WHERE [QuotaName] = 'EnterpriseStorage.DiskStorageSpace') BEGIN - -DELETE FROM [dbo].[HostingPlanQuotas] WHERE QuotaID = 430 - -DELETE FROM [dbo].[PackageQuotas] WHERE QuotaID = 430 - -DELETE FROM [dbo].[Quotas] WHERE QuotaID = 430 - +INSERT [dbo].[Quotas] ([QuotaID], [GroupID],[QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (430, 44, 1,N'EnterpriseStorage.DiskStorageSpace',N'Disk Storage Space (Gb)',2, 0 , NULL) END GO + +UPDATE [dbo].[Quotas] SET [QuotaDescription] = N'Disk Storage Space (Gb)' WHERE [QuotaName] = 'EnterpriseStorage.DiskStorageSpace' +GO + +IF NOT EXISTS (SELECT * FROM SYS.TABLES WHERE name = 'EnterpriseFolders') + +CREATE TABLE [dbo].[EnterpriseFolders]( + [EnterpriseFolderID] [int] IDENTITY(1,1) NOT NULL, + [ItemID] [int] NOT NULL, + [FolderName] [nvarchar](255) NOT NULL, + [FolderQuota] [int] NOT NULL DEFAULT 0, + CONSTRAINT [PK_EnterpriseFolders] PRIMARY KEY CLUSTERED +( + [EnterpriseFolderId] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +) + +GO + +ALTER FUNCTION [dbo].[CalculateQuotaUsage] +( + @PackageID int, + @QuotaID int +) +RETURNS int +AS + BEGIN + + DECLARE @QuotaTypeID int + SELECT @QuotaTypeID = QuotaTypeID FROM Quotas + WHERE QuotaID = @QuotaID + + IF @QuotaTypeID <> 2 + RETURN 0 + + DECLARE @Result int + + IF @QuotaID = 52 -- diskspace + SET @Result = dbo.CalculatePackageDiskspace(@PackageID) + ELSE IF @QuotaID = 51 -- bandwidth + SET @Result = dbo.CalculatePackageBandwidth(@PackageID) + ELSE IF @QuotaID = 53 -- domains + SET @Result = (SELECT COUNT(D.DomainID) FROM PackagesTreeCache AS PT + INNER JOIN Domains AS D ON D.PackageID = PT.PackageID + WHERE IsSubDomain = 0 AND IsInstantAlias = 0 AND IsDomainPointer = 0 AND PT.ParentPackageID = @PackageID) + ELSE IF @QuotaID = 54 -- sub-domains + SET @Result = (SELECT COUNT(D.DomainID) FROM PackagesTreeCache AS PT + INNER JOIN Domains AS D ON D.PackageID = PT.PackageID + WHERE IsSubDomain = 1 AND IsInstantAlias = 0 AND IsDomainPointer = 0 AND PT.ParentPackageID = @PackageID) + ELSE IF @QuotaID = 220 -- domain pointers + SET @Result = (SELECT COUNT(D.DomainID) FROM PackagesTreeCache AS PT + INNER JOIN Domains AS D ON D.PackageID = PT.PackageID + WHERE IsDomainPointer = 1 AND PT.ParentPackageID = @PackageID) + ELSE IF @QuotaID = 71 -- scheduled tasks + SET @Result = (SELECT COUNT(S.ScheduleID) FROM PackagesTreeCache AS PT + INNER JOIN Schedule AS S ON S.PackageID = PT.PackageID + WHERE PT.ParentPackageID = @PackageID) + ELSE IF @QuotaID = 305 -- RAM of VPS + SET @Result = (SELECT SUM(CAST(SIP.PropertyValue AS int)) FROM ServiceItemProperties AS SIP + INNER JOIN ServiceItems AS SI ON SIP.ItemID = SI.ItemID + INNER JOIN PackagesTreeCache AS PT ON SI.PackageID = PT.PackageID + WHERE SIP.PropertyName = 'RamSize' AND PT.ParentPackageID = @PackageID) + ELSE IF @QuotaID = 306 -- HDD of VPS + SET @Result = (SELECT SUM(CAST(SIP.PropertyValue AS int)) FROM ServiceItemProperties AS SIP + INNER JOIN ServiceItems AS SI ON SIP.ItemID = SI.ItemID + INNER JOIN PackagesTreeCache AS PT ON SI.PackageID = PT.PackageID + WHERE SIP.PropertyName = 'HddSize' AND PT.ParentPackageID = @PackageID) + ELSE IF @QuotaID = 309 -- External IP addresses of VPS + SET @Result = (SELECT COUNT(PIP.PackageAddressID) FROM PackageIPAddresses AS PIP + INNER JOIN IPAddresses AS IP ON PIP.AddressID = IP.AddressID + INNER JOIN PackagesTreeCache AS PT ON PIP.PackageID = PT.PackageID + WHERE PT.ParentPackageID = @PackageID AND IP.PoolID = 3) + ELSE IF @QuotaID = 100 -- Dedicated Web IP addresses + SET @Result = (SELECT COUNT(PIP.PackageAddressID) FROM PackageIPAddresses AS PIP + INNER JOIN IPAddresses AS IP ON PIP.AddressID = IP.AddressID + INNER JOIN PackagesTreeCache AS PT ON PIP.PackageID = PT.PackageID + WHERE PT.ParentPackageID = @PackageID AND IP.PoolID = 2) + ELSE IF @QuotaID = 350 -- RAM of VPSforPc + SET @Result = (SELECT SUM(CAST(SIP.PropertyValue AS int)) FROM ServiceItemProperties AS SIP + INNER JOIN ServiceItems AS SI ON SIP.ItemID = SI.ItemID + INNER JOIN PackagesTreeCache AS PT ON SI.PackageID = PT.PackageID + WHERE SIP.PropertyName = 'Memory' AND PT.ParentPackageID = @PackageID) + ELSE IF @QuotaID = 351 -- HDD of VPSforPc + SET @Result = (SELECT SUM(CAST(SIP.PropertyValue AS int)) FROM ServiceItemProperties AS SIP + INNER JOIN ServiceItems AS SI ON SIP.ItemID = SI.ItemID + INNER JOIN PackagesTreeCache AS PT ON SI.PackageID = PT.PackageID + WHERE SIP.PropertyName = 'HddSize' AND PT.ParentPackageID = @PackageID) + ELSE IF @QuotaID = 354 -- External IP addresses of VPSforPc + SET @Result = (SELECT COUNT(PIP.PackageAddressID) FROM PackageIPAddresses AS PIP + INNER JOIN IPAddresses AS IP ON PIP.AddressID = IP.AddressID + INNER JOIN PackagesTreeCache AS PT ON PIP.PackageID = PT.PackageID + WHERE PT.ParentPackageID = @PackageID AND IP.PoolID = 3) + ELSE IF @QuotaID = 319 -- BB Users + SET @Result = (SELECT COUNT(ea.AccountID) FROM ExchangeAccounts ea + INNER JOIN BlackBerryUsers bu ON ea.AccountID = bu.AccountID + INNER JOIN ServiceItems si ON ea.ItemID = si.ItemID + INNER JOIN PackagesTreeCache pt ON si.PackageID = pt.PackageID + WHERE pt.ParentPackageID = @PackageID) + ELSE IF @QuotaID = 320 -- OCS Users + SET @Result = (SELECT COUNT(ea.AccountID) FROM ExchangeAccounts ea + INNER JOIN OCSUsers ocs ON ea.AccountID = ocs.AccountID + INNER JOIN ServiceItems si ON ea.ItemID = si.ItemID + INNER JOIN PackagesTreeCache pt ON si.PackageID = pt.PackageID + WHERE pt.ParentPackageID = @PackageID) + ELSE IF @QuotaID = 206 -- HostedSolution.Users + SET @Result = (SELECT COUNT(ea.AccountID) FROM ExchangeAccounts AS ea + INNER JOIN ServiceItems si ON ea.ItemID = si.ItemID + INNER JOIN PackagesTreeCache pt ON si.PackageID = pt.PackageID + WHERE pt.ParentPackageID = @PackageID AND ea.AccountType IN (1,5,6,7)) + ELSE IF @QuotaID = 78 -- Exchange2007.Mailboxes + SET @Result = (SELECT COUNT(ea.AccountID) FROM ExchangeAccounts AS ea + INNER JOIN ServiceItems si ON ea.ItemID = si.ItemID + INNER JOIN PackagesTreeCache pt ON si.PackageID = pt.PackageID + WHERE pt.ParentPackageID = @PackageID + AND ea.AccountType IN (1) + AND ea.MailboxPlanId IS NOT NULL) + ELSE IF @QuotaID = 77 -- Exchange2007.DiskSpace + SET @Result = (SELECT SUM(B.MailboxSizeMB) FROM ExchangeAccounts AS ea + INNER JOIN ExchangeMailboxPlans AS B ON ea.MailboxPlanId = B.MailboxPlanId + INNER JOIN ServiceItems si ON ea.ItemID = si.ItemID + INNER JOIN PackagesTreeCache pt ON si.PackageID = pt.PackageID + WHERE pt.ParentPackageID = @PackageID) + ELSE IF @QuotaID = 370 -- Lync.Users + SET @Result = (SELECT COUNT(ea.AccountID) FROM ExchangeAccounts AS ea + INNER JOIN LyncUsers lu ON ea.AccountID = lu.AccountID + INNER JOIN ServiceItems si ON ea.ItemID = si.ItemID + INNER JOIN PackagesTreeCache pt ON si.PackageID = pt.PackageID + WHERE pt.ParentPackageID = @PackageID) + ELSE IF @QuotaID = 376 -- Lync.EVUsers + SET @Result = (SELECT COUNT(ea.AccountID) FROM ExchangeAccounts AS ea + INNER JOIN LyncUsers lu ON ea.AccountID = lu.AccountID + INNER JOIN LyncUserPlans lp ON lu.LyncUserPlanId = lp.LyncUserPlanId + INNER JOIN ServiceItems si ON ea.ItemID = si.ItemID + INNER JOIN PackagesTreeCache pt ON si.PackageID = pt.PackageID + WHERE pt.ParentPackageID = @PackageID AND lp.EnterpriseVoice = 1) + ELSE IF @QuotaID = 381 -- Dedicated Lync Phone Numbers + SET @Result = (SELECT COUNT(PIP.PackageAddressID) FROM PackageIPAddresses AS PIP + INNER JOIN IPAddresses AS IP ON PIP.AddressID = IP.AddressID + INNER JOIN PackagesTreeCache AS PT ON PIP.PackageID = PT.PackageID + WHERE PT.ParentPackageID = @PackageID AND IP.PoolID = 5) + ELSE IF @QuotaID = 430 -- Enterprise Storage + SET @Result = (SELECT SUM(ESF.FolderQuota) FROM EnterpriseFolders AS ESF + INNER JOIN ServiceItems SI ON ESF.ItemID = SI.ItemID + INNER JOIN PackagesTreeCache PT ON SI.PackageID = PT.PackageID + WHERE PT.ParentPackageID = @PackageID) + ELSE IF @QuotaID = 431 -- Enterprise Storage Folders + SET @Result = (SELECT COUNT(ESF.EnterpriseFolderID) FROM EnterpriseFolders AS ESF + INNER JOIN ServiceItems SI ON ESF.ItemID = SI.ItemID + INNER JOIN PackagesTreeCache PT ON SI.PackageID = PT.PackageID + WHERE PT.ParentPackageID = @PackageID) + ELSE + SET @Result = (SELECT COUNT(SI.ItemID) FROM Quotas AS Q + INNER JOIN ServiceItems AS SI ON SI.ItemTypeID = Q.ItemTypeID + INNER JOIN PackagesTreeCache AS PT ON SI.PackageID = PT.PackageID AND PT.ParentPackageID = @PackageID + WHERE Q.QuotaID = @QuotaID) + + RETURN @Result + END +GO + +IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'AddEnterpriseFolder') +DROP PROCEDURE [dbo].[AddEnterpriseFolder] +GO + +CREATE PROCEDURE [dbo].[AddEnterpriseFolder] +( + @FolderID INT OUTPUT, + @ItemID INT, + @FolderName NVARCHAR(255) +) +AS + +INSERT INTO EnterpriseFolders +( + ItemID, + FolderName +) +VALUES +( + @ItemID, + @FolderName +) + +SET @FolderID = SCOPE_IDENTITY() + +RETURN +GO + +IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'DeleteEnterpriseFolder') +DROP PROCEDURE DeleteEnterpriseFolder +GO + +CREATE PROCEDURE [dbo].[DeleteEnterpriseFolder] +( + @ItemID INT, + @FolderName NVARCHAR(255) +) +AS + +DELETE FROM EnterpriseFolders +WHERE ItemID = @ItemID AND FolderName = @FolderName +GO + +IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'UpdateEnterpriseFolder') +DROP PROCEDURE UpdateEnterpriseFolder +GO + +CREATE PROCEDURE [dbo].[UpdateEnterpriseFolder] +( + @ItemID INT, + @FolderID NVARCHAR(255), + @FolderName NVARCHAR(255), + @FolderQuota INT +) +AS + +UPDATE EnterpriseFolders SET + FolderName = @FolderName, + FolderQuota = @FolderQuota +WHERE ItemID = @ItemID AND FolderName = @FolderID +GO \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Client/EnterpriseStorageProxy.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Client/EnterpriseStorageProxy.cs index 046048d2..da0a8852 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Client/EnterpriseStorageProxy.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Client/EnterpriseStorageProxy.cs @@ -20,16 +20,8 @@ using WebsitePanel.Providers.OS; namespace WebsitePanel.EnterpriseServer { - using System.Xml.Serialization; - using System.Web.Services; - using System.ComponentModel; - using System.Web.Services.Protocols; - using System; - using System.Diagnostics; - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Web.Services.WebServiceBindingAttribute(Name = "esEnterpriseStorageSoap", Namespace = "http://smbsaas/websitepanel/enterpriseserver")] @@ -128,7 +120,7 @@ namespace WebsitePanel.EnterpriseServer public bool CheckFileServicesInstallation(int serviceId) { object[] results = this.Invoke("CheckFileServicesInstallation", new object[] { - serviceId}); + serviceId}); return ((bool)(results[0])); } @@ -136,7 +128,7 @@ namespace WebsitePanel.EnterpriseServer public System.IAsyncResult BeginCheckFileServicesInstallation(int serviceId, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("CheckFileServicesInstallation", new object[] { - serviceId}, callback, asyncState); + serviceId}, callback, asyncState); } /// @@ -160,7 +152,7 @@ namespace WebsitePanel.EnterpriseServer this.CheckFileServicesInstallationOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCheckFileServicesInstallationOperationCompleted); } this.InvokeAsync("CheckFileServicesInstallation", new object[] { - serviceId}, this.CheckFileServicesInstallationOperationCompleted, userState); + serviceId}, this.CheckFileServicesInstallationOperationCompleted, userState); } private void OnCheckFileServicesInstallationOperationCompleted(object arg) @@ -177,7 +169,7 @@ namespace WebsitePanel.EnterpriseServer public SystemFile[] GetEnterpriseFolders(int itemId) { object[] results = this.Invoke("GetEnterpriseFolders", new object[] { - itemId}); + itemId}); return ((SystemFile[])(results[0])); } @@ -185,7 +177,7 @@ namespace WebsitePanel.EnterpriseServer public System.IAsyncResult BeginGetEnterpriseFolders(int itemId, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("GetEnterpriseFolders", new object[] { - itemId}, callback, asyncState); + itemId}, callback, asyncState); } /// @@ -209,7 +201,7 @@ namespace WebsitePanel.EnterpriseServer this.GetEnterpriseFoldersOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetEnterpriseFoldersOperationCompleted); } this.InvokeAsync("GetEnterpriseFolders", new object[] { - itemId}, this.GetEnterpriseFoldersOperationCompleted, userState); + itemId}, this.GetEnterpriseFoldersOperationCompleted, userState); } private void OnGetEnterpriseFoldersOperationCompleted(object arg) @@ -226,8 +218,8 @@ namespace WebsitePanel.EnterpriseServer public SystemFile GetEnterpriseFolder(int itemId, string folderName) { object[] results = this.Invoke("GetEnterpriseFolder", new object[] { - itemId, - folderName}); + itemId, + folderName}); return ((SystemFile)(results[0])); } @@ -235,8 +227,8 @@ namespace WebsitePanel.EnterpriseServer public System.IAsyncResult BeginGetEnterpriseFolder(int itemId, string folderName, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("GetEnterpriseFolder", new object[] { - itemId, - folderName}, callback, asyncState); + itemId, + folderName}, callback, asyncState); } /// @@ -260,8 +252,8 @@ namespace WebsitePanel.EnterpriseServer this.GetEnterpriseFolderOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetEnterpriseFolderOperationCompleted); } this.InvokeAsync("GetEnterpriseFolder", new object[] { - itemId, - folderName}, this.GetEnterpriseFolderOperationCompleted, userState); + itemId, + folderName}, this.GetEnterpriseFolderOperationCompleted, userState); } private void OnGetEnterpriseFolderOperationCompleted(object arg) @@ -278,8 +270,8 @@ namespace WebsitePanel.EnterpriseServer public ResultObject CreateEnterpriseFolder(int itemId, string folderName) { object[] results = this.Invoke("CreateEnterpriseFolder", new object[] { - itemId, - folderName}); + itemId, + folderName}); return ((ResultObject)(results[0])); } @@ -287,8 +279,8 @@ namespace WebsitePanel.EnterpriseServer public System.IAsyncResult BeginCreateEnterpriseFolder(int itemId, string folderName, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("CreateEnterpriseFolder", new object[] { - itemId, - folderName}, callback, asyncState); + itemId, + folderName}, callback, asyncState); } /// @@ -312,8 +304,8 @@ namespace WebsitePanel.EnterpriseServer this.CreateEnterpriseFolderOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCreateEnterpriseFolderOperationCompleted); } this.InvokeAsync("CreateEnterpriseFolder", new object[] { - itemId, - folderName}, this.CreateEnterpriseFolderOperationCompleted, userState); + itemId, + folderName}, this.CreateEnterpriseFolderOperationCompleted, userState); } private void OnCreateEnterpriseFolderOperationCompleted(object arg) @@ -330,8 +322,8 @@ namespace WebsitePanel.EnterpriseServer public ResultObject DeleteEnterpriseFolder(int itemId, string folderName) { object[] results = this.Invoke("DeleteEnterpriseFolder", new object[] { - itemId, - folderName}); + itemId, + folderName}); return ((ResultObject)(results[0])); } @@ -339,8 +331,8 @@ namespace WebsitePanel.EnterpriseServer public System.IAsyncResult BeginDeleteEnterpriseFolder(int itemId, string folderName, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("DeleteEnterpriseFolder", new object[] { - itemId, - folderName}, callback, asyncState); + itemId, + folderName}, callback, asyncState); } /// @@ -364,8 +356,8 @@ namespace WebsitePanel.EnterpriseServer this.DeleteEnterpriseFolderOperationCompleted = new System.Threading.SendOrPostCallback(this.OnDeleteEnterpriseFolderOperationCompleted); } this.InvokeAsync("DeleteEnterpriseFolder", new object[] { - itemId, - folderName}, this.DeleteEnterpriseFolderOperationCompleted, userState); + itemId, + folderName}, this.DeleteEnterpriseFolderOperationCompleted, userState); } private void OnDeleteEnterpriseFolderOperationCompleted(object arg) @@ -382,8 +374,8 @@ namespace WebsitePanel.EnterpriseServer public ESPermission[] GetEnterpriseFolderPermissions(int itemId, string folderName) { object[] results = this.Invoke("GetEnterpriseFolderPermissions", new object[] { - itemId, - folderName}); + itemId, + folderName}); return ((ESPermission[])(results[0])); } @@ -391,8 +383,8 @@ namespace WebsitePanel.EnterpriseServer public System.IAsyncResult BeginGetEnterpriseFolderPermissions(int itemId, string folderName, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("GetEnterpriseFolderPermissions", new object[] { - itemId, - folderName}, callback, asyncState); + itemId, + folderName}, callback, asyncState); } /// @@ -416,8 +408,8 @@ namespace WebsitePanel.EnterpriseServer this.GetEnterpriseFolderPermissionsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetEnterpriseFolderPermissionsOperationCompleted); } this.InvokeAsync("GetEnterpriseFolderPermissions", new object[] { - itemId, - folderName}, this.GetEnterpriseFolderPermissionsOperationCompleted, userState); + itemId, + folderName}, this.GetEnterpriseFolderPermissionsOperationCompleted, userState); } private void OnGetEnterpriseFolderPermissionsOperationCompleted(object arg) @@ -434,9 +426,9 @@ namespace WebsitePanel.EnterpriseServer public ResultObject SetEnterpriseFolderPermissions(int itemId, string folderName, ESPermission[] permission) { object[] results = this.Invoke("SetEnterpriseFolderPermissions", new object[] { - itemId, - folderName, - permission}); + itemId, + folderName, + permission}); return ((ResultObject)(results[0])); } @@ -444,9 +436,9 @@ namespace WebsitePanel.EnterpriseServer public System.IAsyncResult BeginSetEnterpriseFolderPermissions(int itemId, string folderName, ESPermission[] permission, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("SetEnterpriseFolderPermissions", new object[] { - itemId, - folderName, - permission}, callback, asyncState); + itemId, + folderName, + permission}, callback, asyncState); } /// @@ -470,9 +462,9 @@ namespace WebsitePanel.EnterpriseServer this.SetEnterpriseFolderPermissionsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnSetEnterpriseFolderPermissionsOperationCompleted); } this.InvokeAsync("SetEnterpriseFolderPermissions", new object[] { - itemId, - folderName, - permission}, this.SetEnterpriseFolderPermissionsOperationCompleted, userState); + itemId, + folderName, + permission}, this.SetEnterpriseFolderPermissionsOperationCompleted, userState); } private void OnSetEnterpriseFolderPermissionsOperationCompleted(object arg) @@ -489,10 +481,10 @@ namespace WebsitePanel.EnterpriseServer public ExchangeAccount[] SearchESAccounts(int itemId, string filterColumn, string filterValue, string sortColumn) { object[] results = this.Invoke("SearchESAccounts", new object[] { - itemId, - filterColumn, - filterValue, - sortColumn}); + itemId, + filterColumn, + filterValue, + sortColumn}); return ((ExchangeAccount[])(results[0])); } @@ -500,10 +492,10 @@ namespace WebsitePanel.EnterpriseServer public System.IAsyncResult BeginSearchESAccounts(int itemId, string filterColumn, string filterValue, string sortColumn, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("SearchESAccounts", new object[] { - itemId, - filterColumn, - filterValue, - sortColumn}, callback, asyncState); + itemId, + filterColumn, + filterValue, + sortColumn}, callback, asyncState); } /// @@ -527,10 +519,10 @@ namespace WebsitePanel.EnterpriseServer this.SearchESAccountsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnSearchESAccountsOperationCompleted); } this.InvokeAsync("SearchESAccounts", new object[] { - itemId, - filterColumn, - filterValue, - sortColumn}, this.SearchESAccountsOperationCompleted, userState); + itemId, + filterColumn, + filterValue, + sortColumn}, this.SearchESAccountsOperationCompleted, userState); } private void OnSearchESAccountsOperationCompleted(object arg) @@ -547,11 +539,11 @@ namespace WebsitePanel.EnterpriseServer public SystemFilesPaged GetEnterpriseFoldersPaged(int itemId, string filterValue, string sortColumn, int startRow, int maximumRows) { object[] results = this.Invoke("GetEnterpriseFoldersPaged", new object[] { - itemId, - filterValue, - sortColumn, - startRow, - maximumRows}); + itemId, + filterValue, + sortColumn, + startRow, + maximumRows}); return ((SystemFilesPaged)(results[0])); } @@ -559,11 +551,11 @@ namespace WebsitePanel.EnterpriseServer public System.IAsyncResult BeginGetEnterpriseFoldersPaged(int itemId, string filterValue, string sortColumn, int startRow, int maximumRows, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("GetEnterpriseFoldersPaged", new object[] { - itemId, - filterValue, - sortColumn, - startRow, - maximumRows}, callback, asyncState); + itemId, + filterValue, + sortColumn, + startRow, + maximumRows}, callback, asyncState); } /// @@ -587,11 +579,11 @@ namespace WebsitePanel.EnterpriseServer this.GetEnterpriseFoldersPagedOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetEnterpriseFoldersPagedOperationCompleted); } this.InvokeAsync("GetEnterpriseFoldersPaged", new object[] { - itemId, - filterValue, - sortColumn, - startRow, - maximumRows}, this.GetEnterpriseFoldersPagedOperationCompleted, userState); + itemId, + filterValue, + sortColumn, + startRow, + maximumRows}, this.GetEnterpriseFoldersPagedOperationCompleted, userState); } private void OnGetEnterpriseFoldersPagedOperationCompleted(object arg) @@ -608,9 +600,9 @@ namespace WebsitePanel.EnterpriseServer public SystemFile RenameEnterpriseFolder(int itemId, string oldName, string newName) { object[] results = this.Invoke("RenameEnterpriseFolder", new object[] { - itemId, - oldName, - newName}); + itemId, + oldName, + newName}); return ((SystemFile)(results[0])); } @@ -618,9 +610,9 @@ namespace WebsitePanel.EnterpriseServer public System.IAsyncResult BeginRenameEnterpriseFolder(int itemId, string oldName, string newName, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("RenameEnterpriseFolder", new object[] { - itemId, - oldName, - newName}, callback, asyncState); + itemId, + oldName, + newName}, callback, asyncState); } /// @@ -644,9 +636,9 @@ namespace WebsitePanel.EnterpriseServer this.RenameEnterpriseFolderOperationCompleted = new System.Threading.SendOrPostCallback(this.OnRenameEnterpriseFolderOperationCompleted); } this.InvokeAsync("RenameEnterpriseFolder", new object[] { - itemId, - oldName, - newName}, this.RenameEnterpriseFolderOperationCompleted, userState); + itemId, + oldName, + newName}, this.RenameEnterpriseFolderOperationCompleted, userState); } private void OnRenameEnterpriseFolderOperationCompleted(object arg) @@ -663,8 +655,8 @@ namespace WebsitePanel.EnterpriseServer public ResultObject CreateEnterpriseStorage(int packageId, int itemId) { object[] results = this.Invoke("CreateEnterpriseStorage", new object[] { - packageId, - itemId}); + packageId, + itemId}); return ((ResultObject)(results[0])); } @@ -672,8 +664,8 @@ namespace WebsitePanel.EnterpriseServer public System.IAsyncResult BeginCreateEnterpriseStorage(int packageId, int itemId, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("CreateEnterpriseStorage", new object[] { - packageId, - itemId}, callback, asyncState); + packageId, + itemId}, callback, asyncState); } /// @@ -697,8 +689,8 @@ namespace WebsitePanel.EnterpriseServer this.CreateEnterpriseStorageOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCreateEnterpriseStorageOperationCompleted); } this.InvokeAsync("CreateEnterpriseStorage", new object[] { - packageId, - itemId}, this.CreateEnterpriseStorageOperationCompleted, userState); + packageId, + itemId}, this.CreateEnterpriseStorageOperationCompleted, userState); } private void OnCreateEnterpriseStorageOperationCompleted(object arg) @@ -716,8 +708,8 @@ namespace WebsitePanel.EnterpriseServer public bool CheckEnterpriseStorageInitialization(int packageId, int itemId) { object[] results = this.Invoke("CheckEnterpriseStorageInitialization", new object[] { - packageId, - itemId}); + packageId, + itemId}); return ((bool)(results[0])); } @@ -725,8 +717,8 @@ namespace WebsitePanel.EnterpriseServer public System.IAsyncResult BeginCheckEnterpriseStorageInitialization(int packageId, int itemId, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("CheckEnterpriseStorageInitialization", new object[] { - packageId, - itemId}, callback, asyncState); + packageId, + itemId}, callback, asyncState); } /// @@ -750,8 +742,8 @@ namespace WebsitePanel.EnterpriseServer this.CheckEnterpriseStorageInitializationOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCheckEnterpriseStorageInitializationOperationCompleted); } this.InvokeAsync("CheckEnterpriseStorageInitialization", new object[] { - packageId, - itemId}, this.CheckEnterpriseStorageInitializationOperationCompleted, userState); + packageId, + itemId}, this.CheckEnterpriseStorageInitializationOperationCompleted, userState); } private void OnCheckEnterpriseStorageInitializationOperationCompleted(object arg) @@ -768,7 +760,7 @@ namespace WebsitePanel.EnterpriseServer public bool CheckUsersDomainExists(int itemId) { object[] results = this.Invoke("CheckUsersDomainExists", new object[] { - itemId}); + itemId}); return ((bool)(results[0])); } @@ -776,7 +768,7 @@ namespace WebsitePanel.EnterpriseServer public System.IAsyncResult BeginCheckUsersDomainExists(int itemId, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("CheckUsersDomainExists", new object[] { - itemId}, callback, asyncState); + itemId}, callback, asyncState); } /// @@ -800,7 +792,7 @@ namespace WebsitePanel.EnterpriseServer this.CheckUsersDomainExistsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCheckUsersDomainExistsOperationCompleted); } this.InvokeAsync("CheckUsersDomainExists", new object[] { - itemId}, this.CheckUsersDomainExistsOperationCompleted, userState); + itemId}, this.CheckUsersDomainExistsOperationCompleted, userState); } private void OnCheckUsersDomainExistsOperationCompleted(object arg) @@ -817,8 +809,8 @@ namespace WebsitePanel.EnterpriseServer public bool GetDirectoryBrowseEnabled(int itemId, string site) { object[] results = this.Invoke("GetDirectoryBrowseEnabled", new object[] { - itemId, - site}); + itemId, + site}); return ((bool)(results[0])); } @@ -826,8 +818,8 @@ namespace WebsitePanel.EnterpriseServer public System.IAsyncResult BeginGetDirectoryBrowseEnabled(int itemId, string site, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("GetDirectoryBrowseEnabled", new object[] { - itemId, - site}, callback, asyncState); + itemId, + site}, callback, asyncState); } /// @@ -851,8 +843,8 @@ namespace WebsitePanel.EnterpriseServer this.GetDirectoryBrowseEnabledOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetDirectoryBrowseEnabledOperationCompleted); } this.InvokeAsync("GetDirectoryBrowseEnabled", new object[] { - itemId, - site}, this.GetDirectoryBrowseEnabledOperationCompleted, userState); + itemId, + site}, this.GetDirectoryBrowseEnabledOperationCompleted, userState); } private void OnGetDirectoryBrowseEnabledOperationCompleted(object arg) @@ -869,18 +861,18 @@ namespace WebsitePanel.EnterpriseServer public void SetDirectoryBrowseEnabled(int itemId, string site, bool enabled) { this.Invoke("SetDirectoryBrowseEnabled", new object[] { - itemId, - site, - enabled}); + itemId, + site, + enabled}); } /// public System.IAsyncResult BeginSetDirectoryBrowseEnabled(int itemId, string site, bool enabled, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("SetDirectoryBrowseEnabled", new object[] { - itemId, - site, - enabled}, callback, asyncState); + itemId, + site, + enabled}, callback, asyncState); } /// @@ -903,9 +895,9 @@ namespace WebsitePanel.EnterpriseServer this.SetDirectoryBrowseEnabledOperationCompleted = new System.Threading.SendOrPostCallback(this.OnSetDirectoryBrowseEnabledOperationCompleted); } this.InvokeAsync("SetDirectoryBrowseEnabled", new object[] { - itemId, - site, - enabled}, this.SetDirectoryBrowseEnabledOperationCompleted, userState); + itemId, + site, + enabled}, this.SetDirectoryBrowseEnabledOperationCompleted, userState); } private void OnSetDirectoryBrowseEnabledOperationCompleted(object arg) @@ -919,25 +911,27 @@ namespace WebsitePanel.EnterpriseServer /// [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/SetEnterpriseFolderSettings", RequestNamespace = "http://smbsaas/websitepanel/enterpriseserver", ResponseNamespace = "http://smbsaas/websitepanel/enterpriseserver", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] - public void SetEnterpriseFolderSettings(int itemId, SystemFile folder, ESPermission[] permissions, bool directoyBrowsingEnabled, int quota) + public void SetEnterpriseFolderSettings(int itemId, SystemFile folder, ESPermission[] permissions, bool directoyBrowsingEnabled, int quota, QuotaType quotaType) { this.Invoke("SetEnterpriseFolderSettings", new object[] { - itemId, - folder, - permissions, - directoyBrowsingEnabled, - quota}); + itemId, + folder, + permissions, + directoyBrowsingEnabled, + quota, + quotaType}); } /// - public System.IAsyncResult BeginSetEnterpriseFolderSettings(int itemId, SystemFile folder, ESPermission[] permissions, bool directoyBrowsingEnabled, int quota, System.AsyncCallback callback, object asyncState) + public System.IAsyncResult BeginSetEnterpriseFolderSettings(int itemId, SystemFile folder, ESPermission[] permissions, bool directoyBrowsingEnabled, int quota, QuotaType quotaType, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("SetEnterpriseFolderSettings", new object[] { - itemId, - folder, - permissions, - directoyBrowsingEnabled, - quota}, callback, asyncState); + itemId, + folder, + permissions, + directoyBrowsingEnabled, + quota, + quotaType}, callback, asyncState); } /// @@ -947,24 +941,25 @@ namespace WebsitePanel.EnterpriseServer } /// - public void SetEnterpriseFolderSettingsAsync(int itemId, SystemFile folder, ESPermission[] permissions, bool directoyBrowsingEnabled, int quota) + public void SetEnterpriseFolderSettingsAsync(int itemId, SystemFile folder, ESPermission[] permissions, bool directoyBrowsingEnabled, int quota, QuotaType quotaType) { - this.SetEnterpriseFolderSettingsAsync(itemId, folder, permissions, directoyBrowsingEnabled, quota, null); + this.SetEnterpriseFolderSettingsAsync(itemId, folder, permissions, directoyBrowsingEnabled, quota, quotaType, null); } /// - public void SetEnterpriseFolderSettingsAsync(int itemId, SystemFile folder, ESPermission[] permissions, bool directoyBrowsingEnabled, int quota, object userState) + public void SetEnterpriseFolderSettingsAsync(int itemId, SystemFile folder, ESPermission[] permissions, bool directoyBrowsingEnabled, int quota, QuotaType quotaType, object userState) { if ((this.SetEnterpriseFolderSettingsOperationCompleted == null)) { this.SetEnterpriseFolderSettingsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnSetEnterpriseFolderSettingsOperationCompleted); } this.InvokeAsync("SetEnterpriseFolderSettings", new object[] { - itemId, - folder, - permissions, - directoyBrowsingEnabled, - quota}, this.SetEnterpriseFolderSettingsOperationCompleted, userState); + itemId, + folder, + permissions, + directoyBrowsingEnabled, + quota, + quotaType}, this.SetEnterpriseFolderSettingsOperationCompleted, userState); } private void OnSetEnterpriseFolderSettingsOperationCompleted(object arg) @@ -984,11 +979,11 @@ namespace WebsitePanel.EnterpriseServer } /// - [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 @@ -1014,11 +1009,11 @@ namespace WebsitePanel.EnterpriseServer } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void GetEnterpriseFoldersCompletedEventHandler(object sender, GetEnterpriseFoldersCompletedEventArgs 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 GetEnterpriseFoldersCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs @@ -1044,11 +1039,11 @@ namespace WebsitePanel.EnterpriseServer } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void GetEnterpriseFolderCompletedEventHandler(object sender, GetEnterpriseFolderCompletedEventArgs 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 GetEnterpriseFolderCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs @@ -1074,11 +1069,11 @@ namespace WebsitePanel.EnterpriseServer } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void CreateEnterpriseFolderCompletedEventHandler(object sender, CreateEnterpriseFolderCompletedEventArgs 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 CreateEnterpriseFolderCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs @@ -1104,11 +1099,11 @@ namespace WebsitePanel.EnterpriseServer } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void DeleteEnterpriseFolderCompletedEventHandler(object sender, DeleteEnterpriseFolderCompletedEventArgs 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 DeleteEnterpriseFolderCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs @@ -1134,11 +1129,11 @@ namespace WebsitePanel.EnterpriseServer } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void GetEnterpriseFolderPermissionsCompletedEventHandler(object sender, GetEnterpriseFolderPermissionsCompletedEventArgs 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 GetEnterpriseFolderPermissionsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs @@ -1164,11 +1159,11 @@ namespace WebsitePanel.EnterpriseServer } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void SetEnterpriseFolderPermissionsCompletedEventHandler(object sender, SetEnterpriseFolderPermissionsCompletedEventArgs 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 SetEnterpriseFolderPermissionsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs @@ -1194,11 +1189,11 @@ namespace WebsitePanel.EnterpriseServer } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void SearchESAccountsCompletedEventHandler(object sender, SearchESAccountsCompletedEventArgs 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 SearchESAccountsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs @@ -1224,11 +1219,11 @@ namespace WebsitePanel.EnterpriseServer } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void GetEnterpriseFoldersPagedCompletedEventHandler(object sender, GetEnterpriseFoldersPagedCompletedEventArgs 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 GetEnterpriseFoldersPagedCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs @@ -1254,11 +1249,11 @@ namespace WebsitePanel.EnterpriseServer } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void RenameEnterpriseFolderCompletedEventHandler(object sender, RenameEnterpriseFolderCompletedEventArgs 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 RenameEnterpriseFolderCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs @@ -1284,11 +1279,11 @@ namespace WebsitePanel.EnterpriseServer } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void CreateEnterpriseStorageCompletedEventHandler(object sender, CreateEnterpriseStorageCompletedEventArgs 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 CreateEnterpriseStorageCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs @@ -1314,11 +1309,11 @@ namespace WebsitePanel.EnterpriseServer } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void CheckEnterpriseStorageInitializationCompletedEventHandler(object sender, CheckEnterpriseStorageInitializationCompletedEventArgs 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 CheckEnterpriseStorageInitializationCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs @@ -1344,11 +1339,11 @@ namespace WebsitePanel.EnterpriseServer } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void CheckUsersDomainExistsCompletedEventHandler(object sender, CheckUsersDomainExistsCompletedEventArgs 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 CheckUsersDomainExistsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs @@ -1374,11 +1369,11 @@ namespace WebsitePanel.EnterpriseServer } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void GetDirectoryBrowseEnabledCompletedEventHandler(object sender, GetDirectoryBrowseEnabledCompletedEventArgs 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 GetDirectoryBrowseEnabledCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs @@ -1404,10 +1399,10 @@ namespace WebsitePanel.EnterpriseServer } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void SetDirectoryBrowseEnabledCompletedEventHandler(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 SetEnterpriseFolderSettingsCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e); } diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Data/DataProvider.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Data/DataProvider.cs index 07a052cb..6dc8c467 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Data/DataProvider.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Data/DataProvider.cs @@ -4155,5 +4155,48 @@ namespace WebsitePanel.EnterpriseServer } #endregion + + #region Enterprise Storage + + public static int AddEntepriseFolder(int itemId, string folderName) + { + SqlParameter prmId = new SqlParameter("@FolderID", SqlDbType.Int); + prmId.Direction = ParameterDirection.Output; + + SqlHelper.ExecuteNonQuery( + ConnectionString, + CommandType.StoredProcedure, + "AddEnterpriseFolder", + prmId, + new SqlParameter("@ItemID", itemId), + new SqlParameter("@FolderName", folderName)); + + // read identity + return Convert.ToInt32(prmId.Value); + } + + public static void DeleteEnterpriseFolder(int itemId, string folderName) + { + SqlHelper.ExecuteNonQuery( + ConnectionString, + CommandType.StoredProcedure, + "DeleteEnterpriseFolder", + new SqlParameter("@ItemID", itemId), + new SqlParameter("@FolderName", folderName)); + } + + public static void UpdateEnterpriseFolder(int itemId, string folderID, string folderName, int folderQuota) + { + SqlHelper.ExecuteNonQuery( + ConnectionString, + CommandType.StoredProcedure, + "UpdateEnterpriseFolder", + new SqlParameter("@ItemID", itemId), + new SqlParameter("@FolderID", folderID), + new SqlParameter("@FolderName", folderName), + new SqlParameter("@FolderQuota", folderQuota)); + } + + #endregion } } diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/EnterpriseStorage/EnterpriseStorageController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/EnterpriseStorage/EnterpriseStorageController.cs index 72ba9403..97baa68e 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/EnterpriseStorage/EnterpriseStorageController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/EnterpriseStorage/EnterpriseStorageController.cs @@ -141,9 +141,9 @@ namespace WebsitePanel.EnterpriseServer return CheckUsersDomainExistsInternal(itemId); } - public static void SetFRSMQuotaOnFolder(int itemId, string folderName, int quota) + public static void SetFRSMQuotaOnFolder(int itemId, string folderName, int quota, QuotaType quotaType) { - SetFRSMQuotaOnFolderInternal(itemId, folderName, quota); + SetFRSMQuotaOnFolderInternal(itemId, folderName, quota, quotaType); } #region Directory Browsing @@ -396,7 +396,16 @@ namespace WebsitePanel.EnterpriseServer EnterpriseStorage es = GetEnterpriseStorage(GetEnterpriseStorageServiceID(org.PackageId)); - return es.RenameFolder(org.OrganizationId, oldFolder, newFolder); + if (es.GetFolder(org.OrganizationId, newFolder) == null) + { + SystemFile folder = es.RenameFolder(org.OrganizationId, oldFolder, newFolder); + + DataProvider.UpdateEnterpriseFolder(itemId, oldFolder, newFolder, folder.FRSMQuotaGB); + + return folder; + } + + return null; } catch (Exception ex) { @@ -421,7 +430,18 @@ namespace WebsitePanel.EnterpriseServer EnterpriseStorage es = GetEnterpriseStorage(GetEnterpriseStorageServiceID(org.PackageId)); - es.CreateFolder(org.OrganizationId, folderName); + if (es.GetFolder(org.OrganizationId, folderName) == null) + { + es.CreateFolder(org.OrganizationId, folderName); + + DataProvider.AddEntepriseFolder(itemId, folderName); + } + else + { + result.IsSuccess = false; + result.AddError("Enterprise Storage", new Exception("Folder already exist")); + return result; + } } catch (Exception ex) { @@ -442,7 +462,7 @@ namespace WebsitePanel.EnterpriseServer return result; } - protected static void SetFRSMQuotaOnFolderInternal(int itemId, string folderName, int quota) + protected static void SetFRSMQuotaOnFolderInternal(int itemId, string folderName, int quota, QuotaType quotaType) { ResultObject result = TaskManager.StartResultTask("ENTERPRISE_STORAGE", "CREATE_FOLDER"); @@ -462,7 +482,9 @@ namespace WebsitePanel.EnterpriseServer // check if it's not root folder if (!string.IsNullOrEmpty(folderName)) { - SetFolderQuota(org.PackageId, org.OrganizationId, folderName, quota); + SetFolderQuota(org.PackageId, org.OrganizationId, folderName, quota, quotaType); + + DataProvider.UpdateEnterpriseFolder(itemId, folderName, folderName, quota); } } catch (Exception ex) @@ -498,6 +520,8 @@ namespace WebsitePanel.EnterpriseServer EnterpriseStorage es = GetEnterpriseStorage(GetEnterpriseStorageServiceID(org.PackageId)); es.DeleteFolder(org.OrganizationId, folderName); + + DataProvider.DeleteEnterpriseFolder(itemId, folderName); } catch (Exception ex) { @@ -804,15 +828,19 @@ namespace WebsitePanel.EnterpriseServer rule.Users.Add(permission.Account); } - if (permission.Access.ToLower().Contains("read-only")) + if (permission.Access.ToLower().Contains("read")) { rule.Read = true; } - if (permission.Access.ToLower().Contains("read-write")) + if (permission.Access.ToLower().Contains("write")) { rule.Write = true; - rule.Read = true; + } + + if (permission.Access.ToLower().Contains("source")) + { + rule.Source = true; } rule.Pathes.Add("*"); @@ -860,15 +888,25 @@ namespace WebsitePanel.EnterpriseServer permission.DisplayName = userObj.DisplayName; } - if (rule.Read && !rule.Write) + if (rule.Read) { - permission.Access = "Read-Only"; - } - if (rule.Write) - { - permission.Access = "Read-Write"; + permission.Access += "Read,"; } + if (rule.Write) + { + permission.Access += "Write,"; + } + + if (rule.Source) + { + permission.Access += "Source"; + } + + if (permission.Access[permission.Access.Length - 1] == ',') + { + permission.Access = permission.Access.Remove(permission.Access.Length - 1); + } permissions.Add(permission); } @@ -877,7 +915,7 @@ namespace WebsitePanel.EnterpriseServer } - private static void SetFolderQuota(int packageId, string orgId, string folderName, int quotaSize) + private static void SetFolderQuota(int packageId, string orgId, string folderName, int quotaSize, QuotaType quotaType) { int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive); if (accountCheck < 0) @@ -899,10 +937,6 @@ namespace WebsitePanel.EnterpriseServer var orgFolder = Path.Combine(usersHome, orgId, folderName); - FSRMQuotaType quotaType = (esSesstings["enablehardquota"] != null) - ? bool.Parse(esSesstings["enablehardquota"]) == true ? FSRMQuotaType.Hard : FSRMQuotaType.Soft - : FSRMQuotaType.Soft; - var os = GetOS(packageId); if (os != null && os.CheckFileServicesInstallation()) diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Files/FilesController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Files/FilesController.cs index bf511db4..ea8ab649 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Files/FilesController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Files/FilesController.cs @@ -910,7 +910,7 @@ namespace WebsitePanel.EnterpriseServer return users.ToArray(); } - public static int SetFolderQuota(int packageId, string path, string driveName,string quotas) + public static int SetFolderQuota(int packageId, string path, string driveName, string quotas) { // check account @@ -948,7 +948,7 @@ namespace WebsitePanel.EnterpriseServer OS.OperatingSystem os = GetOS(packageId); - os.SetQuotaLimitOnFolder(path, driveName, FSRMQuotaType.Hard, diskSpaceQuota.QuotaAllocatedValue.ToString() + unit, 0, String.Empty, String.Empty); + os.SetQuotaLimitOnFolder(path, driveName, QuotaType.Hard, diskSpaceQuota.QuotaAllocatedValue.ToString() + unit, 0, String.Empty, String.Empty); return 0; } diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/HostedSolution/OrganizationController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/HostedSolution/OrganizationController.cs index 5f256df8..5d25ce78 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/HostedSolution/OrganizationController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/HostedSolution/OrganizationController.cs @@ -960,10 +960,8 @@ namespace WebsitePanel.EnterpriseServer SystemFile[] folders = EnterpriseStorageController.GetFolders(itemId); stats.CreatedEnterpriseStorageFolders = folders.Count(); - - stats.UsedEnterpriseStorageSpace = (int)folders.Sum(x => x.Size); - - stats.AllocatedEnterpriseStorageSpace = folders.Where(x => x.FRSMQuotaMB != -1).Sum(x => x.FRSMQuotaMB); + + stats.UsedEnterpriseStorageSpace = folders.Where(x => x.FRSMQuotaGB != -1).Sum(x => x.FRSMQuotaGB); } } else @@ -1026,10 +1024,8 @@ namespace WebsitePanel.EnterpriseServer SystemFile[] folders = EnterpriseStorageController.GetFolders(o.Id); stats.CreatedEnterpriseStorageFolders += folders.Count(); - - stats.UsedEnterpriseStorageSpace += (int)folders.Sum(x => x.Size); - stats.AllocatedEnterpriseStorageSpace += folders.Where(x => x.FRSMQuotaMB != -1).Sum(x => x.FRSMQuotaMB); + stats.UsedEnterpriseStorageSpace += folders.Where(x => x.FRSMQuotaGB != -1).Sum(x => x.FRSMQuotaGB); } } } @@ -1073,6 +1069,7 @@ namespace WebsitePanel.EnterpriseServer if (cntx.Groups.ContainsKey(ResourceGroups.EnterpriseStorage)) { stats.AllocatedEnterpriseStorageFolders = cntx.Quotas[Quotas.ENTERPRISESTORAGE_FOLDERS].QuotaAllocatedValue; + stats.AllocatedEnterpriseStorageSpace = cntx.Quotas[Quotas.ENTERPRISESTORAGE_DISKSTORAGESPACE].QuotaAllocatedValue; } return stats; diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/esEnterpriseStorage.asmx.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/esEnterpriseStorage.asmx.cs index 4b279f39..e89987b6 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/esEnterpriseStorage.asmx.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/esEnterpriseStorage.asmx.cs @@ -150,11 +150,11 @@ namespace WebsitePanel.EnterpriseServer } [WebMethod] - public void SetEnterpriseFolderSettings(int itemId, SystemFile folder, ESPermission[] permissions, bool directoyBrowsingEnabled, int quota) + public void SetEnterpriseFolderSettings(int itemId, SystemFile folder, ESPermission[] permissions, bool directoyBrowsingEnabled, int quota, QuotaType quotaType) { EnterpriseStorageController.SetDirectoryBrowseEnabled(itemId, folder.Url, directoyBrowsingEnabled); EnterpriseStorageController.SetFolderPermission(itemId, folder.Name, permissions); - EnterpriseStorageController.SetFRSMQuotaOnFolder(itemId, folder.Name, quota); + EnterpriseStorageController.SetFRSMQuotaOnFolder(itemId, folder.Name, quota, quotaType); } #endregion diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Base/OS/IOperatingSystem.cs b/WebsitePanel/Sources/WebsitePanel.Providers.Base/OS/IOperatingSystem.cs index db1bac5a..23832a60 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.Base/OS/IOperatingSystem.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.Base/OS/IOperatingSystem.cs @@ -82,8 +82,8 @@ namespace WebsitePanel.Providers.OS FolderGraph GetFolderGraph(string path); void ExecuteSyncActions(FileSyncAction[] actions); - void SetQuotaLimitOnFolder(string folderPath, string shareNameDrive, FSRMQuotaType quotaType, string quotaLimit, int mode, string wmiUserName, string wmiPassword); - int GetQuotaLimitOnFolder(string folderPath, string wmiUserName, string wmiPassword); + void SetQuotaLimitOnFolder(string folderPath, string shareNameDrive, QuotaType quotaType, string quotaLimit, int mode, string wmiUserName, string wmiPassword); + Quota GetQuotaOnFolder(string folderPath, string wmiUserName, string wmiPassword); void DeleteDirectoryRecursive(string rootPath); // File Services diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Base/OS/Quota.cs b/WebsitePanel/Sources/WebsitePanel.Providers.Base/OS/Quota.cs new file mode 100644 index 00000000..13727976 --- /dev/null +++ b/WebsitePanel/Sources/WebsitePanel.Providers.Base/OS/Quota.cs @@ -0,0 +1,51 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace WebsitePanel.Providers.OS +{ + public class Quota + { + #region Fields + + private int _Size; + private QuotaType _QuotaType; + private int _Usage; + + #endregion + + #region Properties + + public int Size + { + get { return _Size; } + set { _Size = value; } + } + + public QuotaType QuotaType + { + get { return _QuotaType; } + set { _QuotaType = value; } + } + + public int Usage + { + get { return _Usage; } + set { _Usage = value; } + } + + #endregion + + #region Constructors + + public Quota() + { + _Size = -1; + _QuotaType = QuotaType.Soft; + _Usage = -1; + } + + #endregion + } +} diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Base/OS/QuotaType.cs b/WebsitePanel/Sources/WebsitePanel.Providers.Base/OS/QuotaType.cs new file mode 100644 index 00000000..f470fb19 --- /dev/null +++ b/WebsitePanel/Sources/WebsitePanel.Providers.Base/OS/QuotaType.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace WebsitePanel.Providers.OS +{ + public enum QuotaType + { + Soft = 1, + Hard = 2 + } +} diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Base/OS/SystemFile.cs b/WebsitePanel/Sources/WebsitePanel.Providers.Base/OS/SystemFile.cs index 2bda83ce..a788ae4e 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.Base/OS/SystemFile.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.Base/OS/SystemFile.cs @@ -47,6 +47,8 @@ namespace WebsitePanel.Providers.OS private WebDavFolderRule[] rules; private string url; private int fsrmQuotaMB; + private int frsmQuotaGB; + private QuotaType fsrmQuotaType = QuotaType.Soft; public SystemFile() { @@ -69,6 +71,18 @@ namespace WebsitePanel.Providers.OS set { fsrmQuotaMB = value; } } + public int FRSMQuotaGB + { + get { return frsmQuotaGB; } + set { frsmQuotaGB = value; } + } + + public QuotaType FsrmQuotaType + { + get { return fsrmQuotaType; } + set { fsrmQuotaType = value; } + } + public string FullName { get { return fullName; } diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Base/WebsitePanel.Providers.Base.csproj b/WebsitePanel/Sources/WebsitePanel.Providers.Base/WebsitePanel.Providers.Base.csproj index b699d9d9..76bc8c69 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.Base/WebsitePanel.Providers.Base.csproj +++ b/WebsitePanel/Sources/WebsitePanel.Providers.Base/WebsitePanel.Providers.Base.csproj @@ -113,7 +113,8 @@ - + + diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.EnterpriseStorage.Windows2012/Windows2012.cs b/WebsitePanel/Sources/WebsitePanel.Providers.EnterpriseStorage.Windows2012/Windows2012.cs index 86e71aca..35c29376 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.EnterpriseStorage.Windows2012/Windows2012.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.EnterpriseStorage.Windows2012/Windows2012.cs @@ -86,7 +86,10 @@ namespace WebsitePanel.Providers.EnterpriseStorage folder.FullName = dir.FullName; folder.IsDirectory = true; - folder.Size = windows.GetUsageOnFolder(fullName); + Quota quota = windows.GetQuotaOnFolder(fullName, string.Empty, string.Empty); + + folder.Size = quota.Usage; + if (folder.Size == -1) { folder.Size = FileUtils.BytesToMb(FileUtils.CalculateFolderSize(dir.FullName)); @@ -94,7 +97,9 @@ namespace WebsitePanel.Providers.EnterpriseStorage folder.Url = string.Format("https://{0}/{1}/{2}", UsersDomain, organizationId, dir.Name); folder.Rules = webdav.GetFolderWebDavRules(organizationId, dir.Name); - folder.FRSMQuotaMB = windows.GetQuotaLimitOnFolder(fullName, string.Empty, string.Empty); + folder.FRSMQuotaMB = quota.Size; + folder.FRSMQuotaGB = windows.ConvertMegaBytesToGB(folder.FRSMQuotaMB); + folder.FsrmQuotaType = quota.QuotaType; items.Add(folder); } @@ -120,7 +125,10 @@ namespace WebsitePanel.Providers.EnterpriseStorage folder.FullName = root.FullName; folder.IsDirectory = true; - folder.Size = windows.GetUsageOnFolder(fullName); + Quota quota = windows.GetQuotaOnFolder(fullName, string.Empty, string.Empty); + + folder.Size = quota.Usage; + if (folder.Size == -1) { folder.Size = FileUtils.BytesToMb(FileUtils.CalculateFolderSize(root.FullName)); @@ -128,7 +136,9 @@ namespace WebsitePanel.Providers.EnterpriseStorage folder.Url = string.Format("https://{0}/{1}/{2}", UsersDomain, organizationId, folderName); folder.Rules = GetFolderWebDavRules(organizationId, folderName); - folder.FRSMQuotaMB = windows.GetQuotaLimitOnFolder(fullName, string.Empty, string.Empty); + folder.FRSMQuotaMB = quota.Size; + folder.FRSMQuotaGB = windows.ConvertMegaBytesToGB(folder.FRSMQuotaMB); + folder.FsrmQuotaType = quota.QuotaType; } return folder; diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.OS.Windows2003/Windows2003.cs b/WebsitePanel/Sources/WebsitePanel.Providers.OS.Windows2003/Windows2003.cs index 5d4e7fd4..80d66840 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.OS.Windows2003/Windows2003.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.OS.Windows2003/Windows2003.cs @@ -210,12 +210,12 @@ namespace WebsitePanel.Providers.OS ServerSettings, usersOU, null); } - public virtual void SetQuotaLimitOnFolder(string folderPath, string shareNameDrive, FSRMQuotaType quotaType, string quotaLimit, int mode, string wmiUserName, string wmiPassword) + public virtual void SetQuotaLimitOnFolder(string folderPath, string shareNameDrive, QuotaType quotaType, string quotaLimit, int mode, string wmiUserName, string wmiPassword) { FileUtils.SetQuotaLimitOnFolder(folderPath, shareNameDrive, quotaLimit, mode, wmiUserName, wmiPassword); } - public virtual int GetQuotaLimitOnFolder(string folderPath, string wmiUserName, string wmiPassword) + public virtual Quota GetQuotaOnFolder(string folderPath, string wmiUserName, string wmiPassword) { throw new NotImplementedException(); } diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.OS.Windows2012/Windows2012.cs b/WebsitePanel/Sources/WebsitePanel.Providers.OS.Windows2012/Windows2012.cs index 15661b8d..4d05643c 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.OS.Windows2012/Windows2012.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.OS.Windows2012/Windows2012.cs @@ -74,7 +74,7 @@ namespace WebsitePanel.Providers.OS || version == WebsitePanel.Server.Utils.OS.WindowsVersion.Windows81; } - public override void SetQuotaLimitOnFolder(string folderPath, string shareNameDrive, FSRMQuotaType quotaType, string quotaLimit, int mode, string wmiUserName, string wmiPassword) + public override void SetQuotaLimitOnFolder(string folderPath, string shareNameDrive, QuotaType quotaType, string quotaLimit, int mode, string wmiUserName, string wmiPassword) { Log.WriteStart("SetQuotaLimitOnFolder"); Log.WriteInfo("FolderPath : {0}", folderPath); @@ -133,14 +133,14 @@ namespace WebsitePanel.Providers.OS Log.WriteEnd("SetQuotaLimitOnFolder"); } - public override int GetQuotaLimitOnFolder(string folderPath, string wmiUserName, string wmiPassword) + public override Quota GetQuotaOnFolder(string folderPath, string wmiUserName, string wmiPassword) { Log.WriteStart("GetQuotaLimitOnFolder"); Log.WriteInfo("FolderPath : {0}", folderPath); Runspace runSpace = null; - int quota = -1; + Quota quota = new Quota(); try { @@ -154,7 +154,9 @@ namespace WebsitePanel.Providers.OS if (result.Count > 0) { - quota = ConvertBytesToMB(Convert.ToInt64(GetPSObjectProperty(result[0], "size"))); + quota.Size = ConvertBytesToMB(Convert.ToInt64(GetPSObjectProperty(result[0], "Size"))); + quota.QuotaType = Convert.ToBoolean(GetPSObjectProperty(result[0], "SoftLimit")) ? QuotaType.Soft : QuotaType.Hard; + quota.Usage = ConvertBytesToMB(Convert.ToInt64(GetPSObjectProperty(result[0], "usage"))); } } } @@ -173,46 +175,6 @@ namespace WebsitePanel.Providers.OS return quota; } - public int GetUsageOnFolder(string folderPath) - { - Log.WriteStart("GetUsageOnFolder"); - Log.WriteInfo("FolderPath : {0}", folderPath); - - - Runspace runSpace = null; - int size = -1; - - try - { - runSpace = OpenRunspace(); - - if (folderPath.IndexOfAny(Path.GetInvalidPathChars()) == -1) - { - Command cmd = new Command("Get-FsrmQuota"); - cmd.Parameters.Add("Path", folderPath); - var result = ExecuteShellCommand(runSpace, cmd, false); - - if (result.Count > 0) - { - size = ConvertBytesToMB(Convert.ToInt64(GetPSObjectProperty(result[0], "usage"))); - } - } - } - catch (Exception ex) - { - Log.WriteError("GetUsageOnFolder", ex); - throw; - } - finally - { - CloseRunspace(runSpace); - } - - Log.WriteEnd("GetUsageOnFolder"); - - return size; - } - public UInt64 CalculateQuota(string quota) { UInt64 OneKb = 1024; @@ -238,16 +200,14 @@ namespace WebsitePanel.Providers.OS return result; } - public int ConvertBytesToGB(long bytes) + public int ConvertMegaBytesToGB(int megabytes) { - int OneKb = 1024; - int OneMb = OneKb * 1024; - int OneGb = OneMb * 1024; + int OneGb = 1024; - if (bytes == 0) - return 0; + if (megabytes == -1) + return megabytes; - return (int)(bytes / OneGb); + return (int)(megabytes/ OneGb); } public int ConvertBytesToMB(long bytes) @@ -276,13 +236,13 @@ namespace WebsitePanel.Providers.OS catch { /* do nothing */ } } - public void ChangeQuotaOnFolder(Runspace runSpace, string command, string path, FSRMQuotaType quotaType, UInt64 quota) + public void ChangeQuotaOnFolder(Runspace runSpace, string command, string path, QuotaType quotaType, UInt64 quota) { Command cmd = new Command(command); cmd.Parameters.Add("Path", path); cmd.Parameters.Add("Size", quota); - if (quotaType == FSRMQuotaType.Soft) + if (quotaType == QuotaType.Soft) { cmd.Parameters.Add("SoftLimit", true); } diff --git a/WebsitePanel/Sources/WebsitePanel.Server.Client/OperatingSystemProxy.cs b/WebsitePanel/Sources/WebsitePanel.Server.Client/OperatingSystemProxy.cs index e0baa912..d1dc1811 100644 --- a/WebsitePanel/Sources/WebsitePanel.Server.Client/OperatingSystemProxy.cs +++ b/WebsitePanel/Sources/WebsitePanel.Server.Client/OperatingSystemProxy.cs @@ -1741,7 +1741,7 @@ namespace WebsitePanel.Providers.OS /// [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, FSRMQuotaType quotaType, string quotaLimit, int mode, string wmiUserName, string wmiPassword) + public void SetQuotaLimitOnFolder(string folderPath, string shareNameDrive, QuotaType quotaType, string quotaLimit, int mode, string wmiUserName, string wmiPassword) { this.Invoke("SetQuotaLimitOnFolder", new object[] { folderPath, @@ -1754,7 +1754,7 @@ namespace WebsitePanel.Providers.OS } /// - public System.IAsyncResult BeginSetQuotaLimitOnFolder(string folderPath, string shareNameDrive, FSRMQuotaType 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, @@ -1773,13 +1773,13 @@ namespace WebsitePanel.Providers.OS } /// - public void SetQuotaLimitOnFolderAsync(string folderPath, string shareNameDrive, FSRMQuotaType 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, FSRMQuotaType quotaType, string quotaLimit, int mode, string wmiUserName, string wmiPassword, object userState) + public void SetQuotaLimitOnFolderAsync(string folderPath, string shareNameDrive, QuotaType quotaType, string quotaLimit, int mode, string wmiUserName, string wmiPassword, object userState) { if ((this.SetQuotaLimitOnFolderOperationCompleted == null)) { diff --git a/WebsitePanel/Sources/WebsitePanel.Server/OperatingSystem.asmx.cs b/WebsitePanel/Sources/WebsitePanel.Server/OperatingSystem.asmx.cs index eda7fb06..8348ddea 100644 --- a/WebsitePanel/Sources/WebsitePanel.Server/OperatingSystem.asmx.cs +++ b/WebsitePanel/Sources/WebsitePanel.Server/OperatingSystem.asmx.cs @@ -536,7 +536,7 @@ namespace WebsitePanel.Server [WebMethod, SoapHeader("settings")] - public void SetQuotaLimitOnFolder(string folderPath, string shareNameDrive, FSRMQuotaType quotaType, string quotaLimit, int mode, string wmiUserName, string wmiPassword) + public void SetQuotaLimitOnFolder(string folderPath, string shareNameDrive, QuotaType quotaType, string quotaLimit, int mode, string wmiUserName, string wmiPassword) { try { @@ -552,18 +552,18 @@ namespace WebsitePanel.Server } [WebMethod, SoapHeader("settings")] - public int GetQuotaLimitOnFolder(string folderPath, string wmiUserName, string wmiPassword) + public Quota GetQuotaOnFolder(string folderPath, string wmiUserName, string wmiPassword) { try { - Log.WriteStart("'{0}' GetQuotaLimitOnFolder", ProviderSettings.ProviderName); - var result = OsProvider.GetQuotaLimitOnFolder(folderPath, wmiUserName, wmiPassword); - Log.WriteEnd("'{0}' GetQuotaLimitOnFolder", ProviderSettings.ProviderName); + Log.WriteStart("'{0}' GetQuotaOnFolder", ProviderSettings.ProviderName); + var result = OsProvider.GetQuotaOnFolder(folderPath, wmiUserName, wmiPassword); + Log.WriteEnd("'{0}' GetQuotaOnFolder", ProviderSettings.ProviderName); return result; } catch (Exception ex) { - Log.WriteError(String.Format("'{0}' GetQuotaLimitOnFolder", ProviderSettings.ProviderName), ex); + Log.WriteError(String.Format("'{0}' GetQuotaOnFolder", ProviderSettings.ProviderName), ex); throw; } } 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 f4ec2338..002ddaf5 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_GlobalResources/WebsitePanel_SharedResources.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_GlobalResources/WebsitePanel_SharedResources.ascx.resx @@ -315,6 +315,9 @@ Error renaming file + + Error: Folder already exist + Error extracting files @@ -5110,10 +5113,10 @@ Recoverable Items Storage, MB - - Disk Storage Space, MB + + Disk Storage Space, Gb - + Number of Root Folders @@ -5350,6 +5353,9 @@ Error reading group settings + + Error creating folder + Error updating group settings diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Themes/Default/Styles/Skin.css b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Themes/Default/Styles/Skin.css index ff510896..ce4f9f0e 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Themes/Default/Styles/Skin.css +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Themes/Default/Styles/Skin.css @@ -141,6 +141,11 @@ SPAN.Checkbox.Bold border-top: solid 1px #DFDFDF; } +.FormRBtnL +{ + padding-top: 10px; +} + .FormLabel150 { font-size: 8pt; diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/SpaceQuotas.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/SpaceQuotas.ascx.resx index fd22fa9b..42dc6d38 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/SpaceQuotas.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/SpaceQuotas.ascx.resx @@ -201,4 +201,10 @@ Lync Phone Numbers: + + Folders: + + + Enterprise Storage: + \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/EnterpriseStorageFolderGeneralSettings.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/EnterpriseStorageFolderGeneralSettings.ascx.resx index 51c7df40..371dc3d8 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/EnterpriseStorageFolderGeneralSettings.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/EnterpriseStorageFolderGeneralSettings.ascx.resx @@ -150,10 +150,22 @@ Folder Limit Size (Gb): - + * - + Enter Folder Size + + Quota Type: + + + * + + + Hard + + + Soft + \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/EnterpriseStorageFolders.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/EnterpriseStorageFolders.ascx.resx index 10ddae15..32b8ee00 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/EnterpriseStorageFolders.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/EnterpriseStorageFolders.ascx.resx @@ -145,7 +145,7 @@ Folder Name - Folder Size + Used Space Folders @@ -154,6 +154,9 @@ Url - Total Space Allocated (Mb): + Total Space Allocated (Gb): + + + Allocated Space \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/OrganizationHome.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/OrganizationHome.ascx.resx index 0fa1a42f..8f3e935f 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/OrganizationHome.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/OrganizationHome.ascx.resx @@ -214,7 +214,7 @@ Folders: - Used Diskspace (Mb): + Used Diskspace (Gb): Enterprise Storage diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageCreateFolder.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageCreateFolder.ascx.cs index ecf80a9b..1d369fa8 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageCreateFolder.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageCreateFolder.ascx.cs @@ -73,7 +73,7 @@ namespace WebsitePanel.Portal.ExchangeServer if (!result.IsSuccess && result.ErrorCodes.Count > 0) { - messageBox.ShowMessage(result, "ENTERPRISE_STORAGE_FOLDER", "EnterpriseStorage"); + messageBox.ShowMessage(result, "ENTERPRISE_STORAGE_CREATE_FOLDER", "Enterprise Storage"); return; } diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageFolderGeneralSettings.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageFolderGeneralSettings.ascx index 2c40cb7f..d5388fee 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageFolderGeneralSettings.ascx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageFolderGeneralSettings.ascx @@ -39,14 +39,22 @@ - -
-
+ + - + + + + + +
+
+ + diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageFolderGeneralSettings.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageFolderGeneralSettings.ascx.cs index cd7d076e..2166bb7f 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageFolderGeneralSettings.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageFolderGeneralSettings.ascx.cs @@ -45,12 +45,6 @@ namespace WebsitePanel.Portal.ExchangeServer { public partial class EnterpriseStorageFolderGeneralSettings : WebsitePanelModuleBase { - #region Constansts - - const int OneMb = 1024; - - #endregion - protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) @@ -63,6 +57,16 @@ namespace WebsitePanel.Portal.ExchangeServer BindSettings(); } + + OrganizationStatistics organizationStats = ES.Services.Organizations.GetOrganizationStatisticsByOrganization(PanelRequest.ItemID); + + if (organizationStats.AllocatedEnterpriseStorageSpace != -1) + { + OrganizationStatistics tenantStats = ES.Services.Organizations.GetOrganizationStatistics(PanelRequest.ItemID); + + rangeFolderSize.MaximumValue = (tenantStats.AllocatedEnterpriseStorageSpace - tenantStats.UsedEnterpriseStorageSpace + Utils.ParseInt(txtFolderSize.Text, 0)).ToString(); + rangeFolderSize.ErrorMessage = string.Format("The quota you’ve entered exceeds the available quota for tenant ({0}Gb)", rangeFolderSize.MaximumValue); + } } private void BindSettings() @@ -70,7 +74,6 @@ namespace WebsitePanel.Portal.ExchangeServer try { // get settings - Organization org = ES.Services.Organizations.GetOrganization(PanelRequest.ItemID); SystemFile folder = ES.Services.EnterpriseStorage.GetEnterpriseFolder( @@ -82,9 +85,19 @@ namespace WebsitePanel.Portal.ExchangeServer txtFolderName.Text = folder.Name; lblFolderUrl.Text = folder.Url; - if (folder.FRSMQuotaMB != -1) + if (folder.FRSMQuotaGB != -1) { - txtFolderSize.Text = ((int)(folder.FRSMQuotaMB / OneMb)).ToString(); + txtFolderSize.Text = folder.FRSMQuotaGB.ToString(); + } + + switch (folder.FsrmQuotaType) + { + case QuotaType.Hard: + rbtnQuotaHard.Checked = true; + break; + case QuotaType.Soft: + rbtnQuotaSoft.Checked = true; + break; } var esPermissions = ES.Services.EnterpriseStorage.GetEnterpriseFolderPermissions(PanelRequest.ItemID,folder.Name); @@ -92,7 +105,6 @@ namespace WebsitePanel.Portal.ExchangeServer chkDirectoryBrowsing.Checked = ES.Services.EnterpriseStorage.GetDirectoryBrowseEnabled(PanelRequest.ItemID, folder.Url); permissions.SetPermissions(esPermissions); - } catch (Exception ex) { @@ -131,10 +143,22 @@ namespace WebsitePanel.Portal.ExchangeServer } folder = ES.Services.EnterpriseStorage.RenameEnterpriseFolder(PanelRequest.ItemID, PanelRequest.FolderID, txtFolderName.Text); + + if (folder == null) + { + messageBox.ShowErrorMessage("FOLDER_ALREADY_EXIST"); + + return; + } } - ES.Services.EnterpriseStorage.SetEnterpriseFolderSettings(PanelRequest.ItemID, folder, permissions.GetPemissions(), - chkDirectoryBrowsing.Checked, txtFolderSize.Text.Length == 0 ? -1 : int.Parse(txtFolderSize.Text) * OneMb); + ES.Services.EnterpriseStorage.SetEnterpriseFolderSettings( + PanelRequest.ItemID, + folder, + permissions.GetPemissions(), + chkDirectoryBrowsing.Checked, + int.Parse(txtFolderSize.Text), + rbtnQuotaSoft.Checked ? QuotaType.Soft : QuotaType.Hard); Response.Redirect(EditUrl("SpaceID", PanelSecurity.PackageId.ToString(), "enterprisestorage_folders", diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageFolderGeneralSettings.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageFolderGeneralSettings.ascx.designer.cs index d92313da..f6d35da3 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageFolderGeneralSettings.ascx.designer.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageFolderGeneralSettings.ascx.designer.cs @@ -121,13 +121,49 @@ namespace WebsitePanel.Portal.ExchangeServer { protected global::System.Web.UI.WebControls.TextBox txtFolderSize; /// - /// valNumericFolderSize control. + /// valRequireFolderSize control. /// /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. /// - protected global::System.Web.UI.WebControls.CompareValidator valNumericFolderSize; + protected global::System.Web.UI.WebControls.RequiredFieldValidator valRequireFolderSize; + + /// + /// rangeFolderSize control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.RangeValidator rangeFolderSize; + + /// + /// locQuotaType control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Localize locQuotaType; + + /// + /// rbtnQuotaSoft control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.RadioButton rbtnQuotaSoft; + + /// + /// rbtnQuotaHard control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.RadioButton rbtnQuotaHard; /// /// locFolderUrl control. diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageFolders.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageFolders.ascx index d9bb6388..f1ecf309 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageFolders.ascx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageFolders.ascx @@ -60,6 +60,12 @@ + + + + + + @@ -99,9 +105,9 @@

- +     - + diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageFolders.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageFolders.ascx.cs index 155965b4..3dbee3a9 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageFolders.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageFolders.ascx.cs @@ -63,27 +63,26 @@ namespace WebsitePanel.Portal.ExchangeServer protected void BindEnterpriseStorageStats() { + btnAddFolder.Enabled = true; + OrganizationStatistics organizationStats = ES.Services.Organizations.GetOrganizationStatisticsByOrganization(PanelRequest.ItemID); - OrganizationStatistics tenantStats = ES.Services.Organizations.GetOrganizationStatistics(PanelRequest.ItemID); foldersQuota.QuotaUsedValue = organizationStats.CreatedEnterpriseStorageFolders; - foldersQuota.QuotaValue = organizationStats.AllocatedEnterpriseStorageFolders; if (organizationStats.AllocatedEnterpriseStorageFolders != -1) { int folderAvailable = foldersQuota.QuotaAvailable = tenantStats.AllocatedEnterpriseStorageFolders - tenantStats.CreatedEnterpriseStorageFolders; + int spaceAvailable = tenantStats.AllocatedEnterpriseStorageSpace - tenantStats.UsedEnterpriseStorageSpace; - if (folderAvailable <= 0) + if (folderAvailable <= 0 || spaceAvailable <= 0) { btnAddFolder.Enabled = false; } } - spaceQuota.QuotaUsedValue = organizationStats.UsedEnterpriseStorageSpace; - - spaceQuota.QuotaValue = organizationStats.AllocatedEnterpriseStorageSpace; + spaceQuota.QuotaValue = organizationStats.UsedEnterpriseStorageSpace; } protected void btnAddFolder_Click(object sender, EventArgs e) @@ -109,6 +108,8 @@ namespace WebsitePanel.Portal.ExchangeServer } gvFolders.DataBind(); + + BindEnterpriseStorageStats(); } catch (Exception ex) { 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 91f8422f..6869b014 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationHome.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationHome.ascx.cs @@ -298,16 +298,14 @@ namespace WebsitePanel.Portal.ExchangeServer { enterpriseStorageSpaceStats.QuotaValue = stats.AllocatedEnterpriseStorageSpace; enterpriseStorageSpaceStats.QuotaUsedValue = stats.UsedEnterpriseStorageSpace; + if (stats.AllocatedEnterpriseStorageSpace != -1) enterpriseStorageSpaceStats.QuotaAvailable = tenantStats.AllocatedEnterpriseStorageSpace - tenantStats.UsedEnterpriseStorageSpace; lnkBESUsers.NavigateUrl = EditUrl("ItemID", PanelRequest.ItemID.ToString(), "enterprisestorage_folders", "SpaceID=" + PanelSecurity.PackageId.ToString()); enterpriseStorageFoldersStats.QuotaValue = stats.AllocatedEnterpriseStorageFolders; enterpriseStorageFoldersStats.QuotaUsedValue = stats.CreatedEnterpriseStorageFolders; - if (stats.AllocatedEnterpriseStorageFolders != -1) - { - enterpriseStorageFoldersStats.QuotaAvailable = tenantStats.AllocatedEnterpriseStorageFolders - tenantStats.CreatedEnterpriseStorageFolders; - } + if (stats.AllocatedEnterpriseStorageFolders != -1) enterpriseStorageFoldersStats.QuotaAvailable = tenantStats.AllocatedEnterpriseStorageFolders - tenantStats.CreatedEnterpriseStorageFolders; lnkBESUsers.NavigateUrl = EditUrl("ItemID", PanelRequest.ItemID.ToString(), "enterprisestorage_folders", "SpaceID=" + PanelSecurity.PackageId.ToString()); diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/App_LocalResources/EnterpriseStoragePermissions.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/App_LocalResources/EnterpriseStoragePermissions.ascx.resx index ccc8a35f..bba8d593 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/App_LocalResources/EnterpriseStoragePermissions.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/App_LocalResources/EnterpriseStoragePermissions.ascx.resx @@ -129,11 +129,17 @@ Delete - - Set Read-Only + + Set Permissions - - Set Read-Write + + Read + + + Source + + + Write Display Name diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/EnterpriseStoragePermissions.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/EnterpriseStoragePermissions.ascx index c250f192..30e1d75f 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/EnterpriseStoragePermissions.ascx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/EnterpriseStoragePermissions.ascx @@ -38,8 +38,11 @@
- - + + + +
+
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/EnterpriseStoragePermissions.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/EnterpriseStoragePermissions.ascx.cs index b1de0af2..afa631b9 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/EnterpriseStoragePermissions.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/EnterpriseStoragePermissions.ascx.cs @@ -103,7 +103,7 @@ namespace WebsitePanel.Portal.ExchangeServer.UserControls { Account = account.AccountName, DisplayName = account.DisplayName, - Access = "Read-Only", + Access = "Read", }); } @@ -281,9 +281,34 @@ namespace WebsitePanel.Portal.ExchangeServer.UserControls if (chkSelect.Checked) { chkSelect.Checked = false; - litAccess.Text = ((Button)sender).CommandArgument; + + litAccess.Text = ""; + + if (chkRead.Checked) + { + litAccess.Text = "Read,"; + } + + if (chkWrite.Checked) + { + litAccess.Text += "Write,"; + } + + if (chkSource.Checked) + { + litAccess.Text += "Source"; + } + + if (litAccess.Text[litAccess.Text.Length - 1] == ',') + { + litAccess.Text = litAccess.Text.Remove(litAccess.Text.Length - 1); + } } } + + chkRead.Checked = false; + chkWrite.Checked = false; + chkSource.Checked = false; } } } \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/EnterpriseStoragePermissions.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/EnterpriseStoragePermissions.ascx.designer.cs index 1820355e..d3c9a6f3 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/EnterpriseStoragePermissions.ascx.designer.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/EnterpriseStoragePermissions.ascx.designer.cs @@ -1,31 +1,3 @@ -// Copyright (c) 2012, 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. @@ -77,22 +49,40 @@ namespace WebsitePanel.Portal.ExchangeServer.UserControls { protected global::System.Web.UI.WebControls.GridView gvPermissions; /// - /// btnSetReadOnly control. + /// chkRead control. /// /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. /// - protected global::System.Web.UI.WebControls.Button btnSetReadOnly; + protected global::System.Web.UI.WebControls.CheckBox chkRead; /// - /// btnSetReadWrite control. + /// chkWrite control. /// /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. /// - protected global::System.Web.UI.WebControls.Button btnSetReadWrite; + protected global::System.Web.UI.WebControls.CheckBox chkWrite; + + /// + /// chkSource control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.CheckBox chkSource; + + /// + /// btnSet control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Button btnSet; /// /// AddAccountsPanel control. diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/App_LocalResources/EnterpriseStorage_Settings.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/App_LocalResources/EnterpriseStorage_Settings.ascx.resx index 304ec438..a253249e 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/App_LocalResources/EnterpriseStorage_Settings.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/App_LocalResources/EnterpriseStorage_Settings.ascx.resx @@ -117,9 +117,6 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - Enable Hard Quota: - Enterprise Storage Path: diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/EnterpriseStorage_Settings.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/EnterpriseStorage_Settings.ascx index aeb0beaf..f67f906a 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/EnterpriseStorage_Settings.ascx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/EnterpriseStorage_Settings.ascx @@ -24,19 +24,4 @@ ControlToValidate="txtDomain" ErrorMessage="*"> - - - - - - - - - - -
-
-
- - diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/EnterpriseStorage_Settings.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/EnterpriseStorage_Settings.ascx.cs index 4e37d26a..18e6b533 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/EnterpriseStorage_Settings.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/EnterpriseStorage_Settings.ascx.cs @@ -48,14 +48,9 @@ namespace WebsitePanel.Portal.ProviderControls { try { - chkEnableHardQuota.Enabled = ES.Services.EnterpriseStorage.CheckFileServicesInstallation(PanelRequest.ServiceId); - txtFolder.Enabled = chkEnableHardQuota.Enabled; - if (!chkEnableHardQuota.Enabled) - lblFileServiceInfo.Visible = true; - } - catch - { + txtFolder.Enabled = ES.Services.EnterpriseStorage.CheckFileServicesInstallation(PanelRequest.ServiceId); } + catch { } } } @@ -65,7 +60,6 @@ namespace WebsitePanel.Portal.ProviderControls txtFolder.Text = path; txtDomain.Text = settings["UsersDomain"]; - chkEnableHardQuota.Checked = settings["EnableHardQuota"] == "true" ? true : false; } public void SaveSettings(StringDictionary settings) @@ -79,7 +73,6 @@ namespace WebsitePanel.Portal.ProviderControls settings["LocationDrive"] = drive.Split(':')[0]; settings["UsersHome"] = folder; settings["UsersDomain"] = domain; - settings["EnableHardQuota"] = chkEnableHardQuota.Checked.ToString().ToLower(); } } } \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/EnterpriseStorage_Settings.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/EnterpriseStorage_Settings.ascx.designer.cs index 21b155b1..8000d44f 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/EnterpriseStorage_Settings.ascx.designer.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/EnterpriseStorage_Settings.ascx.designer.cs @@ -1,31 +1,3 @@ -// Copyright (c) 2012, 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. @@ -111,23 +83,5 @@ namespace WebsitePanel.Portal.ProviderControls { /// To modify move field declaration from designer file to code-behind file. /// protected global::System.Web.UI.WebControls.RegularExpressionValidator valExpressionDomain; - - /// - /// chkEnableHardQuota control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::System.Web.UI.WebControls.CheckBox chkEnableHardQuota; - - /// - /// lblFileServiceInfo control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::System.Web.UI.WebControls.Label lblFileServiceInfo; } } diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SpaceQuotas.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SpaceQuotas.ascx index fc4e2a8f..2507167b 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SpaceQuotas.ascx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SpaceQuotas.ascx @@ -86,6 +86,14 @@ + + + + + + + +
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SpaceQuotas.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SpaceQuotas.ascx.cs index 5dc822e6..c9d51f24 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SpaceQuotas.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SpaceQuotas.ascx.cs @@ -70,7 +70,9 @@ namespace WebsitePanel.Portal { "quotaDatabases", "pnlDatabases" }, { "quotaNumberOfVm", "pnlHyperVForPC" }, { "quotaFtpAccounts", "pnlFtpAccounts" }, - { "quotaExchangeStorage", "pnlExchangeStorage" } + { "quotaExchangeStorage", "pnlExchangeStorage" }, + { "quotaNumberOfFolders", "pnlFolders" }, + { "quotaEnterpriseStorage", "pnlEnterpriseStorage" } }; protected void Page_Load(object sender, EventArgs e) diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SpaceQuotas.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SpaceQuotas.ascx.designer.cs index 34fea34c..3be1dc2f 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SpaceQuotas.ascx.designer.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SpaceQuotas.ascx.designer.cs @@ -1,38 +1,9 @@ -// Copyright (c) 2012, Outercurve Foundation. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// - Redistributions of source code must retain the above copyright notice, this -// list of conditions and the following disclaimer. -// -// - Redistributions in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// - Neither the name of the Outercurve Foundation nor the names of its -// contributors may be used to endorse or promote products derived from this -// software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - //------------------------------------------------------------------------------ // // This code was generated by a tool. -// Runtime Version:2.0.50727.3074 // // Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. +// the code is regenerated. // //------------------------------------------------------------------------------ @@ -47,7 +18,6 @@ namespace WebsitePanel.Portal { /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. - /// protected global::System.Web.UI.HtmlControls.HtmlTableRow pnlDiskspace; @@ -57,7 +27,6 @@ namespace WebsitePanel.Portal { /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. - /// protected global::WebsitePanel.Portal.Quota quotaDiskspace; @@ -67,7 +36,6 @@ namespace WebsitePanel.Portal { /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. - /// protected global::System.Web.UI.WebControls.HyperLink lnkViewDiskspaceDetails; @@ -77,7 +45,6 @@ namespace WebsitePanel.Portal { /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. - /// protected global::System.Web.UI.HtmlControls.HtmlTableRow pnlBandwidth; @@ -87,7 +54,6 @@ namespace WebsitePanel.Portal { /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. - /// protected global::WebsitePanel.Portal.Quota quotaBandwidth; @@ -97,7 +63,6 @@ namespace WebsitePanel.Portal { /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. - /// protected global::System.Web.UI.WebControls.HyperLink lnkViewBandwidthDetails; @@ -107,7 +72,6 @@ namespace WebsitePanel.Portal { /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. - /// protected global::System.Web.UI.HtmlControls.HtmlTableRow pnlDomains; @@ -117,7 +81,6 @@ namespace WebsitePanel.Portal { /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. - /// protected global::System.Web.UI.WebControls.Label lblDomains; @@ -127,7 +90,6 @@ namespace WebsitePanel.Portal { /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. - /// protected global::WebsitePanel.Portal.Quota quotaDomains; @@ -137,7 +99,6 @@ namespace WebsitePanel.Portal { /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. - /// protected global::System.Web.UI.HtmlControls.HtmlTableRow pnlSubDomains; @@ -147,7 +108,6 @@ namespace WebsitePanel.Portal { /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. - /// protected global::System.Web.UI.WebControls.Label lblSubDomains; @@ -157,7 +117,6 @@ namespace WebsitePanel.Portal { /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. - /// protected global::WebsitePanel.Portal.Quota quotaSubDomains; @@ -167,7 +126,6 @@ namespace WebsitePanel.Portal { /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. - /// protected global::System.Web.UI.HtmlControls.HtmlTableRow pnlDomainPointers; @@ -177,7 +135,6 @@ namespace WebsitePanel.Portal { /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. - /// protected global::System.Web.UI.WebControls.Label lblDomainPointers; @@ -187,7 +144,6 @@ namespace WebsitePanel.Portal { /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. - /// protected global::WebsitePanel.Portal.Quota quotaDomainPointers; @@ -197,7 +153,6 @@ namespace WebsitePanel.Portal { /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. - /// protected global::System.Web.UI.HtmlControls.HtmlTableRow pnlOrganizations; @@ -207,7 +162,6 @@ namespace WebsitePanel.Portal { /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. - /// protected global::System.Web.UI.WebControls.Label lblOrganizations; @@ -217,7 +171,6 @@ namespace WebsitePanel.Portal { /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. - /// protected global::WebsitePanel.Portal.Quota quotaOrganizations; @@ -227,7 +180,6 @@ namespace WebsitePanel.Portal { /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. - /// protected global::System.Web.UI.HtmlControls.HtmlTableRow pnlUserAccounts; @@ -237,7 +189,6 @@ namespace WebsitePanel.Portal { /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. - /// protected global::System.Web.UI.WebControls.Label lblUserAccounts; @@ -247,7 +198,6 @@ namespace WebsitePanel.Portal { /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. - /// protected global::WebsitePanel.Portal.Quota quotaUserAccounts; @@ -257,7 +207,6 @@ namespace WebsitePanel.Portal { /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. - /// protected global::System.Web.UI.HtmlControls.HtmlTableRow pnlExchangeAccounts; @@ -267,7 +216,6 @@ namespace WebsitePanel.Portal { /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. - /// protected global::System.Web.UI.WebControls.Label lblExchangeAccounts; @@ -277,7 +225,6 @@ namespace WebsitePanel.Portal { /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. - /// protected global::WebsitePanel.Portal.Quota quotaExchangeAccounts; @@ -287,7 +234,6 @@ namespace WebsitePanel.Portal { /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. - /// protected global::System.Web.UI.HtmlControls.HtmlTableRow pnlExchangeStorage; @@ -297,7 +243,6 @@ namespace WebsitePanel.Portal { /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. - /// protected global::System.Web.UI.WebControls.Label lblExchangeStorage; @@ -307,7 +252,6 @@ namespace WebsitePanel.Portal { /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. - /// protected global::WebsitePanel.Portal.Quota quotaExchangeStorage; @@ -317,7 +261,6 @@ namespace WebsitePanel.Portal { /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. - /// protected global::System.Web.UI.HtmlControls.HtmlTableRow pnlMailAccounts; @@ -327,7 +270,6 @@ namespace WebsitePanel.Portal { /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. - /// protected global::System.Web.UI.WebControls.Label lblMailAccounts; @@ -337,7 +279,6 @@ namespace WebsitePanel.Portal { /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. - /// protected global::WebsitePanel.Portal.Quota quotaMailAccounts; @@ -347,7 +288,6 @@ namespace WebsitePanel.Portal { /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. - /// protected global::System.Web.UI.HtmlControls.HtmlTableRow pnlOCSUsers; @@ -357,7 +297,6 @@ namespace WebsitePanel.Portal { /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. - /// protected global::System.Web.UI.WebControls.Label lblOCSUsers; @@ -367,7 +306,6 @@ namespace WebsitePanel.Portal { /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. - /// protected global::WebsitePanel.Portal.Quota quotaOCSUsers; @@ -377,7 +315,6 @@ namespace WebsitePanel.Portal { /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. - /// protected global::System.Web.UI.HtmlControls.HtmlTableRow pnlLyncUsers; @@ -387,7 +324,6 @@ namespace WebsitePanel.Portal { /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. - /// protected global::System.Web.UI.WebControls.Label lblLyncUsers; @@ -397,7 +333,6 @@ namespace WebsitePanel.Portal { /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. - /// protected global::WebsitePanel.Portal.Quota quotaLyncUsers; @@ -407,7 +342,6 @@ namespace WebsitePanel.Portal { /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. - /// protected global::System.Web.UI.HtmlControls.HtmlTableRow pnlLyncPhone; @@ -417,7 +351,6 @@ namespace WebsitePanel.Portal { /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. - /// protected global::System.Web.UI.WebControls.Label Label1; @@ -427,7 +360,6 @@ namespace WebsitePanel.Portal { /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. - /// protected global::WebsitePanel.Portal.Quota quotaLyncPhone; @@ -437,7 +369,6 @@ namespace WebsitePanel.Portal { /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. - /// protected global::System.Web.UI.HtmlControls.HtmlTableRow pnlBlackBerryUsers; @@ -447,7 +378,6 @@ namespace WebsitePanel.Portal { /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. - /// protected global::System.Web.UI.WebControls.Label lblBlackBerryUsers; @@ -457,7 +387,6 @@ namespace WebsitePanel.Portal { /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. - /// protected global::WebsitePanel.Portal.Quota quotaBlackBerryUsers; @@ -467,7 +396,6 @@ namespace WebsitePanel.Portal { /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. - /// protected global::System.Web.UI.HtmlControls.HtmlTableRow pnlSharepointSites; @@ -477,7 +405,6 @@ namespace WebsitePanel.Portal { /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. - /// protected global::System.Web.UI.WebControls.Label lblSharepointSites; @@ -487,7 +414,6 @@ namespace WebsitePanel.Portal { /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. - /// protected global::WebsitePanel.Portal.Quota quotaSharepointSites; @@ -497,7 +423,6 @@ namespace WebsitePanel.Portal { /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. - /// protected global::System.Web.UI.HtmlControls.HtmlTableRow pnlWebSites; @@ -507,7 +432,6 @@ namespace WebsitePanel.Portal { /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. - /// protected global::System.Web.UI.WebControls.Label lblWebSites; @@ -517,7 +441,6 @@ namespace WebsitePanel.Portal { /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. - /// protected global::WebsitePanel.Portal.Quota quotaWebSites; @@ -527,7 +450,6 @@ namespace WebsitePanel.Portal { /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. - /// protected global::System.Web.UI.HtmlControls.HtmlTableRow pnlFtpAccounts; @@ -537,7 +459,6 @@ namespace WebsitePanel.Portal { /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. - /// protected global::System.Web.UI.WebControls.Label lblFtpAccounts; @@ -547,7 +468,6 @@ namespace WebsitePanel.Portal { /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. - /// protected global::WebsitePanel.Portal.Quota quotaFtpAccounts; @@ -557,7 +477,6 @@ namespace WebsitePanel.Portal { /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. - /// protected global::System.Web.UI.HtmlControls.HtmlTableRow pnlDatabases; @@ -567,7 +486,6 @@ namespace WebsitePanel.Portal { /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. - /// protected global::System.Web.UI.WebControls.Label lblDatabases; @@ -577,7 +495,6 @@ namespace WebsitePanel.Portal { /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. - /// protected global::WebsitePanel.Portal.Quota quotaDatabases; @@ -587,7 +504,6 @@ namespace WebsitePanel.Portal { /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. - /// protected global::System.Web.UI.HtmlControls.HtmlTableRow pnlHyperVForPC; @@ -597,7 +513,6 @@ namespace WebsitePanel.Portal { /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. - /// protected global::System.Web.UI.WebControls.Label lblHyperVForPC; @@ -607,17 +522,69 @@ namespace WebsitePanel.Portal { /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. - /// protected global::WebsitePanel.Portal.Quota quotaNumberOfVm; + /// + /// pnlFolders control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.HtmlControls.HtmlTableRow pnlFolders; + + /// + /// lblFolders control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Label lblFolders; + + /// + /// quotaNumberOfFolders control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::WebsitePanel.Portal.Quota quotaNumberOfFolders; + + /// + /// pnlEnterpriseStorage control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.HtmlControls.HtmlTableRow pnlEnterpriseStorage; + + /// + /// lblEnterpriseStorage control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Label lblEnterpriseStorage; + + /// + /// quotaEnterpriseStorage control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::WebsitePanel.Portal.Quota quotaEnterpriseStorage; + /// /// btnViewQuotas control. /// /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. - /// protected global::System.Web.UI.WebControls.Button btnViewQuotas; }