コード例 #1
0
        public List <CustomerResponse> Search(SearchCustomersRequest request)
        {
            var customers         = _customerRepository.GetBy(p => p.IsActive);
            var customersResponse = _mapper.Map <List <CustomerResponse> >(customers);

            return(customersResponse);
        }
コード例 #2
0
        public async Task If_There_Are_Customers_Matching_The_Filter_Criteria_They_Must_Be_Returned()
        {
            //
            // Arrange
            //
            var mockedCustomerRepository = new Mock <ICustomerRepository>();

            mockedCustomerRepository.Setup(x => x.GetCustomersByNameAsync("john")).ReturnsAsync(OperationResult <List <Customer> > .Success(new List <Customer>
            {
                new Customer {
                    FirstName = "john"
                },
                new Customer {
                    LastName = "JOHN"
                }
            }));
            var customerService = new CustomerService(mockedCustomerRepository.Object, Mock.Of <ILogger <CustomerService> >());
            var searchRequest   = new SearchCustomersRequest("john");
            //
            // Act
            //
            var operationResult = await customerService.SearchCustomersAsync(searchRequest);

            //
            // Assert
            //
            Assert.True(operationResult.Status);
            Assert.Equal(2, operationResult.Data.Customers.Count);
        }
        public async Task <SearchCustomersResponse> SearchCustomersAsync(
            IList <Predicate> predicates,
            DateRange dateRange,
            IList <OrderBy> ordering,
            Paging pageInfo)
        {
            var request = new SearchCustomersRequest
            {
                Predicates = predicates,
                DateRange  = dateRange,
                Ordering   = ordering,
                PageInfo   = pageInfo
            };

            return(await CustomerManagementService.CallAsync((s, r) => s.SearchCustomersAsync(r), request));
        }
コード例 #4
0
        public async Task If_There_Are_No_Customers_Matching_The_Filter_Criteria_The_Operation_Must_Be_Success_And_Results_Must_Be_Empty()
        {
            //
            // Arrange
            //
            var mockedCustomerRepository = new Mock <ICustomerRepository>();

            mockedCustomerRepository.Setup(x => x.GetCustomersByNameAsync(It.IsAny <string>())).ReturnsAsync(OperationResult <List <Customer> > .Success(new List <Customer>()));
            var customerService = new CustomerService(mockedCustomerRepository.Object, Mock.Of <ILogger <CustomerService> >());
            var searchRequest   = new SearchCustomersRequest("cheranga");
            //
            // Act
            //
            var operationResult = await customerService.SearchCustomersAsync(searchRequest);

            //
            // Assert
            //
            Assert.True(operationResult.Status);
            Assert.Empty(operationResult.Data.Customers);
        }
コード例 #5
0
        private IObservable <IList <Customer> > GetRecentlyUpdatedCustomers(CustomersApi customersApi, CustomerQuery query, string cursor)
        {
            var request = new SearchCustomersRequest(Cursor: cursor, Query: query);

            return(customersApi
                   .SearchCustomersAsync(request)
                   .ToObservable()
                   .SelectMany(
                       response =>
            {
                if (response.Cursor == null)
                {
                    return Observable
                    .Return(response.Customers);
                }
                else
                {
                    return Observable
                    .Return(response.Customers)
                    .Concat(GetRecentlyUpdatedCustomers(customersApi, query, response.Cursor));
                }
            }));
        }
コード例 #6
0
        public ActionResult <List <CustomerResponse> > Get([FromQuery] SearchCustomersRequest request)
        {
            var customersResponse = _customerService.Search(request);

            return(Ok(customersResponse));
        }
コード例 #7
0
ファイル: CustomerService.cs プロジェクト: Cheranga/Alinta
        public async Task <OperationResult <SearchCustomersResponse> > SearchCustomersAsync(SearchCustomersRequest request)
        {
            var isValid = request.Validate();

            if (!isValid)
            {
                _logger.LogError($"Error. Invalid request: {JsonConvert.SerializeObject(request)}");
                return(OperationResult <SearchCustomersResponse> .Failure("Invalid request"));
            }

            var operationResult = await _customerRepository.GetCustomersByNameAsync(request.Name).ConfigureAwait(false);

            if (!operationResult.Status)
            {
                _logger.LogError($"Error: {operationResult.Message}");
                return(OperationResult <SearchCustomersResponse> .Failure("Cannot search for customers, error occured"));
            }

            var displayCustomers = operationResult.Data.Select(x => x.ToDisplay());

            return(OperationResult <SearchCustomersResponse> .Success(new SearchCustomersResponse(displayCustomers)));
        }