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.GetComparisonConfiguration().GetFilesDirectory();
                }
                else
                {
                    relDirPath = Path.Combine(globalConfiguration.GetComparisonConfiguration().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.GetComparisonConfiguration().GetFilesDirectory())) ||
                          Path.GetFileName(file).Equals(Path.GetFileName(globalConfiguration.GetComparisonConfiguration().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);
            }
        }