Exemple #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);
        }
Exemple #2
0
        public static void Export(Data.FolderData root, string path)
        {
            try
            {
                Data.IOFolder outerRoot = toOuter(root);
                if (outerRoot == null)
                {
                    return;
                }
                if (string.IsNullOrWhiteSpace(path))
                {
                    return;
                }

                using (var stream = createStream(path, InOut.Out))
                {
                    using (var writer = createWriter(stream))
                    {
                        serializer.Value.Serialize(writer, outerRoot, xmlNamespaces.Value);
                    }
                }
            }
            catch
            {
                throw;
            }
        }
Exemple #3
0
        private static Data.IOFolder toOuter(Data.FolderData inner)
        {
            if (inner == null)
            {
                return(null);
            }

            var outerFolder = new Data.IOFolder()
            {
                Name = inner.Name
            };

            if (inner.SubFolders.Count > 0)
            {
                outerFolder.SubFolders = new List <Data.IOFolder>();
                foreach (var subFolder in inner.SubFolders)
                {
                    var outer = toOuter(subFolder);
                    if (outer != null)
                    {
                        outerFolder.SubFolders.Add(outer);
                    }
                }
            }
            if (inner.Files.Count > 0)
            {
                outerFolder.Files = new List <Data.IOFile>();
                foreach (var file in inner.Files)
                {
                    var outer = toOuter(file);
                    if (file != null)
                    {
                        outerFolder.Files.Add(outer);
                    }
                }
            }
            return(outerFolder);
        }