From ff9e257362c422903c9d9d1994e7b56d1623ff4c Mon Sep 17 00:00:00 2001 From: vfedosevich Date: Fri, 8 Nov 2013 18:44:45 +0300 Subject: [PATCH] fixed bugs --- .../Windows2012.cs | 52 +++++++++++-------- .../WebDav.cs | 13 +++-- .../EnterpriseStorageCreateFolder.ascx.resx | 2 +- .../EnterpriseStorageCreateFolder.ascx | 4 +- .../EnterpriseStorageCreateFolder.ascx.cs | 9 ---- ...rpriseStorageCreateFolder.ascx.designer.cs | 9 ---- ...rpriseStorageFolderGeneralSettings.ascx.cs | 2 +- .../EnterpriseStorageFolders.ascx | 2 - .../EnterpriseStorageFolders.ascx.cs | 4 -- .../EnterpriseStorageFolders.ascx.designer.cs | 9 ---- .../EnterpriseStorage_Settings.ascx.resx | 5 +- .../EnterpriseStorage_Settings.ascx | 13 +---- .../EnterpriseStorage_Settings.ascx.cs | 22 +++++--- ...nterpriseStorage_Settings.ascx.designer.cs | 27 ---------- 14 files changed, 55 insertions(+), 118 deletions(-) diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.EnterpriseStorage.Windows2012/Windows2012.cs b/WebsitePanel/Sources/WebsitePanel.Providers.EnterpriseStorage.Windows2012/Windows2012.cs index 8ac0996f..948d93fa 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.EnterpriseStorage.Windows2012/Windows2012.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.EnterpriseStorage.Windows2012/Windows2012.cs @@ -64,29 +64,34 @@ namespace WebsitePanel.Providers.EnterpriseStorage #region Folders public SystemFile[] GetFolders(string organizationId) { - string rootPath = string.Format("{0}:\\{1}\\{2}", LocationDrive, UsersHome, organizationId); - - DirectoryInfo root = new DirectoryInfo(rootPath); - IWebDav webdav = new Web.WebDav(UsersDomain); - ArrayList items = new ArrayList(); + string rootPath = string.Format("{0}:\\{1}\\{2}", LocationDrive, UsersHome, organizationId); - // get directories - DirectoryInfo[] dirs = root.GetDirectories(); - foreach (DirectoryInfo dir in dirs) + if (Directory.Exists(rootPath)) { - string fullName = System.IO.Path.Combine(rootPath, dir.Name); - SystemFile folder = new SystemFile(dir.Name, fullName, true, - FileUtils.BytesToMb(FileUtils.CalculateFolderSize(dir.FullName)), dir.CreationTime, dir.LastWriteTime); + DirectoryInfo root = new DirectoryInfo(rootPath); + IWebDav webdav = new Web.WebDav(UsersDomain); - folder.Url = string.Format("https://{0}/{1}/{2}", UsersDomain, organizationId, dir.Name); - folder.Rules = webdav.GetFolderWebDavRules(organizationId, dir.Name); - items.Add(folder); - // check if the directory is empty - folder.IsEmpty = (Directory.GetFileSystemEntries(fullName).Length == 0); + // get directories + DirectoryInfo[] dirs = root.GetDirectories(); + foreach (DirectoryInfo dir in dirs) + { + string fullName = System.IO.Path.Combine(rootPath, dir.Name); + + SystemFile folder = new SystemFile(dir.Name, fullName, true, + FileUtils.BytesToMb(FileUtils.CalculateFolderSize(dir.FullName)), dir.CreationTime, dir.LastWriteTime); + + folder.Url = string.Format("https://{0}/{1}/{2}", UsersDomain, organizationId, dir.Name); + folder.Rules = webdav.GetFolderWebDavRules(organizationId, dir.Name); + + items.Add(folder); + + // check if the directory is empty + folder.IsEmpty = (Directory.GetFileSystemEntries(fullName).Length == 0); + } } return (SystemFile[])items.ToArray(typeof(SystemFile)); @@ -95,15 +100,18 @@ namespace WebsitePanel.Providers.EnterpriseStorage public SystemFile GetFolder(string organizationId, string folderName) { string fullName = string.Format("{0}:\\{1}\\{2}\\{3}", LocationDrive, UsersHome, organizationId, folderName); + SystemFile folder = new SystemFile(); - DirectoryInfo root = new DirectoryInfo(fullName); - - SystemFile folder = new SystemFile(root.Name, fullName, true, - FileUtils.BytesToMb( FileUtils.CalculateFolderSize(root.FullName)), root.CreationTime, root.LastWriteTime); + if (Directory.Exists(fullName)) + { + DirectoryInfo root = new DirectoryInfo(fullName); - folder.Url = string.Format("https://{0}/{1}/{2}", UsersDomain, organizationId, folderName); - folder.Rules = GetFolderWebDavRules(organizationId, folderName); + folder = new SystemFile(root.Name, fullName, true, + FileUtils.BytesToMb(FileUtils.CalculateFolderSize(root.FullName)), root.CreationTime, root.LastWriteTime); + folder.Url = string.Format("https://{0}/{1}/{2}", UsersDomain, organizationId, folderName); + folder.Rules = GetFolderWebDavRules(organizationId, folderName); + } return folder; } diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Web.WebDav/WebDav.cs b/WebsitePanel/Sources/WebsitePanel.Providers.Web.WebDav/WebDav.cs index 3c60b5f6..36610f03 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.Web.WebDav/WebDav.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.Web.WebDav/WebDav.cs @@ -109,11 +109,14 @@ namespace WebsitePanel.Providers.Web ConfigurationElementCollection authoringRulesCollection = authoringRulesSection.GetCollection(); var rules = new List(); - - foreach (var rule in authoringRulesCollection) + try { - rules.Add(rule.ToWebDavFolderRule()); + foreach (var rule in authoringRulesCollection) + { + rules.Add(rule.ToWebDavFolderRule()); + } } + catch { } return rules.ToArray(); } @@ -128,10 +131,6 @@ namespace WebsitePanel.Providers.Web { Configuration config = serverManager.GetApplicationHostConfiguration(); - //ConfigurationSection authoringRulesSection = config.GetSection("system.webServer/webdav/authoringRules", string.Format("{0}/{1}/{2}", _usersDomain, organizationId, folder)); - - //ConfigurationElementCollection authoringRulesCollection = authoringRulesSection.GetCollection(); - //authoringRulesCollection.Clear(); config.RemoveLocationPath(string.Format("{0}/{1}/{2}", _usersDomain, organizationId, folder)); serverManager.CommitChanges(); diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/EnterpriseStorageCreateFolder.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/EnterpriseStorageCreateFolder.ascx.resx index 197e2094..82a41d20 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/EnterpriseStorageCreateFolder.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/EnterpriseStorageCreateFolder.ascx.resx @@ -139,6 +139,6 @@ * - Create New Folder In + Create New Folder \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageCreateFolder.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageCreateFolder.ascx index af4e4960..396fa46e 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageCreateFolder.ascx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageCreateFolder.ascx @@ -19,9 +19,7 @@
- - - +
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageCreateFolder.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageCreateFolder.ascx.cs index 45fcd5dd..bfe407d3 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageCreateFolder.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageCreateFolder.ascx.cs @@ -35,15 +35,6 @@ namespace WebsitePanel.Portal.ExchangeServer { public partial class EnterpriseStorageCreateFolder : WebsitePanelModuleBase { - protected void Page_Load(object sender, EventArgs e) - { - if (!IsPostBack) - { - Organization org = ES.Services.Organizations.GetOrganization(PanelRequest.ItemID); - - litRootFolder.Text = org.OrganizationId; - } - } protected void btnCreate_Click(object sender, EventArgs e) { diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageCreateFolder.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageCreateFolder.ascx.designer.cs index c701ed96..340ba6c0 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageCreateFolder.ascx.designer.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageCreateFolder.ascx.designer.cs @@ -57,15 +57,6 @@ namespace WebsitePanel.Portal.ExchangeServer { /// protected global::System.Web.UI.WebControls.Localize locTitle; - /// - /// litRootFolder control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::System.Web.UI.WebControls.Literal litRootFolder; - /// /// messageBox control. /// diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageFolderGeneralSettings.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageFolderGeneralSettings.ascx.cs index 5bdc930f..74b6bdfc 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageFolderGeneralSettings.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageFolderGeneralSettings.ascx.cs @@ -64,7 +64,7 @@ namespace WebsitePanel.Portal.ExchangeServer SystemFile folder = ES.Services.EnterpriseStorage.GetEnterpriseFolder( PanelRequest.ItemID, PanelRequest.FolderID); - litFolderName.Text = string.Format("{0}\\{1}", org.OrganizationId, folder.Name); + litFolderName.Text = string.Format("{0}", folder.Name); // bind form txtFolderName.Text = folder.Name; diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageFolders.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageFolders.ascx index eff151eb..4070ea3d 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageFolders.ascx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageFolders.ascx @@ -20,8 +20,6 @@
- -
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageFolders.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageFolders.ascx.cs index aad611fc..04bee17f 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageFolders.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageFolders.ascx.cs @@ -41,10 +41,6 @@ namespace WebsitePanel.Portal.ExchangeServer { if (!IsPostBack) { - Organization org = ES.Services.Organizations.GetOrganization(PanelRequest.ItemID); - - litRootFolder.Text = org.OrganizationId; - BindEnterpriseStorageStats(); } } diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageFolders.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageFolders.ascx.designer.cs index 4c91f0f0..22f89785 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageFolders.ascx.designer.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageFolders.ascx.designer.cs @@ -57,15 +57,6 @@ namespace WebsitePanel.Portal.ExchangeServer { /// protected global::System.Web.UI.WebControls.Localize locTitle; - /// - /// litRootFolder control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::System.Web.UI.WebControls.Literal litRootFolder; - /// /// messageBox control. /// diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/App_LocalResources/EnterpriseStorage_Settings.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/App_LocalResources/EnterpriseStorage_Settings.ascx.resx index 9695a9e9..304ec438 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/App_LocalResources/EnterpriseStorage_Settings.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/App_LocalResources/EnterpriseStorage_Settings.ascx.resx @@ -120,11 +120,8 @@ Enable Hard Quota: - - Location Drive: - - Enterprise Storage Folder: + Enterprise Storage Path: Enterprise Storage Domain: diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/EnterpriseStorage_Settings.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/EnterpriseStorage_Settings.ascx index c731bd46..683e39f9 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/EnterpriseStorage_Settings.ascx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/EnterpriseStorage_Settings.ascx @@ -2,7 +2,7 @@ @@ -17,17 +17,6 @@ ErrorMessage="*"> - - - -
- +
- - - - - -
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/EnterpriseStorage_Settings.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/EnterpriseStorage_Settings.ascx.cs index f448c56d..68d286a5 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/EnterpriseStorage_Settings.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/EnterpriseStorage_Settings.ascx.cs @@ -49,8 +49,7 @@ namespace WebsitePanel.Portal.ProviderControls try { chkEnableHardQuota.Enabled = ES.Services.EnterpriseStorage.CheckFileServicesInstallation(PanelRequest.ServiceId); - txtLocationDrive.Enabled = chkEnableHardQuota.Enabled; - valLocationDrive.Enabled = chkEnableHardQuota.Enabled; + txtFolder.Enabled = chkEnableHardQuota.Enabled; if (!chkEnableHardQuota.Enabled) lblFileServiceInfo.Visible = true; } @@ -62,18 +61,25 @@ namespace WebsitePanel.Portal.ProviderControls public void BindSettings(StringDictionary settings) { - txtFolder.Text = settings["UsersHome"]; - txtLocationDrive.Text = settings["LocationDrive"]; + string path = string.Format("{0}:\\{1}", settings["LocationDrive"], settings["UsersHome"]); + + txtFolder.Text = path; txtDomain.Text = settings["UsersDomain"]; chkEnableHardQuota.Checked = settings["EnableHardQuota"] == "true" ? true : false; } public void SaveSettings(StringDictionary settings) { - settings["UsersHome"] = txtFolder.Text; - settings["LocationDrive"] = txtLocationDrive.Text; - settings["UsersDomain"] = txtDomain.Text; - settings["EnableHardQuota"] = chkEnableHardQuota.Checked.ToString().ToLower(); + var drive = System.IO.Path.GetPathRoot(txtFolder.Text); + var folder = txtFolder.Text.Replace(drive, string.Empty); + + if (!string.IsNullOrEmpty(drive) && !string.IsNullOrEmpty(folder)) + { + settings["LocationDrive"] = drive.Split(':')[0]; + settings["UsersHome"] = folder; + settings["UsersDomain"] = txtDomain.Text; + settings["EnableHardQuota"] = chkEnableHardQuota.Checked.ToString().ToLower(); + } } } } \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/EnterpriseStorage_Settings.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/EnterpriseStorage_Settings.ascx.designer.cs index a06c075c..24775401 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/EnterpriseStorage_Settings.ascx.designer.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ProviderControls/EnterpriseStorage_Settings.ascx.designer.cs @@ -57,33 +57,6 @@ namespace WebsitePanel.Portal.ProviderControls { /// protected global::System.Web.UI.WebControls.RequiredFieldValidator valDomain; - /// - /// lblLocationDrive control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::System.Web.UI.WebControls.Label lblLocationDrive; - - /// - /// txtLocationDrive control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::System.Web.UI.WebControls.TextBox txtLocationDrive; - - /// - /// valLocationDrive control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::System.Web.UI.WebControls.RequiredFieldValidator valLocationDrive; - /// /// chkEnableHardQuota control. ///