This commit is contained in:
Virtuworks 2014-01-05 17:57:43 -05:00
commit 5a2d487e55
41 changed files with 891 additions and 426 deletions

View file

@ -2797,4 +2797,232 @@ WHERE
AND (@OrgID = 0 OR @OrgID <> 0 AND PA.OrgID = @OrgID) AND (@OrgID = 0 OR @OrgID <> 0 AND PA.OrgID = @OrgID)
END END
GO
-- Enterprise Storage Quotas
IF NOT EXISTS (SELECT * FROM [dbo].[Quotas] WHERE [QuotaName] = 'EnterpriseStorage.DiskStorageSpace')
BEGIN
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

View file

@ -48,16 +48,8 @@ using WebsitePanel.Providers.OS;
namespace WebsitePanel.EnterpriseServer namespace WebsitePanel.EnterpriseServer
{ {
using System.Xml.Serialization;
using System.Web.Services;
using System.ComponentModel;
using System.Web.Services.Protocols;
using System;
using System.Diagnostics;
/// <remarks/> /// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.Diagnostics.DebuggerStepThroughAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")] [System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Web.Services.WebServiceBindingAttribute(Name = "esEnterpriseStorageSoap", Namespace = "http://smbsaas/websitepanel/enterpriseserver")] [System.Web.Services.WebServiceBindingAttribute(Name = "esEnterpriseStorageSoap", Namespace = "http://smbsaas/websitepanel/enterpriseserver")]
@ -947,25 +939,27 @@ namespace WebsitePanel.EnterpriseServer
/// <remarks/> /// <remarks/>
[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)] [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[] { this.Invoke("SetEnterpriseFolderSettings", new object[] {
itemId, itemId,
folder, folder,
permissions, permissions,
directoyBrowsingEnabled, directoyBrowsingEnabled,
quota}); quota,
quotaType});
} }
/// <remarks/> /// <remarks/>
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[] { return this.BeginInvoke("SetEnterpriseFolderSettings", new object[] {
itemId, itemId,
folder, folder,
permissions, permissions,
directoyBrowsingEnabled, directoyBrowsingEnabled,
quota}, callback, asyncState); quota,
quotaType}, callback, asyncState);
} }
/// <remarks/> /// <remarks/>
@ -975,13 +969,13 @@ namespace WebsitePanel.EnterpriseServer
} }
/// <remarks/> /// <remarks/>
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);
} }
/// <remarks/> /// <remarks/>
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)) if ((this.SetEnterpriseFolderSettingsOperationCompleted == null))
{ {
@ -992,7 +986,8 @@ namespace WebsitePanel.EnterpriseServer
folder, folder,
permissions, permissions,
directoyBrowsingEnabled, directoyBrowsingEnabled,
quota}, this.SetEnterpriseFolderSettingsOperationCompleted, userState); quota,
quotaType}, this.SetEnterpriseFolderSettingsOperationCompleted, userState);
} }
private void OnSetEnterpriseFolderSettingsOperationCompleted(object arg) private void OnSetEnterpriseFolderSettingsOperationCompleted(object arg)
@ -1012,11 +1007,11 @@ namespace WebsitePanel.EnterpriseServer
} }
/// <remarks/> /// <remarks/>
[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); public delegate void CheckFileServicesInstallationCompletedEventHandler(object sender, CheckFileServicesInstallationCompletedEventArgs e);
/// <remarks/> /// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.Diagnostics.DebuggerStepThroughAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")] [System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class CheckFileServicesInstallationCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs public partial class CheckFileServicesInstallationCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
@ -1042,11 +1037,11 @@ namespace WebsitePanel.EnterpriseServer
} }
/// <remarks/> /// <remarks/>
[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); public delegate void GetEnterpriseFoldersCompletedEventHandler(object sender, GetEnterpriseFoldersCompletedEventArgs e);
/// <remarks/> /// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.Diagnostics.DebuggerStepThroughAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")] [System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class GetEnterpriseFoldersCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs public partial class GetEnterpriseFoldersCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
@ -1072,11 +1067,11 @@ namespace WebsitePanel.EnterpriseServer
} }
/// <remarks/> /// <remarks/>
[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); public delegate void GetEnterpriseFolderCompletedEventHandler(object sender, GetEnterpriseFolderCompletedEventArgs e);
/// <remarks/> /// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.Diagnostics.DebuggerStepThroughAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")] [System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class GetEnterpriseFolderCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs public partial class GetEnterpriseFolderCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
@ -1102,11 +1097,11 @@ namespace WebsitePanel.EnterpriseServer
} }
/// <remarks/> /// <remarks/>
[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); public delegate void CreateEnterpriseFolderCompletedEventHandler(object sender, CreateEnterpriseFolderCompletedEventArgs e);
/// <remarks/> /// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.Diagnostics.DebuggerStepThroughAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")] [System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class CreateEnterpriseFolderCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs public partial class CreateEnterpriseFolderCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
@ -1132,11 +1127,11 @@ namespace WebsitePanel.EnterpriseServer
} }
/// <remarks/> /// <remarks/>
[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); public delegate void DeleteEnterpriseFolderCompletedEventHandler(object sender, DeleteEnterpriseFolderCompletedEventArgs e);
/// <remarks/> /// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.Diagnostics.DebuggerStepThroughAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")] [System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class DeleteEnterpriseFolderCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs public partial class DeleteEnterpriseFolderCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
@ -1162,11 +1157,11 @@ namespace WebsitePanel.EnterpriseServer
} }
/// <remarks/> /// <remarks/>
[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); public delegate void GetEnterpriseFolderPermissionsCompletedEventHandler(object sender, GetEnterpriseFolderPermissionsCompletedEventArgs e);
/// <remarks/> /// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.Diagnostics.DebuggerStepThroughAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")] [System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class GetEnterpriseFolderPermissionsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs public partial class GetEnterpriseFolderPermissionsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
@ -1192,11 +1187,11 @@ namespace WebsitePanel.EnterpriseServer
} }
/// <remarks/> /// <remarks/>
[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); public delegate void SetEnterpriseFolderPermissionsCompletedEventHandler(object sender, SetEnterpriseFolderPermissionsCompletedEventArgs e);
/// <remarks/> /// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.Diagnostics.DebuggerStepThroughAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")] [System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class SetEnterpriseFolderPermissionsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs public partial class SetEnterpriseFolderPermissionsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
@ -1222,11 +1217,11 @@ namespace WebsitePanel.EnterpriseServer
} }
/// <remarks/> /// <remarks/>
[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); public delegate void SearchESAccountsCompletedEventHandler(object sender, SearchESAccountsCompletedEventArgs e);
/// <remarks/> /// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.Diagnostics.DebuggerStepThroughAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")] [System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class SearchESAccountsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs public partial class SearchESAccountsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
@ -1252,11 +1247,11 @@ namespace WebsitePanel.EnterpriseServer
} }
/// <remarks/> /// <remarks/>
[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); public delegate void GetEnterpriseFoldersPagedCompletedEventHandler(object sender, GetEnterpriseFoldersPagedCompletedEventArgs e);
/// <remarks/> /// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.Diagnostics.DebuggerStepThroughAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")] [System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class GetEnterpriseFoldersPagedCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs public partial class GetEnterpriseFoldersPagedCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
@ -1282,11 +1277,11 @@ namespace WebsitePanel.EnterpriseServer
} }
/// <remarks/> /// <remarks/>
[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); public delegate void RenameEnterpriseFolderCompletedEventHandler(object sender, RenameEnterpriseFolderCompletedEventArgs e);
/// <remarks/> /// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.Diagnostics.DebuggerStepThroughAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")] [System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class RenameEnterpriseFolderCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs public partial class RenameEnterpriseFolderCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
@ -1312,11 +1307,11 @@ namespace WebsitePanel.EnterpriseServer
} }
/// <remarks/> /// <remarks/>
[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); public delegate void CreateEnterpriseStorageCompletedEventHandler(object sender, CreateEnterpriseStorageCompletedEventArgs e);
/// <remarks/> /// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.Diagnostics.DebuggerStepThroughAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")] [System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class CreateEnterpriseStorageCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs public partial class CreateEnterpriseStorageCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
@ -1342,11 +1337,11 @@ namespace WebsitePanel.EnterpriseServer
} }
/// <remarks/> /// <remarks/>
[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); public delegate void CheckEnterpriseStorageInitializationCompletedEventHandler(object sender, CheckEnterpriseStorageInitializationCompletedEventArgs e);
/// <remarks/> /// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.Diagnostics.DebuggerStepThroughAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")] [System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class CheckEnterpriseStorageInitializationCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs public partial class CheckEnterpriseStorageInitializationCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
@ -1372,11 +1367,11 @@ namespace WebsitePanel.EnterpriseServer
} }
/// <remarks/> /// <remarks/>
[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); public delegate void CheckUsersDomainExistsCompletedEventHandler(object sender, CheckUsersDomainExistsCompletedEventArgs e);
/// <remarks/> /// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.Diagnostics.DebuggerStepThroughAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")] [System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class CheckUsersDomainExistsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs public partial class CheckUsersDomainExistsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
@ -1402,11 +1397,11 @@ namespace WebsitePanel.EnterpriseServer
} }
/// <remarks/> /// <remarks/>
[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); public delegate void GetDirectoryBrowseEnabledCompletedEventHandler(object sender, GetDirectoryBrowseEnabledCompletedEventArgs e);
/// <remarks/> /// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.Diagnostics.DebuggerStepThroughAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")] [System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class GetDirectoryBrowseEnabledCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs public partial class GetDirectoryBrowseEnabledCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
@ -1432,10 +1427,10 @@ namespace WebsitePanel.EnterpriseServer
} }
/// <remarks/> /// <remarks/>
[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); public delegate void SetDirectoryBrowseEnabledCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
/// <remarks/> /// <remarks/>
[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); public delegate void SetEnterpriseFolderSettingsCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
} }

