예제 #1
0
        public async Task ListShouldReturnAllRecords()
        {
            // Arrange
            RepositoryHelper.ForCustomer.CreateCustomer(Guid.NewGuid(), "login-1", "description", "source");
            RepositoryHelper.ForCustomer.CreateCustomer(Guid.NewGuid(), "login-2", "description", "source");
            RepositoryHelper.ForCustomer.CreateCustomer(Guid.NewGuid(), "login-3", "description", "source");

            // Act
            var result = await _repository.ListAsync(null, null, null);

            // Assert
            result.Should().HaveCount(3);
        }
예제 #2
0
        public async Task <Result> Handle(ListCustomerQuery request, CancellationToken cancellationToken)
        {
            Result result;

            try
            {
                Expression <Func <Customer, bool> > filter = _customerOdataProvider.GetFilterPredicate(request.Filter);
                int?skip = request.Skip.ToNullableInt();
                int?top  = request.Top.ToNullableInt();

                var customerDomains = await _customerReadRepository.ListAsync(filter, skip, top);

                var customerModels = _mapper.Map <IEnumerable <CustomerModel> >(customerDomains);
                var count          = customerModels.Count();
                var customerModel  = new CustomersModel {
                    Value = customerModels, Count = count, NextLink = null
                };

                result = Result.Ok(customerModel);
            }
            catch (FilterODataException)
            {
                result = Result.Fail(new System.Collections.Generic.List <Failure>()
                {
                    new HandlerFault()
                    {
                        Code    = HandlerFaultCode.InvalidQueryFilter.Name,
                        Message = HandlerFailures.InvalidQueryFilter,
                        Target  = "$filter"
                    }
                }
                                     );
            }
            catch
            {
                result = Result.Fail(CustomFailures.ListCustomerFailure);
            }
            return(result);
        }
예제 #3
0
        public async Task <ListCustomersResponse> HandleAsync(ListCustomersRequest request)
        {
            var listResult = await _customerReadRepository.ListAsync(request.NameSearch, request.Limit);

            return(_mapper.Map <ListReadModel <CustomerIdNameReadModel>, ListCustomersResponse>(listResult));
        }