Esempio n. 1
0
 private List <EditorRepositoryItem> GetChildDirectories(EditorRepositoryItem item)
 {
     return((from f in Manager.GetIQ <EditorRepositoryItem>()
             where f.IsDirectory && f.IdOwner == IdUser && IdUser > 0 && f.Deleted == BaseStatusDeleted.None &&
             ((item.Id == 0 && f.Folder == null) || (item.Id > 0 && f.Folder != null && f.Folder.Id == item.Id))
             select f).ToList().OrderBy(f => f.DisplayName).ToList());
 }
Esempio n. 2
0
        private void CopyItemInternal(String path, String newPath, String repositoryPath)
        {
            EditorRepositoryItem item   = this.GetItemRowFromPath(path);
            EditorRepositoryItem folder = this.GetParentFromPath(newPath);

            if (item.IsDirectory)
            {
                long idFolder = (folder == null) ? 0 :  folder.Id;
                EditorRepositoryItem cDirectory = AddDirectory(item.Name, (folder == null) ? 0 : idFolder);

                List <EditorRepositoryItem> children = (from c in Manager.GetIQ <EditorRepositoryItem>()
                                                        where c.Deleted == BaseStatusDeleted.None && ((idFolder == 0 && c.Folder == null) || (idFolder > 0 && c.Folder.Id == idFolder))
                                                        select c).ToList();
                foreach (EditorRepositoryItem child in children)
                {
                    CopyItemInternal(String.Format("{0}{1}{2}", this.TrimSeparator(path), pathSeparator, child.DisplayName), String.Format("{0}{1}{2}", newPath, pathSeparator, child.DisplayName), repositoryPath);
                }
            }
            else
            {
                EditorRepositoryItem clone = new EditorRepositoryItem();
                clone.IsDirectory = false;
                clone.Name        = item.Name;
                clone.Size        = item.Size;
                clone.Extension   = item.Extension;
                clone.IdCommunity = item.IdCommunity;
                clone.IdOwner     = item.IdOwner;
                clone.MimeType    = item.MimeType;
                clone.Identifyer  = Guid.NewGuid();
                lm.Comol.Core.File.Create.CopyFile_FM(repositoryPath + item.Identifyer.ToString() + ".stored", repositoryPath + clone.Identifyer.ToString() + ".stored");

                AddFile(clone, folder);
            }
        }
Esempio n. 3
0
        public Telerik.Web.UI.Widgets.FileItem[] GetChildFiles(String folderPath, String[] searchPatterns, String handlerPath)
        {
            EditorRepositoryItem parentFolder = GetItemRowFromPath(folderPath);

            List <EditorRepositoryItem> files = null;

            if (parentFolder != null)
            {
                files = (from f in Manager.GetIQ <EditorRepositoryItem>()
                         where f.Deleted == BaseStatusDeleted.None && f.IdOwner == IdUser && !f.IsDirectory &&
                         f.Folder.Id == parentFolder.Id
                         select f).ToList();
            }
            else
            {
                files = (from f in Manager.GetIQ <EditorRepositoryItem>()
                         where f.Deleted == BaseStatusDeleted.None && f.IdOwner == IdUser && !f.IsDirectory && f.Folder == null
                         select f).ToList();
            }
            if (searchPatterns.Length > 0 && Array.IndexOf(searchPatterns, "*.*") == -1)
            {
                files = files.Where(f => searchPatterns.Contains("*" + f.Extension)).ToList();
            }

            List <Telerik.Web.UI.Widgets.FileItem> result = new List <Telerik.Web.UI.Widgets.FileItem>(files.Count);

            foreach (EditorRepositoryItem f in files.OrderBy(f => f.DisplayName).ToList())
            {
                result.Add(this.CreateFileItem(f, handlerPath));
            }

            return(result.ToArray());
        }
Esempio n. 4
0
        private String GetFullPath(EditorRepositoryItem item)
        {
            if (item.DisplayName != "/")
            {
                String path = item.DisplayName;
                if (item.IsDirectory && path != "" && path != "/")
                {
                    path += pathSeparator;
                }

                do
                {
                    EditorRepositoryItem parentSearch = (item.Folder != null) ? item.Folder : new EditorRepositoryItem()
                    {
                        Name = ""
                    };

                    if (parentSearch != null)
                    {
                        item = parentSearch;
                        path = String.Format("{0}{1}{2}", item.DisplayName, pathSeparator, path);
                    }
                } while (item.Folder != null);
                return(path.StartsWith("/") ? path : "/" + path);
            }
            else
            {
                return("/");
            }
        }
