예제 #1
0
        public HttpResponseMessage loadFileTree(PostedDataEntity postedData)
        {
            // get request body
            string relDirPath = postedData.path;

            // get file list from storage path
            try
            {
                // get all the files from a directory
                if (string.IsNullOrEmpty(relDirPath))
                {
                    relDirPath = globalConfiguration.GetEditorConfiguration().GetFilesDirectory();
                }
                else
                {
                    relDirPath = Path.Combine(globalConfiguration.GetEditorConfiguration().GetFilesDirectory(), relDirPath);
                }

                List <FileDescriptionEntity> fileList = new List <FileDescriptionEntity>();
                List <string> allFiles = new List <string>(Directory.GetFiles(relDirPath));
                allFiles.AddRange(Directory.GetDirectories(relDirPath));

                allFiles.Sort(new FileNameComparator());
                allFiles.Sort(new FileTypeComparator());

                foreach (string file in allFiles)
                {
                    FileInfo fileInfo = new FileInfo(file);
                    // check if current file/folder is hidden
                    if (fileInfo.Attributes.HasFlag(FileAttributes.Hidden) ||
                        Path.GetFileName(file).Equals(Path.GetFileName(globalConfiguration.GetEditorConfiguration().GetFilesDirectory())) ||
                        Path.GetFileName(file).Equals(".gitkeep"))
                    {
                        // ignore current file and skip to next one
                        continue;
                    }
                    else
                    {
                        FileDescriptionEntity fileDescription = new FileDescriptionEntity();
                        fileDescription.guid = Path.GetFullPath(file);
                        fileDescription.name = Path.GetFileName(file);
                        // set is directory true/false
                        fileDescription.isDirectory = fileInfo.Attributes.HasFlag(FileAttributes.Directory);
                        // set file size
                        if (!fileDescription.isDirectory)
                        {
                            fileDescription.size = fileInfo.Length;
                        }
                        // add object to array list
                        fileList.Add(fileDescription);
                    }
                }
                return(Request.CreateResponse(HttpStatusCode.OK, fileList));
            }
            catch (System.Exception ex)
            {
                return(Request.CreateResponse(HttpStatusCode.OK, new Resources().GenerateException(ex)));
            }
        }
