Ejemplo n.º 1
0
        public FolderInfoModel RenameFolder(FolderInfoModel folder, string newFolderName)
        {
            var dir         = GetFolderInfo(folder);
            var newFullPath = GetFullPath(GetOriginalPath(newFolderName, folder.DocumentType, folder.DocumentId));

            try
            {
                if (string.Equals(dir.FullName, newFullPath, StringComparison.CurrentCultureIgnoreCase))
                {
                    var newTempFullPath =
                        GetFullPath(GetOriginalPath(GetTempName(dir.Name), folder.DocumentType, folder.DocumentId));
                    dir.MoveTo(newTempFullPath);
                }
                dir.CreationTimeUtc = DateTime.UtcNow;
                dir.MoveTo(newFullPath);

                folder.FolderName  = dir.Name;
                folder.CreatedDate = dir.CreationTime;
            }
            catch (Exception ex)
            {
                folder = null;
                throw ex;
            }

            return(folder);
        }
Ejemplo n.º 2
0
 public void GetOriginalPath(FolderInfoModel folderInfo)
 {
     if (folderInfo != null)
     {
         folderInfo.Path = GetOriginalPath(folderInfo.Path, folderInfo.DocumentType, folderInfo.DocumentId);
     }
 }
Ejemplo n.º 3
0
 public bool DeleteFolder(FolderInfoModel folder)
 {
     if (folder != null)
     {
         GetOriginalPath(folder);
         return(DeleteFolder(folder.Path));
     }
     return(false);
 }
Ejemplo n.º 4
0
        public FolderInfoModel CreateFolder(FolderInfoModel folder)
        {
            GetOriginalPath(folder);
            var path = GetFullPath(folder.Path);

            CreateFolderIfNotExist(path);

            return(folder);
        }
Ejemplo n.º 5
0
        public FolderInfoModel CopyFolder(FolderInfoModel sourceFolder, FolderInfoModel destinationFolder)
        {
            DirectoryInfo newFolderInfo = null;

            try
            {
                var sourceFolderInfo      = GetFolderInfo(sourceFolder);
                var destinationfolderInfo = GetFolderInfo(destinationFolder);
                if (destinationFolder.DocumentType != sourceFolder.DocumentType && !destinationfolderInfo.Exists)
                {
                    destinationfolderInfo.Create();
                    destinationfolderInfo.Refresh();
                }
                if (sourceFolderInfo != null && destinationfolderInfo != null && sourceFolderInfo.Exists &&
                    destinationfolderInfo.Exists)
                {
                    var newFolderPath = Path.Combine(destinationfolderInfo.FullName, sourceFolderInfo.Name);
                    CreateFolderIfNotExist(newFolderPath);
                    newFolderInfo = GetFolderInfo(newFolderPath);

                    var arrDir = sourceFolderInfo.GetDirectories();
                    foreach (var dir in arrDir)
                    {
                        //using loop to copy files in all sub-folder
                        CopyFolder(new FolderInfoModel {
                            Path = dir.FullName
                        },
                                   new FolderInfoModel {
                            Path = newFolderInfo.FullName
                        });
                    }

                    var lstFileCopy = sourceFolderInfo.GetFiles();
                    foreach (var fileInfo in lstFileCopy)
                    {
                        var fileName = ProcessFileNameInFolder(newFolderInfo, fileInfo.Name);
                        fileInfo.CopyTo(Path.Combine(newFolderInfo.FullName, fileName));
                    }
                }
            }
            catch (Exception ex)
            {
                if (newFolderInfo != null && newFolderInfo.Exists)
                {
                    newFolderInfo.Delete();
                }
                throw ex;
            }
            return(sourceFolder);
        }
Ejemplo n.º 6
0
 public DirectoryInfo GetFolderInfo(FolderInfoModel folder)
 {
     if (folder != null)
     {
         GetOriginalPath(folder);
         var folderInfo = GetFolderInfo(folder.Path);
         if (string.IsNullOrWhiteSpace(folder.FolderName))
         {
             folder.FolderName = folderInfo.Name;
         }
         return(folderInfo);
     }
     return(null);
 }
Ejemplo n.º 7
0
 public IEnumerable <FolderInfoModel> GetSubFolders(FolderInfoModel folder)
 {
     if (folder != null)
     {
         var dirInfo = GetFolderInfo(folder);
         CreateFolderIfNotExist(dirInfo.FullName);
         var path       = folder.Path.TrimStart('/') + "/";
         var subFolders = dirInfo.GetDirectories();
         return(subFolders.Select(x => new FolderInfoModel
         {
             FolderName = x.Name,
             Path = path + x.Name,
             CreatedDate = x.CreationTimeUtc,
             DocumentType = folder.DocumentType,
             DocumentId = folder.DocumentId
         }));
     }
     return(null);
 }
Ejemplo n.º 8
0
 public IEnumerable <FileInfoModel> GetFiles(FolderInfoModel folder)
 {
     if (folder != null)
     {
         var dirInfo    = GetFolderInfo(folder);
         var path       = folder.Path.TrimStart('/') + "/";
         var subFolders = dirInfo.GetFiles();
         return(subFolders.Select(x => new FileInfoModel
         {
             FileName = x.Name,
             FullName = Path.Combine(AppSettings.DefaultFolderUpload, folder.Path, x.Name),
             Size = x.Length,
             Path = path + x.Name,
             CreatedDate = x.LastWriteTimeUtc != new DateTime() ? x.LastWriteTimeUtc : x.CreationTimeUtc,
             UpdatedDate = x.LastWriteTimeUtc,
             DocumentType = folder.DocumentType,
             DocumentId = folder.DocumentId
         }));
     }
     return(null);
 }
Ejemplo n.º 9
0
        public FileInfoModel MoveFile(FileInfoModel file, FolderInfoModel destinationFolder)
        {
            var newFile = new FileInfoModel();

            try
            {
                var fileInfo   = GetFileInfo(file);
                var folderInfo = GetFolderInfo(destinationFolder);
                if (destinationFolder.DocumentType != file.DocumentType && !folderInfo.Exists)
                {
                    folderInfo.Create();
                    folderInfo.Refresh();
                }
                if (fileInfo != null && folderInfo != null && fileInfo.Exists && folderInfo.Exists)
                {
                    var fileName = ProcessFileNameInFolder(folderInfo, fileInfo.Name);
                    file.FileName            = fileName;
                    fileInfo.CreationTimeUtc = DateTime.UtcNow;
                    fileInfo.MoveTo(Path.Combine(folderInfo.FullName, fileName));
                    newFile = new FileInfoModel
                    {
                        FileName     = fileInfo.Name,
                        Path         = fileInfo.FullName,
                        DocumentType = destinationFolder.DocumentType,
                        DocumentId   = destinationFolder.DocumentId,
                        Size         = fileInfo.Length,
                        Extension    = fileInfo.Extension,
                        CreatedDate  = DateTime.UtcNow,
                        UpdatedDate  = DateTime.UtcNow
                    };
                }
            }
            catch
            {
            }
            return(newFile);
        }