private FolderResult GetFolderResult(string targetPath) { var result = new FolderResult(); foreach (var dirPath in Directory.GetDirectories(targetPath)) { var dirInfo = new DirectoryInfo(dirPath); if (Config.ExcludeDirectories.Contains(dirInfo.Name)) { continue; } result.Folders.Add(new Folder { Name = dirInfo.Name, ModifiedDate = dirInfo.LastWriteTimeUtc, FileCount = dirInfo.GetFiles().Length }); } foreach (var filePath in Directory.GetFiles(targetPath)) { var fileInfo = new FileInfo(filePath); result.Files.Add(new File { Name = fileInfo.Name, Extension = fileInfo.Extension, FileSizeBytes = fileInfo.Length, ModifiedDate = fileInfo.LastWriteTimeUtc, IsTextFile = Config.TextFileExtensions.Contains(fileInfo.Extension), }); } return(result); }
private FolderResult GetFolderResult(string targetPath) { var result = new FolderResult(); var dir = VirtualFiles.GetDirectory(targetPath); foreach (var subDir in dir.Directories) { if (Config.ExcludeDirectories.Contains(subDir.Name)) { continue; } result.Folders.Add(new Folder { Name = subDir.Name, ModifiedDate = subDir.LastModified, FileCount = subDir.GetFiles().Count(), }); } foreach (var fileInfo in dir.GetFiles()) { result.Files.Add(new ServiceModel.Types.File { Name = fileInfo.Name, Extension = fileInfo.Extension, FileSizeBytes = fileInfo.Length, ModifiedDate = fileInfo.LastModified, IsTextFile = Config.TextFileExtensions.Contains(fileInfo.Extension), }); } return(result); }
public void FolderResultSerializationTest() { var folderResult = new FolderResult(); folderResult.FilesCollection.Add(new FileResultSuccess { CheckSum = 1111, FileName = "file1" }); folderResult.FilesCollection.Add(new FileResultSuccess { CheckSum = 222, FileName = "file2" }); folderResult.FilesCollection.Add(new FileResultError { FileName = "file3", ErrorMessage = "Error" }); var fileName = $"{existFolderPath}{Path.DirectorySeparatorChar}testxml.xml"; try { folderResult.Save(fileName); Assert.IsTrue(new FileInfo(fileName).Exists); } catch { Assert.Fail("Произошла ошибка сериализации"); } try { var deserialisedFolderResult = FolderResult.Open(fileName); Assert.AreEqual(folderResult.FilesCollection.Count, deserialisedFolderResult.FilesCollection.Count); } catch { Assert.Fail("Произошла ошибка десериализации"); } }
public PeekResult Peek(PeekParameters parameters) { try { if (parameters == null) { throw new ArgumentNullException("parameters"); } if (string.IsNullOrWhiteSpace(parameters.ItemUri)) { throw new ArgumentException(Resources.MissingItemUri); } if (Client.IsExistingObject(parameters.ItemUri)) { var readOptions = new ReadOptions { LoadFlags = LoadFlags.Expanded | LoadFlags.WebDavUrls }; var item = Client.Read(parameters.ItemUri, readOptions); switch (GetItemType(item.Id)) { case ItemType.Category: return(CategoryResult.From((CategoryData)item, Client, CurrentUserId)); case ItemType.Component: return(ComponentResult.From((ComponentData)item, CurrentUserId)); case ItemType.ComponentTemplate: return(ComponentTemplateResult.From((ComponentTemplateData)item, Client, CurrentUserId)); case ItemType.Folder: return(FolderResult.From((FolderData)item, CurrentUserId)); case ItemType.Group: return(GroupResult.From((GroupData)item)); case ItemType.Keyword: return(KeywordResult.From((KeywordData)item, CurrentUserId)); case ItemType.MultimediaType: return(MultimediaTypeResult.From((MultimediaTypeData)item)); case ItemType.Page: return(PageResult.From((PageData)item, Client, CurrentUserId)); case ItemType.PageTemplate: return(PageTemplateResult.From((PageTemplateData)item, Client, CurrentUserId)); case ItemType.Publication: return(PublicationResult.From((PublicationData)item, CurrentUserId)); case ItemType.PublicationTarget: return(PublicationTargetResult.From((PublicationTargetData)item)); case ItemType.Schema: return(SchemaResult.From((SchemaData)item, CurrentUserId)); case ItemType.StructureGroup: return(StructureGroupResult.From((StructureGroupData)item, CurrentUserId)); case ItemType.TargetGroup: return(TargetGroupResult.From((TargetGroupData)item, CurrentUserId)); case ItemType.TargetType: return(TargetTypeResult.From((TargetTypeData)item)); case ItemType.TemplateBuildingBlock: return(TemplateBuildingBlockResult.From((TemplateBuildingBlockData)item, Client, CurrentUserId)); case ItemType.User: return(UserResult.From((UserData)item, Client)); case ItemType.VirtualFolder: return(VirtualFolderResult.From((VirtualFolderData)item, CurrentUserId)); } } return(new EmptyResult()); } catch (Exception ex) { throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex.Message)); } }
private FolderCheckSum(DirectoryInfo rootDirectoryInfo) { FolderResult = new FolderResult(); fileInfos = new BlockingCollection <FileInfo>(); this.rootDirectoryInfo = rootDirectoryInfo; }