Exemplo n.º 1
0
        private FolderStructureFolder GetChild(Guid?ParentGuid, FolderStructureFolder parent, IEnumerable <FolderStructureFolder> lst)
        {
            var children = lst.Where(c => c.ParentGuid == parent.FolderStructureFolderGuid).ToList();

            foreach (var f in children)
            {
                parent.Children.Add(f);
                GetChild(f.ParentGuid, f, lst);
            }
            return(parent);
        }
Exemplo n.º 2
0
        public FolderStructureFolder GetFolderTree(Guid FolderStructureMasterGuid)
        {
            var sql     = "select * from FolderStructureFolder Where FolderStructureMasterGuid=@FolderStructureMasterGuid";
            var folders = _context.Connection.Query <FolderStructureFolder>(sql, new { FolderStructureMasterGuid });
            FolderStructureFolder rootFolder = new FolderStructureFolder();
            var root = folders.Where(c => c.ParentGuid == Guid.Empty).ToList();

            rootFolder.Name = "Root";
            GetChild(rootFolder.FolderStructureFolderGuid, rootFolder, folders);
            return(rootFolder);
        }
Exemplo n.º 3
0
        public FolderStructureFolder GetFolderTree(string Module)
        {
            var sql     = "select * from FolderStructureFolder Where Module=@Module and status=1";
            var folders = _context.Connection.Query <FolderStructureFolder>(sql, new { Module });
            FolderStructureFolder rootFolder = new FolderStructureFolder();
            var root = folders.Where(c => c.ParentGuid == null).ToList();

            if (root.Count > 0)
            {
                rootFolder = root[0];
                return(GetChild(null, rootFolder, folders));
            }
            else
            {
                return(rootFolder);
            }
        }
        private void ManageChildFolderStructure(Guid ParentGuid, FolderStructureFolder entity, string resourceType, Guid resourceGuid, Guid createdBy, string parentFolder)
        {
            var documentRoot = _configuration.GetSection("Document:DocumentRoot").Value;

            foreach (var c in entity.Children)
            {
                var path         = string.Concat(documentRoot, parentFolder, "/", c.Name);
                var relativePath = path.Replace(documentRoot, "");
                if (!Directory.Exists(path))
                {
                    Directory.CreateDirectory(path);
                }
                var doc = new DocumentEntity
                {
                    CreatedBy                = createdBy,
                    CreatedOn                = DateTime.UtcNow,
                    Description              = c.Description,
                    FilePath                 = relativePath,
                    FileSize                 = "0",
                    IsActive                 = true,
                    IsCsv                    = false,
                    IsDeleted                = false,
                    IsFile                   = false,
                    IsReadOnly               = true,
                    Keys                     = c.Keys,
                    ResourceType             = resourceType,
                    MasterFolderGuid         = c.FolderStructureFolderGuid,
                    MasterStructureGuid      = c.FolderStructureMasterGuid,
                    MimeType                 = "Folder",
                    ParentId                 = ParentGuid,
                    ResourceGuid             = resourceGuid,
                    Type                     = "Folder",
                    UpdatedBy                = createdBy,
                    UpdatedOn                = DateTime.UtcNow,
                    UploadFileName           = c.Name,
                    UploadUniqueFileName     = c.Name,
                    ContractResourceFileGuid = Guid.NewGuid()
                };
                CreateFileOrFolder(doc);
                Directory.CreateDirectory(documentRoot + doc.FilePath);
                ManageChildFolderStructure(doc.ContractResourceFileGuid, c, resourceType, resourceGuid, createdBy, relativePath);
            }
        }
        public void ManageDefaultStructure(string parentFolder, string projectNumber, FolderStructureFolder templateFolder, string resourceType, Guid resourceGuid, Guid createdBy)
        {
            int i            = 0;
            var entity       = templateFolder;
            var documentRoot = _configuration.GetSection("Document:DocumentRoot").Value;

            projectNumber = !string.IsNullOrWhiteSpace(projectNumber) ? projectNumber.Trim() : string.Concat("(NotProvided)", "-", parentFolder);
            var relativePath = "/" + projectNumber;


            var doc = new DocumentEntity
            {
                CreatedBy                = createdBy,
                CreatedOn                = DateTime.UtcNow,
                Description              = entity.Description,
                FilePath                 = relativePath,
                FileSize                 = "0",
                IsActive                 = true,
                IsCsv                    = false,
                IsDeleted                = false,
                IsFile                   = false,
                IsReadOnly               = true,
                ResourceType             = resourceType,
                Keys                     = resourceType,
                MimeType                 = "Folder",
                ResourceGuid             = resourceGuid,
                UpdatedBy                = createdBy,
                UpdatedOn                = DateTime.UtcNow,
                UploadFileName           = projectNumber,
                UploadUniqueFileName     = projectNumber,
                ContractResourceFileGuid = Guid.NewGuid()
            };

            CreateFileOrFolder(doc);

            if (i == 0)
            {
                //Create base folder by resource guid..
                relativePath = "/" + projectNumber;
                i++;
            }
            else
            {
                relativePath = "/" + projectNumber;
                i++;
            }

            Directory.CreateDirectory(documentRoot + relativePath);
            ManageChildFolderStructure(doc.ContractResourceFileGuid, entity, resourceType, resourceGuid, createdBy, relativePath);
        }