예제 #2
0
        public List <FileDescriptionEntity> LoadFiles(PostedDataEntity fileTreeRequest)
        {
            // get request body
            string relDirPath = fileTreeRequest.path;

            // get file list from storage path
            try
            {
                // get all the files from a directory
                if (string.IsNullOrEmpty(relDirPath))
                {
                    relDirPath = globalConfiguration.Comparison.GetFilesDirectory();
                }
                else
                {
                    relDirPath = Path.Combine(globalConfiguration.Comparison.GetFilesDirectory(), relDirPath);
                }

                List <string> allFiles = new List <string>(Directory.GetFiles(relDirPath));
                allFiles.AddRange(Directory.GetDirectories(relDirPath));
                List <FileDescriptionEntity> fileList = new List <FileDescriptionEntity>();

                allFiles.Sort(new FileNameComparator());
                allFiles.Sort(new FileTypeComparator());

                foreach (string file in allFiles)
                {
                    System.IO.FileInfo fileInfo = new System.IO.FileInfo(file);
                    // check if current file/folder is hidden
                    if (!(fileInfo.Attributes.HasFlag(FileAttributes.Hidden) ||
                          Path.GetFileName(file).StartsWith(".") ||
                          Path.GetFileName(file).Equals(Path.GetFileName(globalConfiguration.Comparison.GetFilesDirectory())) ||
                          Path.GetFileName(file).Equals(Path.GetFileName(globalConfiguration.Comparison.GetResultDirectory()))))
                    {
                        FileDescriptionEntity fileDescription = new FileDescriptionEntity
                        {
                            guid = Path.GetFullPath(file),
                            name = Path.GetFileName(file),
                            // set is directory true/false
                            isDirectory = fileInfo.Attributes.HasFlag(FileAttributes.Directory)
                        };
                        // set file size
                        if (!fileDescription.isDirectory)
                        {
                            fileDescription.size = fileInfo.Length;
                        }
                        // add object to array list
                        fileList.Add(fileDescription);
                    }
                }
                return(fileList);
            }
            catch (Exception ex)
            {
                throw new FileLoadException("Exception occurred while loading files", ex);
            }
        }
        public HttpResponseMessage GetFileTree()
        {
            try
            {
                List <FileDescriptionEntity> filesList = new List <FileDescriptionEntity>();

                if (!string.IsNullOrEmpty(globalConfiguration.GetViewerConfiguration().GetFilesDirectory()))
                {
                    var           currentPath = globalConfiguration.GetViewerConfiguration().GetFilesDirectory();
                    List <string> allFiles    = new List <string>(Directory.GetFiles(currentPath));
                    allFiles.AddRange(Directory.GetDirectories(currentPath));

                    string cacheFolderName = globalConfiguration.GetViewerConfiguration().GetCacheFolderName();

                    allFiles.Sort(new FileNameComparator());
                    allFiles.Sort(new FileDateComparator());

                    foreach (string file in allFiles)
                    {
                        System.IO.FileInfo fileInfo = new System.IO.FileInfo(file);

                        // check if current file/folder is hidden
                        if (!(cacheFolderName.Equals(Path.GetFileName(file)) ||
                              Path.GetFileName(file).StartsWith(".") ||
                              fileInfo.Attributes.HasFlag(FileAttributes.Hidden) ||
                              Path.GetFileName(file).Equals(Path.GetFileName(globalConfiguration.GetViewerConfiguration().GetFilesDirectory()))))
                        {
                            FileDescriptionEntity fileDescription = new FileDescriptionEntity
                            {
                                guid = Path.GetFullPath(file),
                                name = Path.GetFileName(file),

                                // set is directory true/false
                                isDirectory = fileInfo.Attributes.HasFlag(FileAttributes.Directory),
                            };

                            // set file size
                            if (!fileDescription.isDirectory)
                            {
                                fileDescription.size = fileInfo.Length;
                            }

                            // add object to array list
                            filesList.Add(fileDescription);
                        }
                    }
                }

                return(this.Request.CreateResponse(HttpStatusCode.OK, filesList));
            }
            catch (Exception ex)
            {
                return(this.Request.CreateResponse(HttpStatusCode.OK, new Resources().GenerateException(ex)));
            }
        }
        public HttpResponseMessage loadFileTree(AnnotationPostedDataEntity fileTreeRequest)
        {
            string relDirPath = fileTreeRequest.path;
            // get file list from storage path
            FileTreeOptions fileListOptions = new FileTreeOptions(relDirPath);
            // get temp directory name
            string tempDirectoryName = new AnnotationConfig().TempFolderName;

            try
            {
                FileTreeContainer fileListContainer = AnnotationImageHandler.LoadFileTree(fileListOptions);

                List <FileDescriptionEntity> fileList = new List <FileDescriptionEntity>();
                // parse files/folders list
                foreach (FileDescription fd in fileListContainer.FileTree)
                {
                    FileDescriptionEntity fileDescription = new FileDescriptionEntity();
                    fileDescription.guid = fd.Guid;
                    // check if current file/folder is temp directory or is hidden
                    FileInfo fileInfo = new FileInfo(fileDescription.guid);
                    if (tempDirectoryName.ToLower().Equals(fileDescription.guid) || fileInfo.Attributes.HasFlag(FileAttributes.Hidden))
                    {
                        // ignore current file and skip to next one
                        continue;
                    }
                    else
                    {
                        // set file/folder name
                        fileDescription.name = fd.Name;
                    }
                    // set file type
                    fileDescription.docType = fd.DocumentType;
                    // set is directory true/false
                    fileDescription.isDirectory = fd.IsDirectory;
                    // set file size
                    fileDescription.size = fd.Size;
                    // add object to array list
                    fileList.Add(fileDescription);
                }
                return(Request.CreateResponse(HttpStatusCode.OK, fileList));
            }
            catch (System.Exception ex)
            {
                // set exception message
                return(Request.CreateResponse(HttpStatusCode.OK, new Resources().GenerateException(ex)));
            }
        }
        public IEnumerable <FileDescriptionEntity> LoadFileTree()
        {
            List <FileDescriptionEntity> fileList = new List <FileDescriptionEntity>();

            if (!string.IsNullOrEmpty(metadataConfiguration.GetFilesDirectory()))
            {
                var           currentPath = metadataConfiguration.GetFilesDirectory();
                List <string> allFiles    = new List <string>(Directory.GetFiles(currentPath));
                allFiles.AddRange(Directory.GetDirectories(currentPath));

                // TODO: get temp directory name
                string tempDirectoryName = "temp";

                allFiles.Sort(new FileNameComparator());
                allFiles.Sort(new FileDateComparator());

                foreach (string file in allFiles)
                {
                    FileInfo fileInfo = new FileInfo(file);
                    // check if current file/folder is hidden
                    if (!(tempDirectoryName.Equals(Path.GetFileName(file)) ||
                          fileInfo.Attributes.HasFlag(FileAttributes.Hidden) ||
                          fileInfo.Name.StartsWith(".") ||
                          Path.GetFileName(file).Equals(Path.GetFileName(metadataConfiguration.GetFilesDirectory()))))
                    {
                        FileDescriptionEntity fileDescription = new FileDescriptionEntity();
                        fileDescription.guid = Path.GetFileName(file);
                        fileDescription.name = Path.GetFileName(file);
                        // set is directory true/false
                        fileDescription.isDirectory = fileInfo.Attributes.HasFlag(FileAttributes.Directory);
                        // set file size
                        if (!fileDescription.isDirectory)
                        {
                            fileDescription.size = fileInfo.Length;
                        }
                        // add object to array list
                        fileList.Add(fileDescription);
                    }
                }
            }
            return(fileList);
        }