Example #1
0
        public async Task <OperationResult <GetCustomersResponse> > GetCustomersAsync(GetCustomersRequest request)
        {
            var requestResult = request.Validate();

            if (!requestResult.Status)
            {
                var message = $"Error: Invalid request: {requestResult.Message}";
                _logger.LogError(message);

                return(OperationResult <GetCustomersResponse> .Failure(message));
            }

            var getCustomersOperationResult = await _getCustomersHandler.HandleAsync(request).ConfigureAwait(false);

            return(getCustomersOperationResult);
        }
        public async Task <IActionResult> Get(GetCustomersRequest request)
        {
            var requestStatus = request.Validate();

            if (!requestStatus.Status)
            {
                _logger.LogError($"Error: Invalid request. {requestStatus.Message}");

                return(BadRequest("Invalid Request"));
            }

            var getCustomersStatus = await _customerService.GetCustomersAsync(request);

            if (!getCustomersStatus.Status)
            {
                _logger.LogError($"Error: Cannot retrieve customers");

                return(StatusCode((int)HttpStatusCode.InternalServerError));
            }

            return(Ok(getCustomersStatus.Data));
        }
Example #3
0
        public async Task <OperationResult <GetCustomersResponse> > GetCustomersAsync(GetCustomersRequest request)
        {
            var isValid = request.Validate();

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

            var operationResult = await _customerRepository.GetCustomersAsync().ConfigureAwait(false);

            if (operationResult.Status)
            {
                _logger.LogInformation("Retrieved customers successfully");

                var displayCustomers = operationResult.Data.Select(x => new CustomerDisplayModel(x.Name, x.Address));
                return(OperationResult <GetCustomersResponse> .Success(new GetCustomersResponse(displayCustomers)));
            }

            _logger.LogError("Error: Cannot get customers");
            return(OperationResult <GetCustomersResponse> .Failure("Cannot get customers"));
        }
        public async Task <OperationResult <GetCustomersResponse> > HandleAsync(GetCustomersRequest input)
        {
            var result = input.Validate();

            if (!result.Status)
            {
                _logger.LogError($"Error: {result.Message}");
            }

            var getCustomersOperation = await _customerRepository.GetCustomersAsync(new PageModel()).ConfigureAwait(false);

            if (!getCustomersOperation.Status)
            {
                var message = $"Error: Cannot retrieve customers {getCustomersOperation.Message}";
                _logger.LogError(message);

                return(OperationResult <GetCustomersResponse> .Failure(message));
            }

            var displayCustomers = getCustomersOperation.Data.Select(x => new DisplayCustomer(x.Id, x.FullName));

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