View file

@ -4155,5 +4155,48 @@ namespace WebsitePanel.EnterpriseServer
} }
#endregion #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
} }
} }

View file

@ -141,9 +141,9 @@ namespace WebsitePanel.EnterpriseServer
return CheckUsersDomainExistsInternal(itemId); 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 #region Directory Browsing
@ -396,7 +396,16 @@ namespace WebsitePanel.EnterpriseServer
EnterpriseStorage es = GetEnterpriseStorage(GetEnterpriseStorageServiceID(org.PackageId)); 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) catch (Exception ex)
{ {
@ -421,7 +430,18 @@ namespace WebsitePanel.EnterpriseServer
EnterpriseStorage es = GetEnterpriseStorage(GetEnterpriseStorageServiceID(org.PackageId)); EnterpriseStorage es = GetEnterpriseStorage(GetEnterpriseStorageServiceID(org.PackageId));
if (es.GetFolder(org.OrganizationId, folderName) == null)
{
es.CreateFolder(org.OrganizationId, folderName); 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) catch (Exception ex)
{ {
@ -442,7 +462,7 @@ namespace WebsitePanel.EnterpriseServer
return result; 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<ResultObject>("ENTERPRISE_STORAGE", "CREATE_FOLDER"); ResultObject result = TaskManager.StartResultTask<ResultObject>("ENTERPRISE_STORAGE", "CREATE_FOLDER");
@ -462,7 +482,9 @@ namespace WebsitePanel.EnterpriseServer
// check if it's not root folder // check if it's not root folder
if (!string.IsNullOrEmpty(folderName)) 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) catch (Exception ex)
@ -498,6 +520,8 @@ namespace WebsitePanel.EnterpriseServer
EnterpriseStorage es = GetEnterpriseStorage(GetEnterpriseStorageServiceID(org.PackageId)); EnterpriseStorage es = GetEnterpriseStorage(GetEnterpriseStorageServiceID(org.PackageId));
es.DeleteFolder(org.OrganizationId, folderName); es.DeleteFolder(org.OrganizationId, folderName);
DataProvider.DeleteEnterpriseFolder(itemId, folderName);
} }
catch (Exception ex) catch (Exception ex)
{ {
@ -804,15 +828,19 @@ namespace WebsitePanel.EnterpriseServer
rule.Users.Add(permission.Account); rule.Users.Add(permission.Account);
} }
if (permission.Access.ToLower().Contains("read-only")) if (permission.Access.ToLower().Contains("read"))
{ {
rule.Read = true; rule.Read = true;
} }
if (permission.Access.ToLower().Contains("read-write")) if (permission.Access.ToLower().Contains("write"))
{ {
rule.Write = true; rule.Write = true;
rule.Read = true; }
if (permission.Access.ToLower().Contains("source"))
{
rule.Source = true;
} }
rule.Pathes.Add("*"); rule.Pathes.Add("*");
@ -860,15 +888,25 @@ namespace WebsitePanel.EnterpriseServer
permission.DisplayName = userObj.DisplayName; permission.DisplayName = userObj.DisplayName;
} }
if (rule.Read && !rule.Write) if (rule.Read)
{ {
permission.Access = "Read-Only"; permission.Access += "Read,";
}
if (rule.Write)
{
permission.Access = "Read-Write";
} }
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); 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); int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive);
if (accountCheck < 0) if (accountCheck < 0)
@ -899,10 +937,6 @@ namespace WebsitePanel.EnterpriseServer
var orgFolder = Path.Combine(usersHome, orgId, folderName); 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); var os = GetOS(packageId);
if (os != null && os.CheckFileServicesInstallation()) if (os != null && os.CheckFileServicesInstallation())

View file

@ -910,7 +910,7 @@ namespace WebsitePanel.EnterpriseServer
return users.ToArray(); 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 // check account
@ -948,7 +948,7 @@ namespace WebsitePanel.EnterpriseServer
OS.OperatingSystem os = GetOS(packageId); 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; return 0;
} }

View file

@ -961,9 +961,7 @@ namespace WebsitePanel.EnterpriseServer
stats.CreatedEnterpriseStorageFolders = folders.Count(); stats.CreatedEnterpriseStorageFolders = folders.Count();
stats.UsedEnterpriseStorageSpace = (int)folders.Sum(x => x.Size); stats.UsedEnterpriseStorageSpace = folders.Where(x => x.FRSMQuotaGB != -1).Sum(x => x.FRSMQuotaGB);
stats.AllocatedEnterpriseStorageSpace = folders.Where(x => x.FRSMQuotaMB != -1).Sum(x => x.FRSMQuotaMB);
} }
} }
else else
@ -1027,9 +1025,7 @@ namespace WebsitePanel.EnterpriseServer
stats.CreatedEnterpriseStorageFolders += folders.Count(); stats.CreatedEnterpriseStorageFolders += folders.Count();
stats.UsedEnterpriseStorageSpace += (int)folders.Sum(x => x.Size); stats.UsedEnterpriseStorageSpace += folders.Where(x => x.FRSMQuotaGB != -1).Sum(x => x.FRSMQuotaGB);
stats.AllocatedEnterpriseStorageSpace += folders.Where(x => x.FRSMQuotaMB != -1).Sum(x => x.FRSMQuotaMB);
} }
} }
} }
@ -1073,6 +1069,7 @@ namespace WebsitePanel.EnterpriseServer
if (cntx.Groups.ContainsKey(ResourceGroups.EnterpriseStorage)) if (cntx.Groups.ContainsKey(ResourceGroups.EnterpriseStorage))
{ {
stats.AllocatedEnterpriseStorageFolders = cntx.Quotas[Quotas.ENTERPRISESTORAGE_FOLDERS].QuotaAllocatedValue; stats.AllocatedEnterpriseStorageFolders = cntx.Quotas[Quotas.ENTERPRISESTORAGE_FOLDERS].QuotaAllocatedValue;
stats.AllocatedEnterpriseStorageSpace = cntx.Quotas[Quotas.ENTERPRISESTORAGE_DISKSTORAGESPACE].QuotaAllocatedValue;
} }
return stats; return stats;

View file

@ -150,11 +150,11 @@ namespace WebsitePanel.EnterpriseServer
} }
[WebMethod] [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.SetDirectoryBrowseEnabled(itemId, folder.Url, directoyBrowsingEnabled);
EnterpriseStorageController.SetFolderPermission(itemId, folder.Name, permissions); EnterpriseStorageController.SetFolderPermission(itemId, folder.Name, permissions);
EnterpriseStorageController.SetFRSMQuotaOnFolder(itemId, folder.Name, quota); EnterpriseStorageController.SetFRSMQuotaOnFolder(itemId, folder.Name, quota, quotaType);
} }
#endregion #endregion

View file

@ -82,8 +82,8 @@ namespace WebsitePanel.Providers.OS
FolderGraph GetFolderGraph(string path); FolderGraph GetFolderGraph(string path);
void ExecuteSyncActions(FileSyncAction[] actions); void ExecuteSyncActions(FileSyncAction[] actions);
void SetQuotaLimitOnFolder(string folderPath, string shareNameDrive, FSRMQuotaType quotaType, string quotaLimit, int mode, string wmiUserName, string wmiPassword); void SetQuotaLimitOnFolder(string folderPath, string shareNameDrive, QuotaType quotaType, string quotaLimit, int mode, string wmiUserName, string wmiPassword);
int GetQuotaLimitOnFolder(string folderPath, string wmiUserName, string wmiPassword); Quota GetQuotaOnFolder(string folderPath, string wmiUserName, string wmiPassword);
void DeleteDirectoryRecursive(string rootPath); void DeleteDirectoryRecursive(string rootPath);
// File Services // File Services

View file

@ -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
}
}

View file

@ -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
}
}

View file

@ -47,6 +47,8 @@ namespace WebsitePanel.Providers.OS
private WebDavFolderRule[] rules; private WebDavFolderRule[] rules;
private string url; private string url;
private int fsrmQuotaMB; private int fsrmQuotaMB;
private int frsmQuotaGB;
private QuotaType fsrmQuotaType = QuotaType.Soft;
public SystemFile() public SystemFile()
{ {
@ -69,6 +71,18 @@ namespace WebsitePanel.Providers.OS
set { fsrmQuotaMB = value; } set { fsrmQuotaMB = value; }
} }
public int FRSMQuotaGB
{
get { return frsmQuotaGB; }
set { frsmQuotaGB = value; }
}
public QuotaType FsrmQuotaType
{
get { return fsrmQuotaType; }
set { fsrmQuotaType = value; }
}
public string FullName public string FullName
{ {
get { return fullName; } get { return fullName; }

View file

@ -113,7 +113,8 @@
<Compile Include="HostedSolution\LyncVoicePolicyType.cs" /> <Compile Include="HostedSolution\LyncVoicePolicyType.cs" />
<Compile Include="HostedSolution\OrganizationSecurityGroup.cs" /> <Compile Include="HostedSolution\OrganizationSecurityGroup.cs" />
<Compile Include="HostedSolution\TransactionAction.cs" /> <Compile Include="HostedSolution\TransactionAction.cs" />
<Compile Include="OS\FSRMQuotaType.cs" /> <Compile Include="OS\Quota.cs" />
<Compile Include="OS\QuotaType.cs" />
<Compile Include="OS\SystemFilesPaged.cs" /> <Compile Include="OS\SystemFilesPaged.cs" />
<Compile Include="RemoteDesktopServices\IRemoteDesktopServices.cs" /> <Compile Include="RemoteDesktopServices\IRemoteDesktopServices.cs" />
<Compile Include="ResultObjects\HeliconApe.cs" /> <Compile Include="ResultObjects\HeliconApe.cs" />

View file

@ -86,7 +86,10 @@ namespace WebsitePanel.Providers.EnterpriseStorage
folder.FullName = dir.FullName; folder.FullName = dir.FullName;
folder.IsDirectory = true; 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) if (folder.Size == -1)
{ {
folder.Size = FileUtils.BytesToMb(FileUtils.CalculateFolderSize(dir.FullName)); 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.Url = string.Format("https://{0}/{1}/{2}", UsersDomain, organizationId, dir.Name);
folder.Rules = webdav.GetFolderWebDavRules(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); items.Add(folder);
} }
@ -120,7 +125,10 @@ namespace WebsitePanel.Providers.EnterpriseStorage
folder.FullName = root.FullName; folder.FullName = root.FullName;
folder.IsDirectory = true; 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) if (folder.Size == -1)
{ {
folder.Size = FileUtils.BytesToMb(FileUtils.CalculateFolderSize(root.FullName)); 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.Url = string.Format("https://{0}/{1}/{2}", UsersDomain, organizationId, folderName);
folder.Rules = GetFolderWebDavRules(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; return folder;

View file

@ -210,12 +210,12 @@ namespace WebsitePanel.Providers.OS
ServerSettings, usersOU, null); 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); 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(); throw new NotImplementedException();
} }