Esempio n. 5
0
        private EditorRepositoryItem AddFile(EditorRepositoryItem item, EditorRepositoryItem folder)
        {
            EditorRepositoryItem file = item;

            try
            {
                Manager.BeginTransaction();
                Person p = Manager.GetPerson(UC.CurrentUserID);
                if (p != null && item != null)
                {
                    file             = new EditorRepositoryItem();
                    file.Name        = item.Name;
                    file.Size        = item.Size;
                    file.MimeType    = item.MimeType;
                    file.Description = item.Description;
                    file.Extension   = item.Extension;
                    file.Identifyer  = item.Identifyer;
                    file.CreateMetaInfo(p, UC.IpAddress, UC.ProxyIpAddress);
                    file.IdOwner     = IdUser;
                    file.IdCommunity = IdCommunity;
                    file.IsDirectory = false;
                    file.Folder      = folder;
                    Manager.SaveOrUpdate(file);
                }
                Manager.Commit();
            }
            catch (Exception ex)
            {
                Manager.RollBack();
                file = null;
            }
            return(file);
        }
Esempio n. 6
0
        //private string AddItem(String name, int parentId, string mimeType, Boolean isDirectory, long size, byte[] content)
        //{
        //    try
        //    {
        //        SqlConnection connection = this.GetConnection(this.connectionString);

        //        SqlCommand command =
        //            new SqlCommand(
        //                "INSERT INTO Items ([Name], ParentId, MimeType, IsDirectory, [Size], Content) VALUES (@Name, @ParentId, @MimeType, @IsDirectory, @Size, @Content)", connection);
        //        command.Parameters.Add(new SqlParameter("@Name", name));
        //        command.Parameters.Add(new SqlParameter("@ParentId", parentId));
        //        command.Parameters.Add(new SqlParameter("@MimeType", mimeType));
        //        command.Parameters.Add(new SqlParameter("@IsDirectory", isDirectory));
        //        command.Parameters.Add(new SqlParameter("@Size", size));
        //        command.Parameters.Add(new SqlParameter("@Content", content));

        //        using (connection)
        //        {
        //            connection.Open();
        //            command.ExecuteNonQuery();
        //            this._data = null; //force update
        //        }

        //        return String.Empty;
        //    }
        //    catch (Exception e)
        //    {
        //        return e.Message;
        //    }
        //}

        private EditorRepositoryItem AddDirectory(String name, long?idFolder)
        {
            EditorRepositoryItem folder = null;

            try
            {
                Manager.BeginTransaction();
                Person p = Manager.GetPerson(UC.CurrentUserID);
                if (p != null)
                {
                    folder = new EditorRepositoryItem();
                    folder.CreateMetaInfo(p, UC.IpAddress, UC.ProxyIpAddress);
                    folder.IdOwner     = IdUser;
                    folder.IdCommunity = IdCommunity;
                    folder.IsDirectory = true;
                    folder.Name        = name;
                    folder.Identifyer  = Guid.NewGuid();
                    if (idFolder.HasValue)
                    {
                        folder.Folder = Manager.Get <EditorRepositoryItem>(idFolder.Value);
                    }

                    Manager.SaveOrUpdate(folder);
                }
                Manager.Commit();
            }
            catch (Exception ex)
            {
                Manager.RollBack();
            }
            return(folder);
        }
Esempio n. 7
0
 public void DeleteItem(String path)
 {
     try
     {
         Manager.BeginTransaction();
         Person p      = Manager.GetPerson(UC.CurrentUserID);
         long?  itemId = GetItemIdFromPath(path);
         if (itemId.HasValue && p != null)
         {
             EditorRepositoryItem item = Manager.Get <EditorRepositoryItem>(itemId.Value);
             if (item != null && item.IsDirectory)
             {
                 item.UpdateMetaInfo(p, UC.IpAddress, UC.ProxyIpAddress);
                 item.Deleted = BaseStatusDeleted.Manual;
                 Manager.SaveOrUpdate(item);
             }
             else if (item != null)
             {
                 item.UpdateMetaInfo(p, UC.IpAddress, UC.ProxyIpAddress);
                 item.Deleted = BaseStatusDeleted.Manual;
                 Manager.SaveOrUpdate(item);
             }
         }
         Manager.Commit();
     }
     catch (Exception ex) {
         Manager.RollBack();
     }
 }
