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); }
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; } }
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); }