Example #1
0
        public List <CompareResult> LeftCompare(string leftFolder, string rightFolder)
        {
            _reference.ReportProgress(20);
            var jpegA = DirectoryLister.GetJPGImages(leftFolder);

            _reference.ReportProgress(25);
            var jpegB = DirectoryLister.GetJPGImages(rightFolder);

            _reference.ReportProgress(30);
            var rawCanonA = DirectoryLister.GetRawCanonImages(leftFolder);

            _reference.ReportProgress(35);
            var rawCanonB = DirectoryLister.GetRawCanonImages(rightFolder);

            _reference.ReportProgress(40);
            var rawNikonA = DirectoryLister.GetRawNilonImages(leftFolder);

            _reference.ReportProgress(45);
            var rawNikonB = DirectoryLister.GetRawNilonImages(rightFolder);

            _reference.ReportProgress(50);

            _reference.ReportProgress(60);
            var jpgResults = Compare(jpegA, jpegB);

            _reference.ReportProgress(70);
            var rawCanonResults = Compare(rawCanonA, rawCanonB);

            _reference.ReportProgress(80);
            var rawNilkonResults = Compare(rawNikonA, rawNikonB);

            _reference.ReportProgress(90);

            return(jpgResults.Concat(rawCanonResults).Concat(rawNilkonResults).ToList());
        }
Example #2
0
        public RawModule()
        {
            this.RequiresAuthentication();

            Get["/rawdata/dir/{path*}"] = x => {
                var p     = x.path;
                var model = new DirectoryLister("/" + p, false).FullList2;
                var json  = JsonConvert.SerializeObject(model);
                return(json);
            };

            Get["/rawdata/dir/filelist/{path*}"] = x => {
                var p     = x.path;
                var list  = new DirectoryLister("/" + p, false).FullList2;
                var model = (from d in list
                             where d.isFile
                             select d.path).ToList();
                return(JsonConvert.SerializeObject(model));
            };

            Get["/rawdata/file/content/{path*}"] = x => {
                var p     = x.path;
                var model = FileSystem.ReadFile(p);
                return(JsonConvert.SerializeObject(model));
            };
        }
Example #3
0
        private List <CompareResult> Compare(string firstFolder, string secondFolder)
        {
            var results = new List <CompareResult>();

            var leftFiles  = DirectoryLister.GetAllFiles(firstFolder);
            var rightFiles = DirectoryLister.GetAllFiles(secondFolder);

            _reference.AddStepProgress();

            foreach (string fileOrFolder in leftFiles)
            {
                if (fileOrFolder.IsFile())
                {
                    results.Add(ProcessFile(fileOrFolder, rightFiles, CompareDirection.Left));
                }
                else if (DirectoryComparerBaseInfo.Recursive)
                {
                    results.AddRange(ProcessFolder(fileOrFolder, rightFiles, CompareDirection.Left));
                }
            }

            _reference.AddStepProgress();

            return(results);
        }
        public List <CompareResult> LeftCompare(string leftFolder, string rightFolder)
        {
            List <CompareResult> _leftResults = new List <CompareResult>();

            List <string> leftFiles  = DirectoryLister.GetAllFiles(leftFolder);
            List <string> rightFiles = DirectoryLister.GetAllFiles(rightFolder);

            _reference.ReportProgress(15);

            foreach (string fileOrFolder in leftFiles)
            {
                if (fileOrFolder.IsFile())
                {
                    _leftResults.Add(ProcessFile(fileOrFolder, rightFiles, CompareDirection.Left));
                }
                else if (DirectoryComparerBaseInfo.Recursive)
                {
                    _leftResults.AddRange(ProcessFolder(fileOrFolder, rightFiles, CompareDirection.Left));
                }
            }

            _reference.ReportProgress(50);

            return(_leftResults);
        }
        public List <CompareResult> RightCompare(string rightFolder, string leftFolder)
        {
            List <CompareResult> _rightResults = new List <CompareResult>();

            List <string> leftFiles  = DirectoryLister.GetAllFiles(leftFolder);
            List <string> rightFiles = DirectoryLister.GetAllFiles(rightFolder);

            _reference.ReportProgress(70);

            foreach (string fileOrFolder in rightFiles)
            {
                if (fileOrFolder.IsFile())
                {
                    CompareResult result = ProcessFile(fileOrFolder, leftFiles, CompareDirection.Right);
                    if (IsNotPresent(result))
                    {
                        _rightResults.Add(result);
                    }
                }
                else if (DirectoryComparerBaseInfo.Recursive)
                {
                    List <CompareResult> results = ProcessFolder(fileOrFolder, leftFiles, CompareDirection.Right);
                    _rightResults.AddRange(GetRightOnly(results));
                }
            }

            _reference.ReportProgress(90);

            return(_rightResults);
        }