View file

@ -74,7 +74,7 @@ namespace WebsitePanel.Providers.OS
|| version == WebsitePanel.Server.Utils.OS.WindowsVersion.Windows81; || 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.WriteStart("SetQuotaLimitOnFolder");
Log.WriteInfo("FolderPath : {0}", folderPath); Log.WriteInfo("FolderPath : {0}", folderPath);
@ -133,14 +133,14 @@ namespace WebsitePanel.Providers.OS
Log.WriteEnd("SetQuotaLimitOnFolder"); 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.WriteStart("GetQuotaLimitOnFolder");
Log.WriteInfo("FolderPath : {0}", folderPath); Log.WriteInfo("FolderPath : {0}", folderPath);
Runspace runSpace = null; Runspace runSpace = null;
int quota = -1; Quota quota = new Quota();
try try
{ {
@ -154,7 +154,9 @@ namespace WebsitePanel.Providers.OS
if (result.Count > 0) 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; 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) public UInt64 CalculateQuota(string quota)
{ {
UInt64 OneKb = 1024; UInt64 OneKb = 1024;
@ -238,16 +200,14 @@ namespace WebsitePanel.Providers.OS
return result; return result;
} }
public int ConvertBytesToGB(long bytes) public int ConvertMegaBytesToGB(int megabytes)
{ {
int OneKb = 1024; int OneGb = 1024;
int OneMb = OneKb * 1024;
int OneGb = OneMb * 1024;
if (bytes == 0) if (megabytes == -1)
return 0; return megabytes;
return (int)(bytes / OneGb); return (int)(megabytes/ OneGb);
} }
public int ConvertBytesToMB(long bytes) public int ConvertBytesToMB(long bytes)
@ -276,13 +236,13 @@ namespace WebsitePanel.Providers.OS
catch { /* do nothing */ } 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); Command cmd = new Command(command);
cmd.Parameters.Add("Path", path); cmd.Parameters.Add("Path", path);
cmd.Parameters.Add("Size", quota); cmd.Parameters.Add("Size", quota);
if (quotaType == FSRMQuotaType.Soft) if (quotaType == QuotaType.Soft)
{ {
cmd.Parameters.Add("SoftLimit", true); cmd.Parameters.Add("SoftLimit", true);
} }

View file

