public virtual async Task <IEnumerable <SkinnyItemModel> > GetSkinnyItems( IFileSystemConnection connection, IReadOnlyCollection <ItemIdEntity> idEntities) { Condition.Requires(connection, nameof(connection)).IsNotNull(); Condition.Requires(idEntities, nameof(idEntities)).IsNotNull(); if (!idEntities.Any()) { return(Enumerable.Empty <SkinnyItemModel>()); } var fileNames = GetAllFiles(connection); var skinnyModels = new List <SkinnyItemModel>(); foreach (var fileName in fileNames) { var idItem = idEntities.FirstOrDefault(x => x.Key == fileName.FileName); if (idItem != null) { skinnyModels.Add(await GetSkinnyModel(fileName, idItem).ConfigureAwait(false)); } } return(skinnyModels); }
protected virtual IEnumerable <DataProviderFile> GetAllFiles(IFileSystemConnection connection) { var root = new DirectoryInfo(connection.RootFolder); var files = root.GetFiles("*", SearchOption.AllDirectories); return(files.Select(x => new DataProviderFile(x.Name, x.Extension, x.FullName))); }
public FileSystemItemReadRepository( IFileSystemItemDataProvider dataProvider, IFileSystemConnection connection, IDatabaseIdTableRepositoryBuilder idTableRepositoryBuilder, ILogger <FileSystemItemReadRepository> logger) { Condition.Requires(dataProvider, nameof(dataProvider)).IsNotNull(); Condition.Requires(connection, nameof(connection)).IsNotNull(); Condition.Requires(logger, nameof(logger)).IsNotNull(); _dataProvider = dataProvider; Connection = connection; _logger = logger; _idTableRepository = idTableRepositoryBuilder.Build(connection.IdTableConnectionName, connection.DataAccessContext); }
public async Task <IEnumerable <Tuple <SkinnyItemModel, ItemModel> > > GetItemModels( IFileSystemConnection connection, IReadOnlyCollection <ItemIdEntity> idEntities) { Condition.Requires(connection, nameof(connection)).IsNotNull(); Condition.Requires(idEntities, nameof(idEntities)).IsNotNull(); var skinnyItems = await GetSkinnyItems(connection, idEntities).ConfigureAwait(false); var models = new List <Tuple <SkinnyItemModel, ItemModel> >(); foreach (var skinnyItem in skinnyItems) { var itemModel = await GetModel(skinnyItem.File).ConfigureAwait(false); models.Add(new Tuple <SkinnyItemModel, ItemModel>(skinnyItem, itemModel)); } return(models); }
public async void GetSkinnyItems_IdItemEntityEmpty_ReturnsEmpty(FileSystemItemDataProvider sut, IFileSystemConnection connection) { // Act var actual = await sut.GetSkinnyItems(connection, new List <ItemIdEntity>()); // Assert actual.Should().BeEmpty(); }
public async void GetSkinnyItems_IdItemEntityNull_ExceptionThrown(FileSystemItemDataProvider sut, IFileSystemConnection connection) { // Act var exception = await Assert.ThrowsAsync(typeof(ArgumentNullException), async() => await sut.GetSkinnyItems(connection, null)); }
protected override IEnumerable <DataProviderFile> GetAllFiles(IFileSystemConnection connection) { return(GetAllFilesWrapper(connection)); }
public virtual IEnumerable <DataProviderFile> GetAllFilesWrapper(IFileSystemConnection connection) { return(null); }