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