public async Task <Dtos.V10.ProductOut> HandleAsync(Queries.V10.GetProductByNameQuery query, CancellationToken cancellationToken = new CancellationToken()) { var product = await _dbContext.Set <Product>() .FirstOrDefaultAsync(x => x.Name == query.Name, cancellationToken: cancellationToken); return(_objectAssembler.To <Dtos.V10.ProductOut>(product)); }
public async Task <PagedResult <Dtos.V10.ProductOut> > HandleAsync(Queries.V10.PagedProductQuery query, CancellationToken cancellationToken = new CancellationToken()) { query.Keyword = query.Keyword?.Trim(); PagedResult <Product> result; if (string.IsNullOrWhiteSpace(query.Keyword)) { result = await _dbContext.Set <Product>() .OrderByDescending(x => x.LastModificationTime) .PagedQueryAsync(query.Page, query.Limit); } else { result = await _dbContext.Set <Product>() .Where(x => x.Name.Contains(query.Keyword)) .OrderByDescending(x => x.LastModificationTime) .PagedQueryAsync(query.Page, query.Limit); } return(new PagedResult <Dtos.V10.ProductOut>(result.Page, result.Limit, result.Total, _objectAssembler.To <IEnumerable <Dtos.V10.ProductOut> >(result.Data))); }
protected Repository(TemplateDbContext dbContext) { Db = dbContext; DbSet = dbContext.Set <TEntity>(); }