@ -1741,7 +1741,7 @@ namespace WebsitePanel.Providers.OS
/// <remarks/> /// <remarks/>
[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")] [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)] [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[] { this.Invoke("SetQuotaLimitOnFolder", new object[] {
folderPath, folderPath,
@ -1754,7 +1754,7 @@ namespace WebsitePanel.Providers.OS
} }
/// <remarks/> /// <remarks/>
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[] { return this.BeginInvoke("SetQuotaLimitOnFolder", new object[] {
folderPath, folderPath,
@ -1773,13 +1773,13 @@ namespace WebsitePanel.Providers.OS
} }
/// <remarks/> /// <remarks/>
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); this.SetQuotaLimitOnFolderAsync(folderPath, shareNameDrive, quotaType, quotaLimit, mode, wmiUserName, wmiPassword, null);
} }
/// <remarks/> /// <remarks/>
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)) if ((this.SetQuotaLimitOnFolderOperationCompleted == null))
{ {

View file

@ -536,7 +536,7 @@ namespace WebsitePanel.Server
[WebMethod, SoapHeader("settings")] [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 try
{ {
@ -552,18 +552,18 @@ namespace WebsitePanel.Server
} }
[WebMethod, SoapHeader("settings")] [WebMethod, SoapHeader("settings")]
public int GetQuotaLimitOnFolder(string folderPath, string wmiUserName, string wmiPassword) public Quota GetQuotaOnFolder(string folderPath, string wmiUserName, string wmiPassword)
{ {
try try
{ {
Log.WriteStart("'{0}' GetQuotaLimitOnFolder", ProviderSettings.ProviderName); Log.WriteStart("'{0}' GetQuotaOnFolder", ProviderSettings.ProviderName);
var result = OsProvider.GetQuotaLimitOnFolder(folderPath, wmiUserName, wmiPassword); var result = OsProvider.GetQuotaOnFolder(folderPath, wmiUserName, wmiPassword);
Log.WriteEnd("'{0}' GetQuotaLimitOnFolder", ProviderSettings.ProviderName); Log.WriteEnd("'{0}' GetQuotaOnFolder", ProviderSettings.ProviderName);
return result; return result;
} }
catch (Exception ex) catch (Exception ex)
{ {
Log.WriteError(String.Format("'{0}' GetQuotaLimitOnFolder", ProviderSettings.ProviderName), ex); Log.WriteError(String.Format("'{0}' GetQuotaOnFolder", ProviderSettings.ProviderName), ex);
throw; throw;
} }
} }

View file

@ -315,6 +315,9 @@
<data name="Error.FILES_RENAME_FILE" xml:space="preserve"> <data name="Error.FILES_RENAME_FILE" xml:space="preserve">
<value>Error renaming file</value> <value>Error renaming file</value>
</data> </data>
<data name="Error.FOLDER_ALREADY_EXIST" xml:space="preserve">
<value>Error: Folder already exist</value>
</data>
<data name="Error.FILES_UNZIP_FILES" xml:space="preserve"> <data name="Error.FILES_UNZIP_FILES" xml:space="preserve">
<value>Error extracting files</value> <value>Error extracting files</value>
</data> </data>
@ -5110,10 +5113,10 @@
<data name="Quota.Exchange2007.RecoverableItemsSpace" xml:space="preserve"> <data name="Quota.Exchange2007.RecoverableItemsSpace" xml:space="preserve">
<value>Recoverable Items Storage, MB</value> <value>Recoverable Items Storage, MB</value>
</data> </data>
<data name="EnterpriseStorage.DiskStorageSpace" xml:space="preserve"> <data name="Quota.EnterpriseStorage.DiskStorageSpace" xml:space="preserve">
<value>Disk Storage Space, MB</value> <value>Disk Storage Space, Gb</value>
</data> </data>
<data name="EnterpriseStorage.Folders" xml:space="preserve"> <data name="Quota.EnterpriseStorage.Folders" xml:space="preserve">
<value>Number of Root Folders</value> <value>Number of Root Folders</value>
</data> </data>
<data name="Error.LYNC_DELETE_DOMAIN" xml:space="preserve"> <data name="Error.LYNC_DELETE_DOMAIN" xml:space="preserve">
@ -5350,6 +5353,9 @@
<data name="Error.ORGANIZATION_GET_SECURITY_GROUP_SETTINGS" xml:space="preserve"> <data name="Error.ORGANIZATION_GET_SECURITY_GROUP_SETTINGS" xml:space="preserve">
<value>Error reading group settings</value> <value>Error reading group settings</value>
</data> </data>
<data name="Error.ENTERPRISE_STORAGE_CREATE_FOLDER" xml:space="preserve">
<value>Error creating folder</value>
</data>
<data name="Error.ORGANIZATION_UPDATE_SECURITY_GROUP_SETTINGS" xml:space="preserve"> <data name="Error.ORGANIZATION_UPDATE_SECURITY_GROUP_SETTINGS" xml:space="preserve">
<value>Error updating group settings</value> <value>Error updating group settings</value>
</data> </data>

View file

@ -141,6 +141,11 @@ SPAN.Checkbox.Bold
border-top: solid 1px #DFDFDF; border-top: solid 1px #DFDFDF;
} }
.FormRBtnL
{
padding-top: 10px;
}
.FormLabel150 .FormLabel150
{ {
font-size: 8pt; font-size: 8pt;

View file

@ -201,4 +201,10 @@
<data name="lblLyncPhone.Text" xml:space="preserve"> <data name="lblLyncPhone.Text" xml:space="preserve">
<value>Lync Phone Numbers:</value> <value>Lync Phone Numbers:</value>
</data> </data>
<data name="lblFolders.Text" xml:space="preserve">
<value>Folders:</value>
</data>
<data name="lblEnterpriseStorage.Text" xml:space="preserve">
<value>Enterprise Storage:</value>
</data>
</root> </root>

View file

@ -150,10 +150,22 @@
<data name="locFolderSize" xml:space="preserve"> <data name="locFolderSize" xml:space="preserve">
<value>Folder Limit Size (Gb):</value> <value>Folder Limit Size (Gb):</value>
</data> </data>
<data name="valNumericFolderSize" xml:space="preserve"> <data name="rangeFolderSize" xml:space="preserve">
<value>*</value> <value>*</value>
</data> </data>
<data name="valNumericFolderSize.ErrorMessage" xml:space="preserve"> <data name="valRequireFolderSize.ErrorMessage" xml:space="preserve">
<value>Enter Folder Size</value> <value>Enter Folder Size</value>
</data> </data>
<data name="locQuotaType" xml:space="preserve">
<value>Quota Type:</value>
</data>
<data name="valRequireFolderSize" xml:space="preserve">
<value>*</value>
</data>
<data name="rbtnQuotaHard" xml:space="preserve">
<value>Hard</value>
</data>
<data name="rbtnQuotaSoft" xml:space="preserve">
<value>Soft</value>
</data>
</root> </root>

View file

@ -145,7 +145,7 @@
<value>Folder Name</value> <value>Folder Name</value>
</data> </data>
<data name="gvFolderSize.Header" xml:space="preserve"> <data name="gvFolderSize.Header" xml:space="preserve">
<value>Folder Size</value> <value>Used Space</value>
</data> </data>
<data name="locTitle" xml:space="preserve"> <data name="locTitle" xml:space="preserve">
<value>Folders</value> <value>Folders</value>
@ -154,6 +154,9 @@
<value>Url</value> <value>Url</value>
</data> </data>
<data name="locQuotaSpace.Text" xml:space="preserve"> <data name="locQuotaSpace.Text" xml:space="preserve">
<value>Total Space Allocated (Mb):</value> <value>Total Space Allocated (Gb):</value>
</data>
<data name="gvFolderQuota.Header" xml:space="preserve">
<value>Allocated Space</value>
</data> </data>
</root> </root>

View file

@ -214,7 +214,7 @@
<value>Folders:</value> <value>Folders:</value>
</data> </data>
<data name="lnkEnterpriseStorageSpace.Text" xml:space="preserve"> <data name="lnkEnterpriseStorageSpace.Text" xml:space="preserve">
<value>Used Diskspace (Mb):</value> <value>Used Diskspace (Gb):</value>
</data> </data>
<data name="locEnterpriseStorage.Text" xml:space="preserve"> <data name="locEnterpriseStorage.Text" xml:space="preserve">
<value>Enterprise Storage</value> <value>Enterprise Storage</value>

View file

@ -73,7 +73,7 @@ namespace WebsitePanel.Portal.ExchangeServer
if (!result.IsSuccess && result.ErrorCodes.Count > 0) if (!result.IsSuccess && result.ErrorCodes.Count > 0)
{ {
messageBox.ShowMessage(result, "ENTERPRISE_STORAGE_FOLDER", "EnterpriseStorage"); messageBox.ShowMessage(result, "ENTERPRISE_STORAGE_CREATE_FOLDER", "Enterprise Storage");
return; return;
} }

View file

@ -39,14 +39,22 @@
<td class="FormLabel150"><asp:Localize ID="locFolderSize" runat="server" meta:resourcekey="locFolderSize" Text="Folder Limit Size (Gb):"></asp:Localize></td> <td class="FormLabel150"><asp:Localize ID="locFolderSize" runat="server" meta:resourcekey="locFolderSize" Text="Folder Limit Size (Gb):"></asp:Localize></td>
<td> <td>
<asp:TextBox ID="txtFolderSize" runat="server" CssClass="HugeTextBox200"></asp:TextBox> <asp:TextBox ID="txtFolderSize" runat="server" CssClass="HugeTextBox200"></asp:TextBox>
<asp:CompareValidator ID="valNumericFolderSize" runat="server" meta:resourcekey="valNumericFolderSize" ControlToValidate="txtFolderSize" <asp:RequiredFieldValidator ID="valRequireFolderSize" runat="server" meta:resourcekey="valRequireFolderSize" ControlToValidate="txtFolderSize"
Type="Integer" Operator="DataTypeCheck" ValidationGroup="EditFolder" Display="Dynamic" Text="*" SetFocusOnError="True" ErrorMessage="Enter Folder Size" ValidationGroup="EditFolder" Display="Dynamic" Text="*" SetFocusOnError="True"></asp:RequiredFieldValidator>
ErrorMessage="Enter Folder Size" /> <asp:RangeValidator ID="rangeFolderSize" runat="server" ControlToValidate="txtFolderSize" MaximumValue="99999" MinimumValue="1"
ValidationGroup="EditFolder" Display="Dynamic" Text="*" SetFocusOnError="True"
ErrorMessage="The quota youve entered exceeds the available quota for tenant" />
</td>
</tr>
<tr>
<td class="FormLabel150"><asp:Localize ID="locQuotaType" runat="server" meta:resourcekey="locQuotaType" Text="Quota Type:"></asp:Localize></td>
<td class="FormRBtnL">
<asp:RadioButton ID="rbtnQuotaSoft" runat="server" meta:resourcekey="rbtnQuotaSoft" Text="Soft" GroupName="QuotaType" Checked="true" />
<asp:RadioButton ID="rbtnQuotaHard" runat="server" meta:resourcekey="rbtnQuotaHard" Text="Hard" GroupName="QuotaType" />
<br /> <br />
<br /> <br />
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="FormLabel150"><asp:Localize ID="locFolderUrl" runat="server" meta:resourcekey="locFolderUrl" Text="Folder Url:"></asp:Localize></td> <td class="FormLabel150"><asp:Localize ID="locFolderUrl" runat="server" meta:resourcekey="locFolderUrl" Text="Folder Url:"></asp:Localize></td>
<td><asp:Label runat="server" ID="lblFolderUrl" /></td> <td><asp:Label runat="server" ID="lblFolderUrl" /></td>

View file

@ -45,12 +45,6 @@ namespace WebsitePanel.Portal.ExchangeServer
{ {
public partial class EnterpriseStorageFolderGeneralSettings : WebsitePanelModuleBase public partial class EnterpriseStorageFolderGeneralSettings : WebsitePanelModuleBase
{ {
#region Constansts
const int OneMb = 1024;
#endregion
protected void Page_Load(object sender, EventArgs e) protected void Page_Load(object sender, EventArgs e)
{ {
if (!IsPostBack) if (!IsPostBack)
@ -63,6 +57,16 @@ namespace WebsitePanel.Portal.ExchangeServer
BindSettings(); 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 youve entered exceeds the available quota for tenant ({0}Gb)", rangeFolderSize.MaximumValue);
}
} }
private void BindSettings() private void BindSettings()
@ -70,7 +74,6 @@ namespace WebsitePanel.Portal.ExchangeServer
try try
{ {
// get settings // get settings
Organization org = ES.Services.Organizations.GetOrganization(PanelRequest.ItemID); Organization org = ES.Services.Organizations.GetOrganization(PanelRequest.ItemID);
SystemFile folder = ES.Services.EnterpriseStorage.GetEnterpriseFolder( SystemFile folder = ES.Services.EnterpriseStorage.GetEnterpriseFolder(
@ -82,9 +85,19 @@ namespace WebsitePanel.Portal.ExchangeServer
txtFolderName.Text = folder.Name; txtFolderName.Text = folder.Name;
lblFolderUrl.Text = folder.Url; 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); 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); chkDirectoryBrowsing.Checked = ES.Services.EnterpriseStorage.GetDirectoryBrowseEnabled(PanelRequest.ItemID, folder.Url);
permissions.SetPermissions(esPermissions); permissions.SetPermissions(esPermissions);
} }
catch (Exception ex) catch (Exception ex)
{ {
@ -131,10 +143,22 @@ namespace WebsitePanel.Portal.ExchangeServer
} }
folder = ES.Services.EnterpriseStorage.RenameEnterpriseFolder(PanelRequest.ItemID, PanelRequest.FolderID, txtFolderName.Text); 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(), ES.Services.EnterpriseStorage.SetEnterpriseFolderSettings(
chkDirectoryBrowsing.Checked, txtFolderSize.Text.Length == 0 ? -1 : int.Parse(txtFolderSize.Text) * OneMb); 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", Response.Redirect(EditUrl("SpaceID", PanelSecurity.PackageId.ToString(), "enterprisestorage_folders",

View file

@ -149,13 +149,49 @@ namespace WebsitePanel.Portal.ExchangeServer {
protected global::System.Web.UI.WebControls.TextBox txtFolderSize; protected global::System.Web.UI.WebControls.TextBox txtFolderSize;
/// <summary> /// <summary>
/// valNumericFolderSize control. /// valRequireFolderSize control.
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// Auto-generated field. /// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file. /// To modify move field declaration from designer file to code-behind file.
/// </remarks> /// </remarks>
protected global::System.Web.UI.WebControls.CompareValidator valNumericFolderSize; protected global::System.Web.UI.WebControls.RequiredFieldValidator valRequireFolderSize;
/// <summary>
/// rangeFolderSize control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.RangeValidator rangeFolderSize;
/// <summary>
/// locQuotaType control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Localize locQuotaType;
/// <summary>
/// rbtnQuotaSoft control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.RadioButton rbtnQuotaSoft;
/// <summary>
/// rbtnQuotaHard control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.RadioButton rbtnQuotaHard;
/// <summary> /// <summary>
/// locFolderUrl control. /// locFolderUrl control.

View file

@ -60,6 +60,12 @@
</asp:hyperlink> </asp:hyperlink>
</ItemTemplate> </ItemTemplate>
</asp:TemplateField> </asp:TemplateField>
<asp:TemplateField HeaderText="gvFolderQuota" SortExpression="FRSMQuotaGB">
<ItemStyle Width="20%"></ItemStyle>
<ItemTemplate>
<asp:Literal id="litFolderQuota" runat="server" Text='<%# Eval("FRSMQuotaGB").ToString() + " Gb" %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="gvFolderSize" SortExpression="Size"> <asp:TemplateField HeaderText="gvFolderSize" SortExpression="Size">
<ItemStyle Width="20%"></ItemStyle> <ItemStyle Width="20%"></ItemStyle>
<ItemTemplate> <ItemTemplate>
@ -99,9 +105,9 @@
<br /> <br />
<br /> <br />
<asp:Localize ID="locQuotaSpace" runat="server" meta:resourcekey="locQuotaSpace" Text="Total Space Allocated (Mb):"></asp:Localize> <asp:Localize ID="locQuotaSpace" runat="server" meta:resourcekey="locQuotaSpace" Text="Total Space Allocated (Gb):"></asp:Localize>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;
<wsp:QuotaViewer ID="spaceQuota" runat="server" QuotaTypeId="2" /> <wsp:QuotaViewer ID="spaceQuota" runat="server" QuotaTypeId="3" />
</div> </div>
</div> </div>
</div> </div>

View file

@ -63,27 +63,26 @@ namespace WebsitePanel.Portal.ExchangeServer
protected void BindEnterpriseStorageStats() protected void BindEnterpriseStorageStats()
{ {
OrganizationStatistics organizationStats = ES.Services.Organizations.GetOrganizationStatisticsByOrganization(PanelRequest.ItemID); btnAddFolder.Enabled = true;
OrganizationStatistics organizationStats = ES.Services.Organizations.GetOrganizationStatisticsByOrganization(PanelRequest.ItemID);
OrganizationStatistics tenantStats = ES.Services.Organizations.GetOrganizationStatistics(PanelRequest.ItemID); OrganizationStatistics tenantStats = ES.Services.Organizations.GetOrganizationStatistics(PanelRequest.ItemID);
foldersQuota.QuotaUsedValue = organizationStats.CreatedEnterpriseStorageFolders; foldersQuota.QuotaUsedValue = organizationStats.CreatedEnterpriseStorageFolders;
foldersQuota.QuotaValue = organizationStats.AllocatedEnterpriseStorageFolders; foldersQuota.QuotaValue = organizationStats.AllocatedEnterpriseStorageFolders;
if (organizationStats.AllocatedEnterpriseStorageFolders != -1) if (organizationStats.AllocatedEnterpriseStorageFolders != -1)
{ {
int folderAvailable = foldersQuota.QuotaAvailable = tenantStats.AllocatedEnterpriseStorageFolders - tenantStats.CreatedEnterpriseStorageFolders; 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; btnAddFolder.Enabled = false;
} }
} }
spaceQuota.QuotaUsedValue = organizationStats.UsedEnterpriseStorageSpace; spaceQuota.QuotaValue = organizationStats.UsedEnterpriseStorageSpace;
spaceQuota.QuotaValue = organizationStats.AllocatedEnterpriseStorageSpace;
} }
protected void btnAddFolder_Click(object sender, EventArgs e) protected void btnAddFolder_Click(object sender, EventArgs e)
@ -109,6 +108,8 @@ namespace WebsitePanel.Portal.ExchangeServer
} }
gvFolders.DataBind(); gvFolders.DataBind();
BindEnterpriseStorageStats();
} }
catch (Exception ex) catch (Exception ex)
{ {

View file

@ -298,16 +298,14 @@ namespace WebsitePanel.Portal.ExchangeServer
{ {
enterpriseStorageSpaceStats.QuotaValue = stats.AllocatedEnterpriseStorageSpace; enterpriseStorageSpaceStats.QuotaValue = stats.AllocatedEnterpriseStorageSpace;
enterpriseStorageSpaceStats.QuotaUsedValue = stats.UsedEnterpriseStorageSpace; enterpriseStorageSpaceStats.QuotaUsedValue = stats.UsedEnterpriseStorageSpace;
if (stats.AllocatedEnterpriseStorageSpace != -1) enterpriseStorageSpaceStats.QuotaAvailable = tenantStats.AllocatedEnterpriseStorageSpace - tenantStats.UsedEnterpriseStorageSpace;
lnkBESUsers.NavigateUrl = EditUrl("ItemID", PanelRequest.ItemID.ToString(), "enterprisestorage_folders", lnkBESUsers.NavigateUrl = EditUrl("ItemID", PanelRequest.ItemID.ToString(), "enterprisestorage_folders",
"SpaceID=" + PanelSecurity.PackageId.ToString()); "SpaceID=" + PanelSecurity.PackageId.ToString());
enterpriseStorageFoldersStats.QuotaValue = stats.AllocatedEnterpriseStorageFolders; enterpriseStorageFoldersStats.QuotaValue = stats.AllocatedEnterpriseStorageFolders;
enterpriseStorageFoldersStats.QuotaUsedValue = stats.CreatedEnterpriseStorageFolders; enterpriseStorageFoldersStats.QuotaUsedValue = stats.CreatedEnterpriseStorageFolders;
if (stats.AllocatedEnterpriseStorageFolders != -1) if (stats.AllocatedEnterpriseStorageFolders != -1) enterpriseStorageFoldersStats.QuotaAvailable = tenantStats.AllocatedEnterpriseStorageFolders - tenantStats.CreatedEnterpriseStorageFolders;
{
enterpriseStorageFoldersStats.QuotaAvailable = tenantStats.AllocatedEnterpriseStorageFolders - tenantStats.CreatedEnterpriseStorageFolders;
}
lnkBESUsers.NavigateUrl = EditUrl("ItemID", PanelRequest.ItemID.ToString(), "enterprisestorage_folders", lnkBESUsers.NavigateUrl = EditUrl("ItemID", PanelRequest.ItemID.ToString(), "enterprisestorage_folders",
"SpaceID=" + PanelSecurity.PackageId.ToString()); "SpaceID=" + PanelSecurity.PackageId.ToString());

View file

@ -129,11 +129,17 @@
<data name="btnDelete.Text" xml:space="preserve"> <data name="btnDelete.Text" xml:space="preserve">
<value>Delete</value> <value>Delete</value>
</data> </data>
<data name="btnSetReadOnly.Text" xml:space="preserve"> <data name="btnSet.Text" xml:space="preserve">
<value>Set Read-Only</value> <value>Set Permissions</value>
</data> </data>
<data name="btnSetReadWrite.Text" xml:space="preserve"> <data name="chkRead" xml:space="preserve">
<value>Set Read-Write</value> <value>Read</value>
</data>
<data name="chkSource" xml:space="preserve">
<value>Source</value>
</data>
<data name="chkWrite" xml:space="preserve">
<value>Write</value>
</data> </data>
<data name="ddlSearchColumnDisplayName.Text" xml:space="preserve"> <data name="ddlSearchColumnDisplayName.Text" xml:space="preserve">
<value>Display Name</value> <value>Display Name</value>

View file

@ -38,8 +38,11 @@
</asp:GridView> </asp:GridView>
<br /> <br />
<div class="FormButtonsBarClean"> <div class="FormButtonsBarClean">
<asp:Button ID="btnSetReadOnly" runat="server" Text="Set Read-Only" CssClass="Button1" OnClick="btn_UpdateAccess" CommandArgument="Read-Only" meta:resourcekey="btnSetReadOnly" /> <asp:CheckBox ID="chkRead" runat="server" Text="Read" meta:resourcekey="chkRead" />
<asp:Button ID="btnSetReadWrite" runat="server" Text="Set Read-Write" CssClass="Button1" OnClick="btn_UpdateAccess" CommandArgument="Read-Write" meta:resourcekey="btnSetReadWrite"/> <asp:CheckBox ID="chkWrite" runat="server" Text="Write" meta:resourcekey="chkWrite" />
<asp:CheckBox ID="chkSource" runat="server" Text="Source" meta:resourcekey="chkSource" />
<br />
<asp:Button ID="btnSet" runat="server" Text="Set Permissions" CssClass="Button1" OnClick="btn_UpdateAccess" meta:resourcekey="btnSet" />
</div> </div>

View file

@ -103,7 +103,7 @@ namespace WebsitePanel.Portal.ExchangeServer.UserControls
{ {
Account = account.AccountName, Account = account.AccountName,
DisplayName = account.DisplayName, DisplayName = account.DisplayName,
Access = "Read-Only", Access = "Read",
}); });
} }
@ -281,9 +281,34 @@ namespace WebsitePanel.Portal.ExchangeServer.UserControls
if (chkSelect.Checked) if (chkSelect.Checked)
{ {
chkSelect.Checked = false; 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;
}
} }
} }

