Ejemplo n.º 1
0
        public void CreateFolder(string organizationId, string folder, WebDavSetting setting)
        {
            var webDavSetting = GetWebDavSetting(setting);

            FileUtils.CreateDirectory(string.Format("{0}:\\{1}\\{2}\\{3}", webDavSetting.LocationDrive,
                                                    webDavSetting.HomeFolder, organizationId, folder));
        }
Ejemplo n.º 2
0
 public void DeleteFolder(string organizationId, string folder, WebDavSetting setting)
 {
     this.Invoke("DeleteFolder", new object[] {
         organizationId,
         folder,
         setting
     });
 }
Ejemplo n.º 3
0
 public SystemFile GetFolder(string organizationId, string folder, WebDavSetting setting)
 {
     object[] results = this.Invoke("GetFolder", new object[] {
         organizationId,
         folder,
         setting
     });
     return((SystemFile)(results[0]));
 }
Ejemplo n.º 4
0
        protected WebDavSetting GetWebDavSetting(WebDavSetting setting)
        {
            if (setting == null || setting.IsEmpty())
            {
                return(new WebDavSetting(LocationDrive, UsersHome, UsersDomain));
            }

            return(setting);
        }
Ejemplo n.º 5
0
 public bool SetFolderWebDavRules(string organizationId, string folder, WebDavSetting setting, WebDavFolderRule[] rules)
 {
     object[] results = this.Invoke("SetFolderWebDavRules", new object[] {
         organizationId,
         folder,
         setting,
         rules
     });
     return((bool)(results[0]));
 }
Ejemplo n.º 6
0
 /// <remarks/>
 public void GetFolderWebDavRulesAsync(string organizationId, string folder, WebDavSetting setting, object userState)
 {
     if ((this.GetFolderWebDavRulesOperationCompleted == null))
     {
         this.GetFolderWebDavRulesOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetFolderWebDavRulesOperationCompleted);
     }
     this.InvokeAsync("GetFolderWebDavRules", new object[] {
         organizationId,
         folder,
         setting
     }, this.GetFolderWebDavRulesOperationCompleted, userState);
 }
Ejemplo n.º 7
0
 public void DeleteFolder(string organizationId, string folder, WebDavSetting setting)
 {
     try
     {
         Log.WriteStart("'{0}' DeleteFolder", ProviderSettings.ProviderName);
         EnterpriseStorageProvider.DeleteFolder(organizationId, folder, setting);
         Log.WriteEnd("'{0}' DeleteFolder", ProviderSettings.ProviderName);
     }
     catch (Exception ex)
     {
         Log.WriteError(String.Format("'{0}' DeleteFolder", ProviderSettings.ProviderName), ex);
         throw;
     }
 }
Ejemplo n.º 8
0
 public SystemFile GetFolder(string organizationId, string folder, WebDavSetting setting)
 {
     try
     {
         Log.WriteStart("'{0}' GetFolder", ProviderSettings.ProviderName);
         SystemFile result = EnterpriseStorageProvider.GetFolder(organizationId, folder, setting);
         Log.WriteEnd("'{0}' GetFolder", ProviderSettings.ProviderName);
         return(result);
     }
     catch (Exception ex)
     {
         Log.WriteError(String.Format("'{0}' GetFolder", ProviderSettings.ProviderName), ex);
         throw;
     }
 }
Ejemplo n.º 9
0
 public bool SetFolderWebDavRules(string organizationId, string folder, WebDavSetting setting, Providers.Web.WebDavFolderRule[] rules)
 {
     try
     {
         Log.WriteStart("'{0}' SetFolderWebDavRules", ProviderSettings.ProviderName);
         bool bResult = EnterpriseStorageProvider.SetFolderWebDavRules(organizationId, folder, setting, rules);
         Log.WriteEnd("'{0}' SetFolderWebDavRules", ProviderSettings.ProviderName);
         return(bResult);
     }
     catch (Exception ex)
     {
         Log.WriteError(String.Format("'{0}' SetFolderWebDavRules", ProviderSettings.ProviderName), ex);
         throw;
     }
 }
