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)); }
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))); }