コード例 #1
0
        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));
        }
コード例 #2
0
        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)));
        }
コード例 #3
0
 protected Repository(TemplateDbContext dbContext)
 {
     Db    = dbContext;
     DbSet = dbContext.Set <TEntity>();
 }