View file

@ -77,22 +77,40 @@ namespace WebsitePanel.Portal.ExchangeServer.UserControls {
protected global::System.Web.UI.WebControls.GridView gvPermissions; protected global::System.Web.UI.WebControls.GridView gvPermissions;
/// <summary> /// <summary>
/// btnSetReadOnly control. /// chkRead control.
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// Auto-generated field. /// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file. /// To modify move field declaration from designer file to code-behind file.
/// </remarks> /// </remarks>
protected global::System.Web.UI.WebControls.Button btnSetReadOnly; protected global::System.Web.UI.WebControls.CheckBox chkRead;
/// <summary> /// <summary>
/// btnSetReadWrite control. /// chkWrite control.
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// Auto-generated field. /// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file. /// To modify move field declaration from designer file to code-behind file.
/// </remarks> /// </remarks>
protected global::System.Web.UI.WebControls.Button btnSetReadWrite; protected global::System.Web.UI.WebControls.CheckBox chkWrite;
/// <summary>
/// chkSource control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.CheckBox chkSource;
/// <summary>
/// btnSet control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Button btnSet;
/// <summary> /// <summary>
/// AddAccountsPanel control. /// AddAccountsPanel control.

View file

@ -117,9 +117,6 @@
<resheader name="writer"> <resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader> </resheader>
<data name="chkEnableHardQuota.Text" xml:space="preserve">
<value>Enable Hard Quota:</value>
</data>
<data name="lblSpacesFolder.Text" xml:space="preserve"> <data name="lblSpacesFolder.Text" xml:space="preserve">
<value>Enterprise Storage Path:</value> <value>Enterprise Storage Path:</value>
</data> </data>

View file

@ -24,19 +24,4 @@
ControlToValidate="txtDomain" ErrorMessage="*"></asp:RegularExpressionValidator> ControlToValidate="txtDomain" ErrorMessage="*"></asp:RegularExpressionValidator>
</td> </td>
</tr> </tr>
<tr>
<td class="SubHead" width="200" nowrap></td>
<td width="100%">
<table>
<tr>
<td>
<asp:CheckBox runat="server" AutoPostBack="false" ID="chkEnableHardQuota" meta:resourcekey="chkEnableHardQuota" Text="Enable Hard Quota:" /></td>
</tr>
<tr>
<td>
<asp:Label runat="server" ID="lblFileServiceInfo" Text="Install File Services role on the file server to enable the check box" Font-Italic="true" Visible="false"></asp:Label></td>
</tr>
</table>
</td>
</tr>
</table> </table>

View file

@ -48,14 +48,9 @@ namespace WebsitePanel.Portal.ProviderControls
{ {
try try
{ {
chkEnableHardQuota.Enabled = ES.Services.EnterpriseStorage.CheckFileServicesInstallation(PanelRequest.ServiceId); txtFolder.Enabled = ES.Services.EnterpriseStorage.CheckFileServicesInstallation(PanelRequest.ServiceId);
txtFolder.Enabled = chkEnableHardQuota.Enabled;
if (!chkEnableHardQuota.Enabled)
lblFileServiceInfo.Visible = true;
}
catch
{
} }
catch { }
} }
} }
@ -65,7 +60,6 @@ namespace WebsitePanel.Portal.ProviderControls
txtFolder.Text = path; txtFolder.Text = path;
txtDomain.Text = settings["UsersDomain"]; txtDomain.Text = settings["UsersDomain"];
chkEnableHardQuota.Checked = settings["EnableHardQuota"] == "true" ? true : false;
} }
public void SaveSettings(StringDictionary settings) public void SaveSettings(StringDictionary settings)
@ -79,7 +73,6 @@ namespace WebsitePanel.Portal.ProviderControls
settings["LocationDrive"] = drive.Split(':')[0]; settings["LocationDrive"] = drive.Split(':')[0];
settings["UsersHome"] = folder; settings["UsersHome"] = folder;
settings["UsersDomain"] = domain; settings["UsersDomain"] = domain;
settings["EnableHardQuota"] = chkEnableHardQuota.Checked.ToString().ToLower();
} }
} }
} }

