Example #1
0
        private static Data.FolderData toInner(Data.IOFolder outer)
        {
            if (outer == null)
            {
                return(null);
            }

            var innerFolder = new Data.FolderData(outer.Name);

            if (outer.ShouldSerializeSubFolders())
            {
                foreach (var subFolder in outer.SubFolders)
                {
                    var inner = toInner(subFolder);
                    if (inner != null)
                    {
                        innerFolder.Add(inner);
                    }
                }
            }
            if (outer.ShouldSerializeFiles())
            {
                foreach (var file in outer.Files)
                {
                    var inner = toInner(file);
                    if (inner != null)
                    {
                        innerFolder.Add(inner);
                    }
                }
            }
            return(innerFolder);
        }
Example #2
0
        private static Data.FolderData convert(Task <IList <Data.LZSSFileItem> > parseIndexTask)
        {
            var checker = Business.CodeTimeChecker.New;

            Business.StatusManager.Instance.UpdateProgress(0.9);
            Business.StatusManager.Instance.UpdateStatus("converting...");
            try
            {
                if (parseIndexTask.Exception != null)
                {
                    throw parseIndexTask.Exception;
                }

                if (parseIndexTask.IsCanceled)
                {
                    return(null);
                }

                var lzssFiles = parseIndexTask.Result;
                if (lzssFiles == null || lzssFiles.Count == 0)
                {
                    return(null);
                }

                Regex folderFilter = new Regex(folderFilterToken);

                var rootFolder    = new Data.FolderData(rootFolderName);
                var currentFolder = rootFolder;
                foreach (var lzssItem in lzssFiles)
                {
                    if (folderFilter.IsMatch(lzssItem.Name))                     //folder
                    {
                        if (lzssItem.Name == currentFolder.Name)
                        {
                            continue;
                        }

                        var folder = new Data.FolderData(lzssItem.Name);
                        rootFolder.Add(folder);
                        currentFolder = folder;
                    }
                    else                     //file
                    {
                        var file = new Data.FileData(lzssItem);
                        currentFolder.Add(file);
                    }
                }

                return(rootFolder);
            }
            catch
            {
                throw;
            }
            finally
            {
                checker.Check("LZSSFileMapParser.convert");
            }
        }
Example #3
0
        private void generateRootFolder(string data)
        {
            try
            {
                this.rootSource.Clear();
                Data.FolderData root = null;
                if (!string.IsNullOrWhiteSpace(data))
                {
                    root = Business.LZSSFileMapParser.Parse(data);
                }

                if (root == null)
                {
                    MessageBox.Show(data, "Cannot get file data from nfs file");
                }
                else
                {
                    Data.FolderData fakeFolder = new Data.FolderData("test");
                    fakeFolder.Add(new Data.FileData(new Data.LZSSFileItem()
                    {
                        Name  = "test.txt",
                        Index = 0,
                        Size  = 100
                    }));
                    fakeFolder.Add(new Data.FileData(new Data.LZSSFileItem()
                    {
                        Name  = "test.txt",
                        Index = 1,
                        Size  = 100
                    }));
                    root.SubFolders[0].Add(fakeFolder);

                    this.rootFolder = root;
                    this.rootSource.Add(root);
                    this.NotifyPropertyChanged("RootSource");
                }
            }
            catch
            {
                throw;
            }
        }