public static async Task <IActionResult> Run( [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "customers/{id}")] HttpRequest request, string id, [Inject] ICustomerService customerService, ILogger logger ) { logger.LogInformation($"Calling {nameof(GetCustomersFunction)}"); if (!int.TryParse(id, out var customerId)) { logger.LogError($"Error: Invalid request, id must be integer: {id}"); return(new BadRequestObjectResult($"Invalid request, id must be integer: {id}")); } var getSpecificCustomerRequest = new GetSpecificCustomerRequest(customerId); var isValid = getSpecificCustomerRequest.Validate(); if (!isValid) { logger.LogError("Error: Invalid request"); return(new BadRequestObjectResult("Invalid request")); } var operationResult = await customerService.GetSpecificCustomerAsync(getSpecificCustomerRequest).ConfigureAwait(false); if (operationResult.Status) { return(new OkObjectResult(operationResult.Data)); } return(new BadRequestObjectResult(operationResult.Message)); }
public async Task <OperationResult <CustomerDisplayModel> > GetSpecificCustomerAsync(GetSpecificCustomerRequest request) { var isValid = request.Validate(); if (!isValid) { _logger.LogError("Error: Invalid request"); return(OperationResult <CustomerDisplayModel> .Failure("Invalid request")); } var operationResult = await _customerRepository.GetCustomerAsync(request.Id).ConfigureAwait(false); if (operationResult.Status) { _logger.LogInformation("Customer retrieved successfully"); return(OperationResult <CustomerDisplayModel> .Success(new CustomerDisplayModel(operationResult.Data.Name, operationResult.Data.Address))); } _logger.LogError("Error: Cannot get specific customer"); return(OperationResult <CustomerDisplayModel> .Failure("Cannot get specific customer")); }