View file

@ -111,23 +111,5 @@ namespace WebsitePanel.Portal.ProviderControls {
/// To modify move field declaration from designer file to code-behind file. /// To modify move field declaration from designer file to code-behind file.
/// </remarks> /// </remarks>
protected global::System.Web.UI.WebControls.RegularExpressionValidator valExpressionDomain; protected global::System.Web.UI.WebControls.RegularExpressionValidator valExpressionDomain;
/// <summary>
/// chkEnableHardQuota control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.CheckBox chkEnableHardQuota;
/// <summary>
/// lblFileServiceInfo control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblFileServiceInfo;
} }
} }

View file

@ -86,6 +86,14 @@
<td class="SubHead" nowrap><asp:Label ID="lblHyperVForPC" runat="server" meta:resourcekey="lblHyperVForPC" Text="Number of VM:" /></td> <td class="SubHead" nowrap><asp:Label ID="lblHyperVForPC" runat="server" meta:resourcekey="lblHyperVForPC" Text="Number of VM:" /></td>
<td class="Normal"><wsp:Quota ID="quotaNumberOfVm" runat="server" QuotaName="VPSForPC.ServersNumber" DisplayGauge="True" /></td> <td class="Normal"><wsp:Quota ID="quotaNumberOfVm" runat="server" QuotaName="VPSForPC.ServersNumber" DisplayGauge="True" /></td>
</tr> </tr>
<tr id="pnlFolders" runat="server">
<td class="SubHead" nowrap><asp:Label ID="lblFolders" runat="server" meta:resourcekey="lblFolders" Text="Folders:" /></td>
<td class="Normal"><wsp:Quota ID="quotaNumberOfFolders" runat="server" QuotaName="EnterpriseStorage.Folders" DisplayGauge="True" /></td>
</tr>
<tr id="pnlEnterpriseStorage" runat="server">
<td class="SubHead" nowrap><asp:Label ID="lblEnterpriseStorage" runat="server" meta:resourcekey="lblEnterpriseStorage" Text="Enterprise Storage:" /></td>
<td class="Normal"><wsp:Quota ID="quotaEnterpriseStorage" runat="server" QuotaName="EnterpriseStorage.DiskStorageSpace" DisplayGauge="True" /></td>
</tr>
</table> </table>
</div> </div>
<div class="FormFooter"> <div class="FormFooter">

View file

@ -70,7 +70,9 @@ namespace WebsitePanel.Portal
{ "quotaDatabases", "pnlDatabases" }, { "quotaDatabases", "pnlDatabases" },
{ "quotaNumberOfVm", "pnlHyperVForPC" }, { "quotaNumberOfVm", "pnlHyperVForPC" },
{ "quotaFtpAccounts", "pnlFtpAccounts" }, { "quotaFtpAccounts", "pnlFtpAccounts" },
{ "quotaExchangeStorage", "pnlExchangeStorage" } { "quotaExchangeStorage", "pnlExchangeStorage" },
{ "quotaNumberOfFolders", "pnlFolders" },
{ "quotaEnterpriseStorage", "pnlEnterpriseStorage" }
}; };
protected void Page_Load(object sender, EventArgs e) protected void Page_Load(object sender, EventArgs e)

View file

