Example #1
0
        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);
        }
Example #2
0
        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);
        }
Example #4
0
        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);
 }