示例#1
0
        public async Task <ActionResult <PagedResult <Customer> > > Get([FromQuery] GetCustomersRequest request)
        {
            var validator        = new GetCustomersRequestValidator();
            var validationResult = validator.Validate(request);

            if (!validationResult.IsValid)
            {
                return(BadRequest(new { ErrorMessage = validationResult.ErrorMessage }));
            }

            var filter = _mapper.Map <GetCustomersFilter>(request);
            var result = await _customerService.GetCustomersAsync(filter);

            var customers = _mapper.Map <IEnumerable <CustomerEntity>, IEnumerable <Customer> >(result.Result.Items);

            //A pagination result will give frontend flexibility to display data in pages.
            return(Ok(new PagedResult <Customer>()
            {
                Page = result.Result.Page, TotalCount = result.Result.TotalCount, RecordsPerPage = result.Result.RecordsPerPage, Items = customers
            }));
        }
 public GetCustomersRequestValidatorTests()
 {
     sut = new GetCustomersRequestValidator();
 }