@ -29,7 +29,6 @@
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// <auto-generated> // <auto-generated>
// This code was generated by a tool. // 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 // Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated. // the code is regenerated.
@ -47,7 +46,6 @@ namespace WebsitePanel.Portal {
/// <remarks> /// <remarks>
/// Auto-generated field. /// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file. /// To modify move field declaration from designer file to code-behind file.
/// </remarks> /// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlTableRow pnlDiskspace; protected global::System.Web.UI.HtmlControls.HtmlTableRow pnlDiskspace;
@ -57,7 +55,6 @@ namespace WebsitePanel.Portal {
/// <remarks> /// <remarks>
/// Auto-generated field. /// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file. /// To modify move field declaration from designer file to code-behind file.
/// </remarks> /// </remarks>
protected global::WebsitePanel.Portal.Quota quotaDiskspace; protected global::WebsitePanel.Portal.Quota quotaDiskspace;
@ -67,7 +64,6 @@ namespace WebsitePanel.Portal {
/// <remarks> /// <remarks>
/// Auto-generated field. /// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file. /// To modify move field declaration from designer file to code-behind file.
/// </remarks> /// </remarks>
protected global::System.Web.UI.WebControls.HyperLink lnkViewDiskspaceDetails; protected global::System.Web.UI.WebControls.HyperLink lnkViewDiskspaceDetails;
@ -77,7 +73,6 @@ namespace WebsitePanel.Portal {
/// <remarks> /// <remarks>
/// Auto-generated field. /// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file. /// To modify move field declaration from designer file to code-behind file.
/// </remarks> /// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlTableRow pnlBandwidth; protected global::System.Web.UI.HtmlControls.HtmlTableRow pnlBandwidth;
@ -87,7 +82,6 @@ namespace WebsitePanel.Portal {
/// <remarks> /// <remarks>
/// Auto-generated field. /// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file. /// To modify move field declaration from designer file to code-behind file.
/// </remarks> /// </remarks>
protected global::WebsitePanel.Portal.Quota quotaBandwidth; protected global::WebsitePanel.Portal.Quota quotaBandwidth;
@ -97,7 +91,6 @@ namespace WebsitePanel.Portal {
/// <remarks> /// <remarks>
/// Auto-generated field. /// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file. /// To modify move field declaration from designer file to code-behind file.
/// </remarks> /// </remarks>
protected global::System.Web.UI.WebControls.HyperLink lnkViewBandwidthDetails; protected global::System.Web.UI.WebControls.HyperLink lnkViewBandwidthDetails;
@ -107,7 +100,6 @@ namespace WebsitePanel.Portal {
/// <remarks> /// <remarks>
/// Auto-generated field. /// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file. /// To modify move field declaration from designer file to code-behind file.
/// </remarks> /// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlTableRow pnlDomains; protected global::System.Web.UI.HtmlControls.HtmlTableRow pnlDomains;
@ -117,7 +109,6 @@ namespace WebsitePanel.Portal {
/// <remarks> /// <remarks>
/// Auto-generated field. /// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file. /// To modify move field declaration from designer file to code-behind file.
/// </remarks> /// </remarks>
protected global::System.Web.UI.WebControls.Label lblDomains; protected global::System.Web.UI.WebControls.Label lblDomains;
@ -127,7 +118,6 @@ namespace WebsitePanel.Portal {
/// <remarks> /// <remarks>
/// Auto-generated field. /// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file. /// To modify move field declaration from designer file to code-behind file.
/// </remarks> /// </remarks>
protected global::WebsitePanel.Portal.Quota quotaDomains; protected global::WebsitePanel.Portal.Quota quotaDomains;
@ -137,7 +127,6 @@ namespace WebsitePanel.Portal {
/// <remarks> /// <remarks>
/// Auto-generated field. /// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file. /// To modify move field declaration from designer file to code-behind file.
/// </remarks> /// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlTableRow pnlSubDomains; protected global::System.Web.UI.HtmlControls.HtmlTableRow pnlSubDomains;
@ -147,7 +136,6 @@ namespace WebsitePanel.Portal {
/// <remarks> /// <remarks>
/// Auto-generated field. /// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file. /// To modify move field declaration from designer file to code-behind file.
/// </remarks> /// </remarks>
protected global::System.Web.UI.WebControls.Label lblSubDomains; protected global::System.Web.UI.WebControls.Label lblSubDomains;
@ -157,7 +145,6 @@ namespace WebsitePanel.Portal {
/// <remarks> /// <remarks>
/// Auto-generated field. /// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file. /// To modify move field declaration from designer file to code-behind file.
/// </remarks> /// </remarks>
protected global::WebsitePanel.Portal.Quota quotaSubDomains; protected global::WebsitePanel.Portal.Quota quotaSubDomains;
@ -167,7 +154,6 @@ namespace WebsitePanel.Portal {
/// <remarks> /// <remarks>
/// Auto-generated field. /// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file. /// To modify move field declaration from designer file to code-behind file.
/// </remarks> /// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlTableRow pnlDomainPointers; protected global::System.Web.UI.HtmlControls.HtmlTableRow pnlDomainPointers;
@ -177,7 +163,6 @@ namespace WebsitePanel.Portal {
/// <remarks> /// <remarks>
/// Auto-generated field. /// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file. /// To modify move field declaration from designer file to code-behind file.
/// </remarks> /// </remarks>
protected global::System.Web.UI.WebControls.Label lblDomainPointers; protected global::System.Web.UI.WebControls.Label lblDomainPointers;
@ -187,7 +172,6 @@ namespace WebsitePanel.Portal {
/// <remarks> /// <remarks>
/// Auto-generated field. /// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file. /// To modify move field declaration from designer file to code-behind file.
/// </remarks> /// </remarks>
protected global::WebsitePanel.Portal.Quota quotaDomainPointers; protected global::WebsitePanel.Portal.Quota quotaDomainPointers;
@ -197,7 +181,6 @@ namespace WebsitePanel.Portal {
/// <remarks> /// <remarks>
/// Auto-generated field. /// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file. /// To modify move field declaration from designer file to code-behind file.
/// </remarks> /// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlTableRow pnlOrganizations; protected global::System.Web.UI.HtmlControls.HtmlTableRow pnlOrganizations;
@ -207,7 +190,6 @@ namespace WebsitePanel.Portal {
/// <remarks> /// <remarks>
/// Auto-generated field. /// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file. /// To modify move field declaration from designer file to code-behind file.
/// </remarks> /// </remarks>
protected global::System.Web.UI.WebControls.Label lblOrganizations; protected global::System.Web.UI.WebControls.Label lblOrganizations;
@ -217,7 +199,6 @@ namespace WebsitePanel.Portal {
/// <remarks> /// <remarks>
/// Auto-generated field. /// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file. /// To modify move field declaration from designer file to code-behind file.
/// </remarks> /// </remarks>
protected global::WebsitePanel.Portal.Quota quotaOrganizations; protected global::WebsitePanel.Portal.Quota quotaOrganizations;
@ -227,7 +208,6 @@ namespace WebsitePanel.Portal {
/// <remarks> /// <remarks>
/// Auto-generated field. /// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file. /// To modify move field declaration from designer file to code-behind file.
/// </remarks> /// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlTableRow pnlUserAccounts; protected global::System.Web.UI.HtmlControls.HtmlTableRow pnlUserAccounts;
@ -237,7 +217,6 @@ namespace WebsitePanel.Portal {
/// <remarks> /// <remarks>
/// Auto-generated field. /// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file. /// To modify move field declaration from designer file to code-behind file.
/// </remarks> /// </remarks>
protected global::System.Web.UI.WebControls.Label lblUserAccounts; protected global::System.Web.UI.WebControls.Label lblUserAccounts;
@ -247,7 +226,6 @@ namespace WebsitePanel.Portal {
/// <remarks> /// <remarks>
/// Auto-generated field. /// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file. /// To modify move field declaration from designer file to code-behind file.
/// </remarks> /// </remarks>
protected global::WebsitePanel.Portal.Quota quotaUserAccounts; protected global::WebsitePanel.Portal.Quota quotaUserAccounts;
@ -257,7 +235,6 @@ namespace WebsitePanel.Portal {
/// <remarks> /// <remarks>
/// Auto-generated field. /// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file. /// To modify move field declaration from designer file to code-behind file.
/// </remarks> /// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlTableRow pnlExchangeAccounts; protected global::System.Web.UI.HtmlControls.HtmlTableRow pnlExchangeAccounts;
@ -267,7 +244,6 @@ namespace WebsitePanel.Portal {
/// <remarks> /// <remarks>
/// Auto-generated field. /// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file. /// To modify move field declaration from designer file to code-behind file.
/// </remarks> /// </remarks>
protected global::System.Web.UI.WebControls.Label lblExchangeAccounts; protected global::System.Web.UI.WebControls.Label lblExchangeAccounts;
@ -277,7 +253,6 @@ namespace WebsitePanel.Portal {
/// <remarks> /// <remarks>
/// Auto-generated field. /// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file. /// To modify move field declaration from designer file to code-behind file.
/// </remarks> /// </remarks>
protected global::WebsitePanel.Portal.Quota quotaExchangeAccounts; protected global::WebsitePanel.Portal.Quota quotaExchangeAccounts;
@ -287,7 +262,6 @@ namespace WebsitePanel.Portal {
/// <remarks> /// <remarks>
/// Auto-generated field. /// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file. /// To modify move field declaration from designer file to code-behind file.
/// </remarks> /// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlTableRow pnlExchangeStorage; protected global::System.Web.UI.HtmlControls.HtmlTableRow pnlExchangeStorage;
@ -297,7 +271,6 @@ namespace WebsitePanel.Portal {
/// <remarks> /// <remarks>
/// Auto-generated field. /// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file. /// To modify move field declaration from designer file to code-behind file.
/// </remarks> /// </remarks>
protected global::System.Web.UI.WebControls.Label lblExchangeStorage; protected global::System.Web.UI.WebControls.Label lblExchangeStorage;
@ -307,7 +280,6 @@ namespace WebsitePanel.Portal {
/// <remarks> /// <remarks>
/// Auto-generated field. /// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file. /// To modify move field declaration from designer file to code-behind file.
/// </remarks> /// </remarks>
protected global::WebsitePanel.Portal.Quota quotaExchangeStorage; protected global::WebsitePanel.Portal.Quota quotaExchangeStorage;
@ -317,7 +289,6 @@ namespace WebsitePanel.Portal {
/// <remarks> /// <remarks>
/// Auto-generated field. /// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file. /// To modify move field declaration from designer file to code-behind file.
/// </remarks> /// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlTableRow pnlMailAccounts; protected global::System.Web.UI.HtmlControls.HtmlTableRow pnlMailAccounts;
@ -327,7 +298,6 @@ namespace WebsitePanel.Portal {
/// <remarks> /// <remarks>
/// Auto-generated field. /// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file. /// To modify move field declaration from designer file to code-behind file.
/// </remarks> /// </remarks>
protected global::System.Web.UI.WebControls.Label lblMailAccounts; protected global::System.Web.UI.WebControls.Label lblMailAccounts;
@ -337,7 +307,6 @@ namespace WebsitePanel.Portal {
/// <remarks> /// <remarks>
/// Auto-generated field. /// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file. /// To modify move field declaration from designer file to code-behind file.
/// </remarks> /// </remarks>
protected global::WebsitePanel.Portal.Quota quotaMailAccounts; protected global::WebsitePanel.Portal.Quota quotaMailAccounts;
@ -347,7 +316,6 @@ namespace WebsitePanel.Portal {
/// <remarks> /// <remarks>
/// Auto-generated field. /// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file. /// To modify move field declaration from designer file to code-behind file.
/// </remarks> /// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlTableRow pnlOCSUsers; protected global::System.Web.UI.HtmlControls.HtmlTableRow pnlOCSUsers;
@ -357,7 +325,6 @@ namespace WebsitePanel.Portal {
/// <remarks> /// <remarks>
/// Auto-generated field. /// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file. /// To modify move field declaration from designer file to code-behind file.
/// </remarks> /// </remarks>
protected global::System.Web.UI.WebControls.Label lblOCSUsers; protected global::System.Web.UI.WebControls.Label lblOCSUsers;
@ -367,7 +334,6 @@ namespace WebsitePanel.Portal {
/// <remarks> /// <remarks>
/// Auto-generated field. /// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file. /// To modify move field declaration from designer file to code-behind file.
/// </remarks> /// </remarks>
protected global::WebsitePanel.Portal.Quota quotaOCSUsers; protected global::WebsitePanel.Portal.Quota quotaOCSUsers;
@ -377,7 +343,6 @@ namespace WebsitePanel.Portal {
/// <remarks> /// <remarks>
/// Auto-generated field. /// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file. /// To modify move field declaration from designer file to code-behind file.
/// </remarks> /// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlTableRow pnlLyncUsers; protected global::System.Web.UI.HtmlControls.HtmlTableRow pnlLyncUsers;
@ -387,7 +352,6 @@ namespace WebsitePanel.Portal {
/// <remarks> /// <remarks>
/// Auto-generated field. /// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file. /// To modify move field declaration from designer file to code-behind file.
/// </remarks> /// </remarks>
protected global::System.Web.UI.WebControls.Label lblLyncUsers; protected global::System.Web.UI.WebControls.Label lblLyncUsers;
@ -397,7 +361,6 @@ namespace WebsitePanel.Portal {
/// <remarks> /// <remarks>
/// Auto-generated field. /// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file. /// To modify move field declaration from designer file to code-behind file.
/// </remarks> /// </remarks>
protected global::WebsitePanel.Portal.Quota quotaLyncUsers; protected global::WebsitePanel.Portal.Quota quotaLyncUsers;
@ -407,7 +370,6 @@ namespace WebsitePanel.Portal {
/// <remarks> /// <remarks>
/// Auto-generated field. /// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file. /// To modify move field declaration from designer file to code-behind file.
/// </remarks> /// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlTableRow pnlLyncPhone; protected global::System.Web.UI.HtmlControls.HtmlTableRow pnlLyncPhone;
@ -417,7 +379,6 @@ namespace WebsitePanel.Portal {
/// <remarks> /// <remarks>
/// Auto-generated field. /// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file. /// To modify move field declaration from designer file to code-behind file.
/// </remarks> /// </remarks>
protected global::System.Web.UI.WebControls.Label Label1; protected global::System.Web.UI.WebControls.Label Label1;
@ -427,7 +388,6 @@ namespace WebsitePanel.Portal {
/// <remarks> /// <remarks>
/// Auto-generated field. /// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file. /// To modify move field declaration from designer file to code-behind file.
/// </remarks> /// </remarks>
protected global::WebsitePanel.Portal.Quota quotaLyncPhone; protected global::WebsitePanel.Portal.Quota quotaLyncPhone;
@ -437,7 +397,6 @@ namespace WebsitePanel.Portal {
/// <remarks> /// <remarks>
/// Auto-generated field. /// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file. /// To modify move field declaration from designer file to code-behind file.
/// </remarks> /// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlTableRow pnlBlackBerryUsers; protected global::System.Web.UI.HtmlControls.HtmlTableRow pnlBlackBerryUsers;
@ -447,7 +406,6 @@ namespace WebsitePanel.Portal {
/// <remarks> /// <remarks>
/// Auto-generated field. /// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file. /// To modify move field declaration from designer file to code-behind file.
/// </remarks> /// </remarks>
protected global::System.Web.UI.WebControls.Label lblBlackBerryUsers; protected global::System.Web.UI.WebControls.Label lblBlackBerryUsers;
@ -457,7 +415,6 @@ namespace WebsitePanel.Portal {
/// <remarks> /// <remarks>
/// Auto-generated field. /// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file. /// To modify move field declaration from designer file to code-behind file.
/// </remarks> /// </remarks>
protected global::WebsitePanel.Portal.Quota quotaBlackBerryUsers; protected global::WebsitePanel.Portal.Quota quotaBlackBerryUsers;
@ -467,7 +424,6 @@ namespace WebsitePanel.Portal {
/// <remarks> /// <remarks>
/// Auto-generated field. /// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file. /// To modify move field declaration from designer file to code-behind file.
/// </remarks> /// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlTableRow pnlSharepointSites; protected global::System.Web.UI.HtmlControls.HtmlTableRow pnlSharepointSites;
@ -477,7 +433,6 @@ namespace WebsitePanel.Portal {
/// <remarks> /// <remarks>
/// Auto-generated field. /// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file. /// To modify move field declaration from designer file to code-behind file.
/// </remarks> /// </remarks>
protected global::System.Web.UI.WebControls.Label lblSharepointSites; protected global::System.Web.UI.WebControls.Label lblSharepointSites;
@ -487,7 +442,6 @@ namespace WebsitePanel.Portal {
/// <remarks> /// <remarks>
/// Auto-generated field. /// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file. /// To modify move field declaration from designer file to code-behind file.
/// </remarks> /// </remarks>
protected global::WebsitePanel.Portal.Quota quotaSharepointSites; protected global::WebsitePanel.Portal.Quota quotaSharepointSites;
@ -497,7 +451,6 @@ namespace WebsitePanel.Portal {
/// <remarks> /// <remarks>
/// Auto-generated field. /// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file. /// To modify move field declaration from designer file to code-behind file.
/// </remarks> /// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlTableRow pnlWebSites; protected global::System.Web.UI.HtmlControls.HtmlTableRow pnlWebSites;
@ -507,7 +460,6 @@ namespace WebsitePanel.Portal {
/// <remarks> /// <remarks>
/// Auto-generated field. /// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file. /// To modify move field declaration from designer file to code-behind file.
/// </remarks> /// </remarks>
protected global::System.Web.UI.WebControls.Label lblWebSites; protected global::System.Web.UI.WebControls.Label lblWebSites;
@ -517,7 +469,6 @@ namespace WebsitePanel.Portal {
/// <remarks> /// <remarks>
/// Auto-generated field. /// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file. /// To modify move field declaration from designer file to code-behind file.
/// </remarks> /// </remarks>
protected global::WebsitePanel.Portal.Quota quotaWebSites; protected global::WebsitePanel.Portal.Quota quotaWebSites;
@ -527,7 +478,6 @@ namespace WebsitePanel.Portal {
/// <remarks> /// <remarks>
/// Auto-generated field. /// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file. /// To modify move field declaration from designer file to code-behind file.
/// </remarks> /// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlTableRow pnlFtpAccounts; protected global::System.Web.UI.HtmlControls.HtmlTableRow pnlFtpAccounts;
@ -537,7 +487,6 @@ namespace WebsitePanel.Portal {
/// <remarks> /// <remarks>
/// Auto-generated field. /// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file. /// To modify move field declaration from designer file to code-behind file.
/// </remarks> /// </remarks>
protected global::System.Web.UI.WebControls.Label lblFtpAccounts; protected global::System.Web.UI.WebControls.Label lblFtpAccounts;
@ -547,7 +496,6 @@ namespace WebsitePanel.Portal {
/// <remarks> /// <remarks>
/// Auto-generated field. /// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file. /// To modify move field declaration from designer file to code-behind file.
/// </remarks> /// </remarks>
protected global::WebsitePanel.Portal.Quota quotaFtpAccounts; protected global::WebsitePanel.Portal.Quota quotaFtpAccounts;
@ -557,7 +505,6 @@ namespace WebsitePanel.Portal {
/// <remarks> /// <remarks>
/// Auto-generated field. /// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file. /// To modify move field declaration from designer file to code-behind file.
/// </remarks> /// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlTableRow pnlDatabases; protected global::System.Web.UI.HtmlControls.HtmlTableRow pnlDatabases;
@ -567,7 +514,6 @@ namespace WebsitePanel.Portal {
/// <remarks> /// <remarks>
/// Auto-generated field. /// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file. /// To modify move field declaration from designer file to code-behind file.
/// </remarks> /// </remarks>
protected global::System.Web.UI.WebControls.Label lblDatabases; protected global::System.Web.UI.WebControls.Label lblDatabases;
@ -577,7 +523,6 @@ namespace WebsitePanel.Portal {
/// <remarks> /// <remarks>
/// Auto-generated field. /// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file. /// To modify move field declaration from designer file to code-behind file.
/// </remarks> /// </remarks>
protected global::WebsitePanel.Portal.Quota quotaDatabases; protected global::WebsitePanel.Portal.Quota quotaDatabases;
@ -587,7 +532,6 @@ namespace WebsitePanel.Portal {
/// <remarks> /// <remarks>
/// Auto-generated field. /// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file. /// To modify move field declaration from designer file to code-behind file.
/// </remarks> /// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlTableRow pnlHyperVForPC; protected global::System.Web.UI.HtmlControls.HtmlTableRow pnlHyperVForPC;
@ -597,7 +541,6 @@ namespace WebsitePanel.Portal {
/// <remarks> /// <remarks>
/// Auto-generated field. /// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file. /// To modify move field declaration from designer file to code-behind file.
/// </remarks> /// </remarks>
protected global::System.Web.UI.WebControls.Label lblHyperVForPC; protected global::System.Web.UI.WebControls.Label lblHyperVForPC;
@ -607,17 +550,69 @@ namespace WebsitePanel.Portal {
/// <remarks> /// <remarks>
/// Auto-generated field. /// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file. /// To modify move field declaration from designer file to code-behind file.
/// </remarks> /// </remarks>
protected global::WebsitePanel.Portal.Quota quotaNumberOfVm; protected global::WebsitePanel.Portal.Quota quotaNumberOfVm;
/// <summary>
/// pnlFolders control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlTableRow pnlFolders;
/// <summary>
/// lblFolders control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblFolders;
/// <summary>
/// quotaNumberOfFolders control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.Quota quotaNumberOfFolders;
/// <summary>
/// pnlEnterpriseStorage control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlTableRow pnlEnterpriseStorage;
/// <summary>
/// lblEnterpriseStorage control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblEnterpriseStorage;
/// <summary>
/// quotaEnterpriseStorage control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.Quota quotaEnterpriseStorage;
/// <summary> /// <summary>
/// btnViewQuotas control. /// btnViewQuotas control.
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// Auto-generated field. /// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file. /// To modify move field declaration from designer file to code-behind file.
/// </remarks> /// </remarks>
protected global::System.Web.UI.WebControls.Button btnViewQuotas; protected global::System.Web.UI.WebControls.Button btnViewQuotas;
} }