Example #1
0
        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);
        }
Example #2
0
        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);
        }
Example #3
0
        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("Произошла ошибка десериализации");
            }
        }
Example #4
0
        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));
            }
        }
Example #5
0
 private FolderCheckSum(DirectoryInfo rootDirectoryInfo)
 {
     FolderResult           = new FolderResult();
     fileInfos              = new BlockingCollection <FileInfo>();
     this.rootDirectoryInfo = rootDirectoryInfo;
 }