Ejemplo n.º 10
0
        public bool SetFolderWebDavRules(string organizationId, string folder, WebDavSetting setting,
                                         WebDavFolderRule[] rules)
        {
            var users = new List <UserPermission>();

            foreach (var rule in rules)
            {
                foreach (var user in rule.Users)
                {
                    users.Add(new UserPermission
                    {
                        AccountName = user,
                        Read        = rule.Read,
                        Write       = rule.Write
                    });
                }

                foreach (var role in rule.Roles)
                {
                    users.Add(new UserPermission
                    {
                        AccountName = role,
                        Read        = rule.Read,
                        Write       = rule.Write
                    });
                }
            }

            var webDavSetting = GetWebDavSetting(setting);

            string path = string.Format("{0}:\\{1}\\{2}\\{3}", webDavSetting.LocationDrive, webDavSetting.HomeFolder,
                                        organizationId, folder);

            SecurityUtils.ResetNtfsPermissions(path);

            // 06.09.2015 [email protected]
            // Problem: Serversettings for the Method 'GrantGroupNtfsPermission' is an Default Object, but we need the real Object
            // for the real Settings, to determine Objects from AD
            // Fix: Give the Helper-Class SecurityUtils the real ServerSettings-Object
            // SecurityUtils.GrantGroupNtfsPermissions(path, users.ToArray(), false, new RemoteServerSettings(), null, null);
            SecurityUtils.GrantGroupNtfsPermissions(path, users.ToArray(), false, ServerSettings, "*", "*");

            IWebDav webdav = new WebDav(webDavSetting);

            return(webdav.SetFolderWebDavRules(organizationId, folder, rules));
        }
Ejemplo n.º 11
0
        public SystemFile RenameFolder(string organizationId, string originalFolder, string newFolder,
                                       WebDavSetting setting)
        {
            var webDavSetting = GetWebDavSetting(setting);

            var oldPath = string.Format("{0}:\\{1}\\{2}\\{3}", webDavSetting.LocationDrive, webDavSetting.HomeFolder,
                                        organizationId, originalFolder);
            var newPath = string.Format("{0}:\\{1}\\{2}\\{3}", webDavSetting.LocationDrive, webDavSetting.HomeFolder,
                                        organizationId, newFolder);

            FileUtils.MoveFile(oldPath, newPath);

            IWebDav webdav = new WebDav(webDavSetting);

            //deleting old folder rules
            webdav.DeleteAllWebDavRules(organizationId, originalFolder);

            return(GetFolder(organizationId, newFolder, webDavSetting));
        }
Ejemplo n.º 12
0
        public bool SetFolderWebDavRules(string organizationId, string folder, WebDavSetting setting,
                                         WebDavFolderRule[] rules)
        {
            var users = new List <UserPermission>();

            foreach (var rule in rules)
            {
                foreach (var user in rule.Users)
                {
                    users.Add(new UserPermission
                    {
                        AccountName = user,
                        Read        = rule.Read,
                        Write       = rule.Write
                    });
                }

                foreach (var role in rule.Roles)
                {
                    users.Add(new UserPermission
                    {
                        AccountName = role,
                        Read        = rule.Read,
                        Write       = rule.Write
                    });
                }
            }

            var webDavSetting = GetWebDavSetting(setting);

            string path = string.Format("{0}:\\{1}\\{2}\\{3}", webDavSetting.LocationDrive, webDavSetting.HomeFolder,
                                        organizationId, folder);

            SecurityUtils.ResetNtfsPermissions(path);
            SecurityUtils.GrantGroupNtfsPermissions(path, users.ToArray(), false, new RemoteServerSettings(), null, null);
            //SecurityUtils.GrantGroupNtfsPermissions(path, users.ToArray(), false, ServerSettings, "*", "*");

            IWebDav webdav = new WebDav(webDavSetting);

            return(webdav.SetFolderWebDavRules(organizationId, folder, rules));
        }