Esempio n. 8
0
        private Telerik.Web.UI.Widgets.DirectoryItem CreateDirectoryItem(EditorRepositoryItem item, Boolean includeSubfolders)
        {
            Telerik.Web.UI.Widgets.DirectoryItem directory = new Telerik.Web.UI.Widgets.DirectoryItem(item.DisplayName,
                                                                                                      this.GetLoaction(item),
                                                                                                      this.GetFullPath(item),
                                                                                                      String.Empty,
                                                                                                      (item.IdOwner == IdUser) ? Telerik.Web.UI.Widgets.PathPermissions.Read | Telerik.Web.UI.Widgets.PathPermissions.Delete | Telerik.Web.UI.Widgets.PathPermissions.Upload : Telerik.Web.UI.Widgets.PathPermissions.Read, //correct permissions should be applied from the content provider

                                                                                                      null, null
                                                                                                      );

            if (includeSubfolders)
            {
                List <EditorRepositoryItem> subDirItems             = GetChildDirectories(item);
                List <Telerik.Web.UI.Widgets.DirectoryItem> subDirs = new List <Telerik.Web.UI.Widgets.DirectoryItem>();

                foreach (EditorRepositoryItem subDir in subDirItems)
                {
                    subDirs.Add(CreateDirectoryItem(subDir, false));
                }

                directory.Directories = subDirs.ToArray();
            }

            return(directory);
        }
Esempio n. 9
0
        public String GetPath(String path)
        {
            EditorRepositoryItem item = this.GetItemRowFromPath(path);

            if (item == null)
            {
                item = GetParentFromPath(path);
            }

            return(item.IsDirectory ? GetFullPath(item) : GetLoaction(item));
        }
Esempio n. 10
0
        public EditorRepositoryItem GetItem(System.Guid idItem)
        {
            EditorRepositoryItem item = null;

            try
            {
                item = (from f in Manager.GetIQ <EditorRepositoryItem>() where f.Identifyer == idItem select f).Skip(0).Take(1).ToList().FirstOrDefault();
            }
            catch (Exception ex) { }
            return(item);
        }
Esempio n. 11
0
        private EditorRepositoryItem GetItemRowFromPath(String path)
        {
            EditorRepositoryItem item = null;
            long?itemId = GetItemIdFromPath(path);

            if (itemId != null)
            {
                item = Manager.Get <EditorRepositoryItem>(itemId.Value);
            }

            return(item);
        }
Esempio n. 12
0
        //private String GetSearchPatternsFilter(String[] searchPatterns)
        //{
        //    if (Array.IndexOf(searchPatterns, "*.*") > -1)
        //        return String.Empty;


        //    String searchPatterntsFilterExpression = " AND (Name LIKE '%";
        //    for (int i = 0; i < searchPatterns.Length; i++)
        //    {
        //        searchPatterntsFilterExpression += searchPatterns[i].Substring(searchPatterns[i].LastIndexOf('.'));
        //        if (i < searchPatterns.Length - 1)
        //            searchPatterntsFilterExpression += "' OR Name LIKE '%";
        //        else
        //            searchPatterntsFilterExpression += "')";
        //    }

        //    return searchPatterntsFilterExpression;
        //}

        private Telerik.Web.UI.Widgets.FileItem CreateFileItem(EditorRepositoryItem item, String handlerPath)
        {
            string itemPath = this.GetFullPath(item);

            return(new Telerik.Web.UI.Widgets.FileItem(item.DisplayName,
                                                       item.Extension,
                                                       item.Size,
                                                       itemPath,
                                                       GetItemUrl(itemPath, handlerPath, item.Identifyer),
                                                       String.Empty,
                                                       (item.IdOwner == IdUser) ? Telerik.Web.UI.Widgets.PathPermissions.Read | Telerik.Web.UI.Widgets.PathPermissions.Delete : Telerik.Web.UI.Widgets.PathPermissions.Read
                                                       ));
        }
Esempio n. 13
0
        private String GetLoaction(EditorRepositoryItem item)
        {
            if (item.Folder == null || item.DisplayName == "/")
            {
                return(String.Empty);
            }
            else
            {
                EditorRepositoryItem parentFolder = (from f in Manager.GetIQ <EditorRepositoryItem>()
                                                     where f.IsDirectory && f.IdOwner == IdUser && IdUser > 0 && f.Deleted == BaseStatusDeleted.None &&
                                                     f.Id == item.Folder.Id
                                                     select f).Skip(0).Take(1).ToList().FirstOrDefault();

                return((parentFolder != null) ? GetFullPath(parentFolder) : "");
            }
        }
