Ejemplo n.º 1
0
        public async Task <TEntity> SelectFirstAsync(TableMap tableMap, SelectColumn columns, Filter filter)
        {
            var builder = SqlBuilder.Select(tableMap);
            var sql     = builder.BuildSelect(columns, filter, out object parameters);

            using (var connection = _connectionFactory.CreateConnection())
            {
                var result = await connection.QueryAsync <dynamic>(sql, parameters);

                return(_entityFactory.Build(result.FirstOrDefault()));
            }
        }
Ejemplo n.º 2
0
        private async Task Test_Add <TProduct>()
            where TProduct : class, IEntity, ICanBeValidated
        {
            var store   = new MongoStore <TProduct>(_client);
            var product = EntityFactory.Build <TProduct>();

            var result = await store.Add(product);

            var dto = await _client
                      .Collection <TProduct>()
                      .AsQueryable()
                      .SingleAsync(x => x.Id == result.Id);

            Assert.That(dto, Is.EqualTo(result));
        }
Ejemplo n.º 3
0
        private async Task Test_Get <TProduct>()
            where TProduct : class, IEntity, ICanBeValidated
        {
            var store   = new MongoStore <TProduct>(_client);
            var product = EntityFactory.Build <TProduct>();

            await _client
            .Collection <TProduct>()
            .InsertOneAsync(product);

            var result = await store.Get(product.Id);

            Assert.That(product, Is.Not.Null);
            Assert.That(result, Is.EqualTo(product));
        }
Ejemplo n.º 4
0
        private async Task Test_Remove <TProduct>()
            where TProduct : class, IEntity, ICanBeValidated
        {
            var store   = new MongoStore <TProduct>(_client);
            var product = EntityFactory.Build <TProduct>();

            await _client
            .Collection <TProduct>()
            .InsertOneAsync(product);

            var deletedItems = await store.Remove(product.Id);

            Assert.That(deletedItems, Is.EqualTo(1));

            var foundAny = await _client
                           .Collection <TProduct>()
                           .AsQueryable()
                           .AnyAsync(x => true);

            Assert.That(foundAny, Is.False);
        }
Ejemplo n.º 5
0
        private async Task Test_Replace <TProduct>()
            where TProduct : class, IEntity, ICanBeValidated
        {
            var store   = new MongoStore <TProduct>(_client);
            var product = EntityFactory.Build <TProduct>();

            await _client
            .Collection <TProduct>()
            .InsertOneAsync(product);

            var updatedProduct = EntityFactory.Build <TProduct>(product.Id);

            await store.Replace(updatedProduct);

            var result = await _client
                         .Collection <TProduct>()
                         .AsQueryable()
                         .SingleAsync(x => x.Id == product.Id);

            Assert.That(result, Is.EqualTo(updatedProduct));
        }