Example #6
0
        /// <summary>
        /// Resolves the directory.
        /// </summary>
        /// <param name="path">The path.</param>
        /// <returns></returns>
        public override DirectoryItem ResolveDirectory(string path)
        {
            DirectoryInfo dir = new DirectoryInfo(path);

            if (!dir.Exists)
            {
                return(null);
            }
            DirectoryLister lister = new DirectoryLister(this, true, false);

            return(lister.GetDirectory(dir, path));
        }
Example #7
0
        /// <summary>
        /// Resolves the root directory as tree.
        /// </summary>
        /// <param name="path">The path.</param>
        /// <returns></returns>
        public override DirectoryItem ResolveRootDirectoryAsTree(string path)
        {
            DirectoryInfo dir = new DirectoryInfo(path);

            if (!dir.Exists)
            {
                return(null);
            }
            string virtualName = dir.Name;
            string location    = dir.Parent.FullName.Replace('\\', '/');

            DirectoryLister lister = new DirectoryLister(this, false, true);

            return(lister.GetDirectory(dir, virtualName, location, path, string.Empty));
        }
Example #8
0
        public override DirectoryItem ResolveRootDirectoryAsTree(string path)
        {
            string        str         = base.Context.Server.MapPath(path);
            string        virtualName = (path == "/") ? string.Empty : VirtualPathUtility.GetFileName(path);
            string        location    = (path == "/") ? "/" : VirtualPathUtility.AppendTrailingSlash(VirtualPathUtility.GetDirectory(path));
            DirectoryInfo dir         = new DirectoryInfo(str);

            if (!dir.Exists)
            {
                return(null);
            }
            DirectoryLister lister = new DirectoryLister(this, false, true);

            return(lister.GetDirectory(dir, virtualName, location, path, string.Empty));
        }
Example #9
0
        protected override bool DoInsertData(DataAction action, MarkupPointer begin, MarkupPointer end)
        {
            //hack: drive the selection textRange to the caret (before calling InsertImages)
            EditorContext.MarkupServices.CreateMarkupRange(begin, end).ToTextRange().select();

            List <string> files = new List <string>();

            DirectoryLister lister = new DirectoryLister(DataMeister.FileData.Files[0].ContentsPath, false, true);

            foreach (string file in lister.GetFiles())
            {
                if (PathHelper.IsPathImage(file))
                {
                    files.Add(Path.Combine(lister.RootPath, file));
                }
            }

            return(DoInsertDataCore(files, action, begin, end));
        }
Example #10
0
        public static bool CanCreateFrom(DataObjectMeister data)
        {
            // see if there are files at the top-level of the file data
            FileData fileData = data.FileData;

            if (fileData != null && fileData.Files.Length == 1 && fileData.Files[0].IsDirectory)
            {
                DirectoryLister lister = new DirectoryLister(fileData.Files[0].ContentsPath, false, true);
                foreach (string file in lister.GetFiles())
                {
                    if (PathHelper.IsPathImage(file))
                    {
                        return(true);
                    }
                }
            }

            return(false);
        }
Example #11
0
        private List <CompareResult> ProcessFolder(string fileOrFolder, List <string> otherFiles, CompareDirection direction)
        {
            List <CompareResult> results = new List <CompareResult>();

            string dirName          = '\\' + fileOrFolder.GetCurrentDir();
            string correspondingDir = otherFiles.SingleOrDefault(r => r.IsDirectory() && r.EndsWith(dirName));

            if (correspondingDir != null)
            {
                List <string> leftFiles   = DirectoryLister.GetAllFiles(fileOrFolder);
                List <string> cRightFiles = DirectoryLister.GetAllFiles(correspondingDir);

                if (leftFiles.Count == 0 && cRightFiles.Count == 0)
                {
                    results.Add(ProcessEmptyDirectory(fileOrFolder, correspondingDir, direction));
                }
                else
                {
                    foreach (string fileorFolder in leftFiles)
                    {
                        results.AddRange(ProcessByType(fileorFolder, cRightFiles, direction));
                    }
                }
            }
            else
            {
                List <string> files = DirectoryLister.GetAllFiles(fileOrFolder);

                if (files.Count > 0)
                {
                    foreach (var file in files)
                    {
                        results.AddRange(ProcessByType(file, null, direction));
                    }
                }
                else
                {
                    results.Add(ProcessEmptyDirectory(fileOrFolder, string.Empty, direction));
                }
            }

            return(results);
        }