Esempio n. 14
0
        public void UpdateItem(String path, String newPath)
        {
            String oldName = this.GetName(path);
            String newName = this.GetName(newPath);


            long?idItem = GetItemIdFromPath(path);

            if (idItem.HasValue && idItem.Value > 0)
            {
                try
                {
                    Manager.BeginTransaction();
                    EditorRepositoryItem item = Manager.Get <EditorRepositoryItem>(idItem.Value);
                    Person p = Manager.GetPerson(UC.CurrentUserID);
                    if (p != null && item != null)
                    {
                        item.UpdateMetaInfo(p, UC.IpAddress, UC.ProxyIpAddress);
                        if (oldName == newName)
                        {
                            EditorRepositoryItem newParent = this.GetParentFromPath(newPath);
                            if (newParent != null && newParent.Id > 0)
                            {
                                item.Folder = newParent;
                            }
                            else
                            {
                                item.Folder = null;
                            }
                        }
                        else
                        {
                            item.Name = newName;
                        }
                        Manager.SaveOrUpdate(item);
                    }
                    Manager.Commit();
                }
                catch (Exception ex) {
                    Manager.RollBack();
                }
            }
        }
Esempio n. 15
0
        public Telerik.Web.UI.Widgets.DirectoryItem GetDirectoryItem(String path, Boolean includeSubfolders)
        {
            EditorRepositoryItem item = null;

            //long idFolder = -1;
            if (!String.IsNullOrEmpty(path) && path != "/")
            {
                item = GetItemRowFromPath(path);
                //  idFolder = (item != null) ? item.Id : -1;
                return((item != null && item.IsDirectory) ? CreateDirectoryItem(item, includeSubfolders) : null);
            }
            else
            {
                EditorRepositoryItem rFolder = new EditorRepositoryItem()
                {
                    Id = 0, IdOwner = IdUser, IsDirectory = true, Name = "/"
                };
                return(CreateDirectoryItem(rFolder, includeSubfolders));
            }

            //else
            //{
            //    List <EditorRepositoryItem> folders = (from f in Manager.GetIQ<EditorRepositoryItem>()
            //            where f.IsDirectory && f.IdOwner == IdUser && IdUser > 0 && f.Deleted == BaseStatusDeleted.None
            //            && f.Folder==null orderby f.Name select f).ToList();

            //    Telerik.Web.UI.Widgets.DirectoryItem directory = new Telerik.Web.UI.Widgets.DirectoryItem(item.Name,
            //                                          "",
            //                                          "",
            //                                          String.Empty,
            //                                          (UC.CurrentUserID == IdUser) ? Telerik.Web.UI.Widgets.PathPermissions.Read | Telerik.Web.UI.Widgets.PathPermissions.Delete | Telerik.Web.UI.Widgets.PathPermissions.Upload : Telerik.Web.UI.Widgets.PathPermissions.Read, //correct permissions should be applied from the content provider
            //                                          null, null
            //                                          );
            //    directory
            //}
        }
Esempio n. 16
0
        public String GetLocation(String path)
        {
            EditorRepositoryItem item = this.GetItemRowFromPath(path);

            return(this.GetLoaction(item));
        }
Esempio n. 17
0
        public Boolean ItemExists(String path)
        {
            EditorRepositoryItem item = this.GetItemRowFromPath(path);

            return(!Object.Equals(item, null));
        }
Esempio n. 18
0
        public EditorRepositoryItem StoreFile(EditorRepositoryItem item, String location)
        {
            EditorRepositoryItem parent = this.GetItemRowFromPath(location);

            return(AddFile(item, parent));
        }
Esempio n. 19
0
        public String CreateDirectory(String name, String location)
        {
            EditorRepositoryItem folder = AddDirectory(name, this.GetItemIdFromPath(location));

            return((folder == null) ? String.Empty : name);
        }
Esempio n. 20
0
 public byte[] GetItemContent(EditorRepositoryItem item, String storePath)
 {
     return(item != null?lm.Comol.Core.File.ContentOf.File_ToByteArray(storePath + item.Identifyer.ToString() + ".stored") : null);
 }
Esempio n. 21
0
        public byte[] GetItemContent(String path, String storePath)
        {
            EditorRepositoryItem item = GetItemRowFromPath(path);

            return((item != null && !item.IsDirectory)  ? GetItemContent(item, storePath) : null);
        }
Esempio n. 22
0
        public Telerik.Web.UI.Widgets.FileItem GetFileItem(String path, String handlerPath)
        {
            EditorRepositoryItem item = this.GetItemRowFromPath(path);

            return(this.CreateFileItem(item, handlerPath));
        }