コード例 #1
0
        public static IModelSaveResult <T> SaveFile <T, TProviderFilter>(
            this IFileStoreStep <File, TProviderFilter> fileStoreStep,
            T file)
            where T : File
            where TProviderFilter : class, IProviderTypeFilter
        {
            Mandate.ParameterNotNull(file, "file");
            using (var unit = fileStoreStep.HiveManager.OpenWriter <TProviderFilter>())
            {
                unit.Repositories.AddOrUpdate(file);
                unit.Complete();

                try
                {
                    unit.Repositories.AddOrUpdate(file);
                    unit.Complete();
                    return(new ModelSaveResult <T>(true, file));
                }
                catch (Exception ex)
                {
                    unit.Abandon();
                    return(new ModelSaveResult <T>(false, file, ex));
                }
            }
        }
コード例 #2
0
        public static IModelSaveResult <File> SaveFile <TProviderFilter>(
            this IFileStoreStep <File, TProviderFilter> fileStoreStep,
            string filename,
            byte[] contentBytes)
            where TProviderFilter : class, IProviderTypeFilter
        {
            Mandate.ParameterNotNullOrEmpty(filename, "filename");
            var file = new File(filename, contentBytes);

            return(fileStoreStep.SaveFile(file));
        }
コード例 #3
0
 public static File GetFile <TProviderFilter>(
     this IFileStoreStep <File, TProviderFilter> fileStoreStep,
     string filename)
     where TProviderFilter : class, IProviderTypeFilter
 {
     Mandate.ParameterNotNullOrEmpty(filename, "filename");
     using (var unit = fileStoreStep.HiveManager.OpenReader <TProviderFilter>())
     {
         return(unit.Repositories.Get <File>(HiveId.Parse(filename)));
     }
 }
コード例 #4
0
        public static IModelSaveResult <File> CreateDirectory <TProviderFilter>(
            this IFileStoreStep <File, TProviderFilter> fileStoreStep,
            string containerName)
            where TProviderFilter : class, IProviderTypeFilter
        {
            Mandate.ParameterNotNullOrEmpty(containerName, "containerName");
            var file = new File {
                IsContainer = true, Name = containerName
            };

            return(fileStoreStep.SaveFile(file));
        }
コード例 #5
0
 public static IEnumerable <File> GetFiles <TProviderFilter>(
     this IFileStoreStep <File, TProviderFilter> fileStoreStep,
     string containerName,
     bool includeDescendants = false)
     where TProviderFilter : class, IProviderTypeFilter
 {
     Mandate.ParameterNotNullOrEmpty(containerName, "containerName");
     using (var unit = fileStoreStep.HiveManager.OpenReader <TProviderFilter>())
     {
         var container = unit.Repositories.Get <File>(HiveId.Parse(containerName));
         if (container == null)
         {
             throw new ArgumentOutOfRangeException(containerName, containerName, "Directory does not exist");
         }
         if (includeDescendants)
         {
             var descendantIds = unit.Repositories.GetDescendantIds(container.Id, FixedRelationTypes.DefaultRelationType);
             return(unit.Repositories.Get <File>(false, descendantIds).Where(x => !x.IsContainer));
         }
         var childIds = unit.Repositories.GetChildRelations(container.Id, FixedRelationTypes.DefaultRelationType).Select(x => x.DestinationId).ToArray();
         return(unit.Repositories.Get <File>(false, childIds).Where(x => !x.IsContainer));
     }
 }