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