Ejemplo n.º 13
0
        public void DeleteFolder(string organizationId, string folder, WebDavSetting setting)
        {
            var webDavSetting = GetWebDavSetting(setting);

            string rootPath = string.Format("{0}:\\{1}\\{2}\\{3}", webDavSetting.LocationDrive, webDavSetting.HomeFolder,
                                            organizationId, folder);

            DirectoryInfo treeRoot = new DirectoryInfo(rootPath);

            if (treeRoot.Exists)
            {
                DirectoryInfo[] dirs = treeRoot.GetDirectories();
                while (dirs.Length > 0)
                {
                    foreach (DirectoryInfo dir in dirs)
                    {
                        DeleteFolder(organizationId,
                                     folder != string.Empty ? string.Format("{0}\\{1}", folder, dir.Name) : dir.Name,
                                     webDavSetting);
                    }

                    dirs = treeRoot.GetDirectories();
                }

                // DELETE THE FILES UNDER THE CURRENT ROOT
                string[] files = Directory.GetFiles(treeRoot.FullName);
                foreach (string file in files)
                {
                    File.SetAttributes(file, FileAttributes.Normal);
                    File.Delete(file);
                }

                IWebDav webdav = new WebDav(webDavSetting);

                webdav.DeleteAllWebDavRules(organizationId, folder);

                Directory.Delete(treeRoot.FullName, true);
            }
        }
Ejemplo n.º 14
0
        public SystemFile GetFolder(string organizationId, string folderName, WebDavSetting setting)
        {
            var webDavSetting = GetWebDavSetting(setting);

            string fullName = string.Format("{0}:\\{1}\\{2}\\{3}", webDavSetting.LocationDrive, webDavSetting.HomeFolder,
                                            organizationId, folderName);
            SystemFile folder = null;

            var windows = new SolidCP.Providers.OS.Windows2012();

            if (Directory.Exists(fullName))
            {
                DirectoryInfo root = new DirectoryInfo(fullName);

                folder = new SystemFile();

                folder.Name        = root.Name;
                folder.FullName    = root.FullName;
                folder.IsDirectory = true;

                Quota quota = windows.GetQuotaOnFolder(fullName, string.Empty, string.Empty);

                folder.Size = quota.Usage;

                if (folder.Size == -1)
                {
                    folder.Size = FileUtils.BytesToMb(FileUtils.CalculateFolderSize(root.FullName));
                }

                folder.Url           = string.Format("https://{0}/{1}/{2}", webDavSetting.Domain, organizationId, folderName);
                folder.Rules         = GetFolderWebDavRules(organizationId, folderName, webDavSetting);
                folder.FRSMQuotaMB   = quota.Size;
                folder.FRSMQuotaGB   = windows.ConvertMegaBytesToGB(folder.FRSMQuotaMB);
                folder.FsrmQuotaType = quota.QuotaType;
            }

            return(folder);
        }
Ejemplo n.º 15
0
 /// <remarks/>
 public void RenameFolderAsync(string organizationId, string originalFolder, string newFolder, WebDavSetting setting)
 {
     this.RenameFolderAsync(organizationId, originalFolder, newFolder, setting, null);
 }
Ejemplo n.º 16
0
 /// <remarks/>
 public void DeleteFolderAsync(string organizationId, string folder, WebDavSetting setting)
 {
     this.DeleteFolderAsync(organizationId, folder, setting, null);
 }
Ejemplo n.º 17
0
 /// <remarks/>
 public void SetFolderWebDavRulesAsync(string organizationId, string folder, WebDavSetting setting, WebDavFolderRule[] rules)
 {
     this.SetFolderWebDavRulesAsync(organizationId, folder, setting, rules, null);
 }
Ejemplo n.º 18
0
 public WebDavFolderRule[] GetFolderWebDavRules(string organizationId, string folder, WebDavSetting setting)
 {
     object[] results = this.Invoke("GetFolderWebDavRules", new object[] {
         organizationId,
         folder,
         setting
     });
     return((WebDavFolderRule[])(results[0]));
 }
Ejemplo n.º 19
0
        public WebDavFolderRule[] GetFolderWebDavRules(string organizationId, string folder, WebDavSetting setting)
        {
            var webDavSetting = GetWebDavSetting(setting);

            IWebDav webdav = new WebDav(webDavSetting);

            return(webdav.GetFolderWebDavRules(organizationId, folder));
        }
Ejemplo n.º 20
0
 /// <remarks/>
 public System.IAsyncResult BeginGetFolderWebDavRules(string organizationId, string folder, WebDavSetting setting, System.AsyncCallback callback, object asyncState)
 {
     return(this.BeginInvoke("GetFolderWebDavRules", new object[] {
         organizationId,
         folder,
         setting
     }, callback, asyncState));
 }
Ejemplo n.º 21
0
 /// <remarks/>
 public void GetFolderWebDavRulesAsync(string organizationId, string folder, WebDavSetting setting)
 {
     this.GetFolderWebDavRulesAsync(organizationId, folder, setting, null);
 }
Ejemplo n.º 22
0
 public Providers.Web.WebDavFolderRule[] GetFolderWebDavRules(string organizationId, string folder, WebDavSetting setting)
 {
     try
     {
         Log.WriteStart("'{0}' GetFolderWebDavRules", ProviderSettings.ProviderName);
         Providers.Web.WebDavFolderRule[] webDavFolderRule = EnterpriseStorageProvider.GetFolderWebDavRules(organizationId, folder, setting);
         Log.WriteEnd("'{0}' GetFolderWebDavRules", ProviderSettings.ProviderName);
         return(webDavFolderRule);
     }
     catch (Exception ex)
     {
         Log.WriteError(String.Format("'{0}' GetFolderWebDavRules", ProviderSettings.ProviderName), ex);
         throw;
     }
 }
Ejemplo n.º 23
0
 /// <remarks/>
 public System.IAsyncResult BeginRenameFolder(string organizationId, string originalFolder, string newFolder, WebDavSetting setting, System.AsyncCallback callback, object asyncState)
 {
     return(this.BeginInvoke("RenameFolder", new object[] {
         organizationId,
         originalFolder,
         newFolder,
         setting
     }, callback, asyncState));
 }
Ejemplo n.º 24
0
 public SystemFile RenameFolder(string organizationId, string originalFolder, string newFolder, WebDavSetting setting)
 {
     object[] results = this.Invoke("RenameFolder", new object[] {
         organizationId,
         originalFolder,
         newFolder,
         setting
     });
     return((SystemFile)(results[0]));
 }
Ejemplo n.º 25
0
 public SystemFile RenameFolder(string organizationId, string originalFolder, string newFolder, WebDavSetting setting)
 {
     try
     {
         Log.WriteStart("'{0}' RenameFolder", ProviderSettings.ProviderName);
         SystemFile systemFile = EnterpriseStorageProvider.RenameFolder(organizationId, originalFolder, newFolder, setting);
         Log.WriteEnd("'{0}' RenameFolder", ProviderSettings.ProviderName);
         return(systemFile);
     }
     catch (Exception ex)
     {
         Log.WriteError(String.Format("'{0}' RenameFolder", ProviderSettings.ProviderName), ex);
         throw;
     }
 }
Ejemplo n.º 26
0
 /// <remarks/>
 public void RenameFolderAsync(string organizationId, string originalFolder, string newFolder, WebDavSetting setting, object userState)
 {
     if ((this.RenameFolderOperationCompleted == null))
     {
         this.RenameFolderOperationCompleted = new System.Threading.SendOrPostCallback(this.OnRenameFolderOperationCompleted);
     }
     this.InvokeAsync("RenameFolder", new object[] {
         organizationId,
         originalFolder,
         newFolder,
         setting
     }, this.RenameFolderOperationCompleted, userState);
 }