public IActionResult GetClientsBySession([FromRoute][Required] string id) { StatusResponseDto errorStatus; try { /// <summary> /// Método para guardar request en logs /// </summary> _securityService.RequestLog("api/customers/GetClientsBySession: " + id); GetCustomersByCallResponseModel businessResult = new GetCustomersByCallResponseModel(); GetCallIdBySessionIdResponseModel callModel = _callService.GetCallIdBySessionId(id); if (callModel != null && callModel.Status == ResultStatus.SUCCESS) { businessResult = _customerService.GetCustomersByCallId(callModel.CallId); } else { businessResult.Status = ResultStatus.NOT_FOUND; businessResult.Message = callModel.Message; } switch (businessResult.Status) { case ResultStatus.SUCCESS: List <CustomerDto> response = _mapper.Map <List <CustomerDto> >(businessResult.Customers); return(Ok(response)); case ResultStatus.ACCESS_DENIED: return(StatusCode(StatusCodes.Status401Unauthorized)); case ResultStatus.NOT_AUTHORIZED: return(StatusCode(StatusCodes.Status403Forbidden)); case ResultStatus.NOT_FOUND: errorStatus = _mapper.Map <StatusResponseDto>(businessResult); return(StatusCode(StatusCodes.Status404NotFound, errorStatus)); default: errorStatus = _mapper.Map <StatusResponseDto>(businessResult); return(StatusCode(StatusCodes.Status500InternalServerError, errorStatus)); } } catch (Exception e) { return(StatusCode(StatusCodes.Status500InternalServerError, e)); } }
/// <summary> /// Retorna el listado de clientes segun la llamada indicada /// </summary> /// <param name="id">Id de la llamada.</param> /// <returns> /// Modelo <see cref="GetCustomersByCallResponseModel"/> con los datos de la respuesta. /// </returns> public GetCustomersByCallResponseModel GetCustomersByCallId(int id) { var responseModel = new GetCustomersByCallResponseModel { Status = ResultStatus.SUCCESS }; try { var context = _callsCustomersRepository.GetContext(); using (var dbTransaction = context.Database.BeginTransaction()) { var tableCustomer = _callsCustomersRepository.GetTable(); List <CallsCustomers> callCustomersDB = tableCustomer.Include(c => c.CustomerPhone).Where(c => c.CallId == id).OrderBy(c => c.CustomerName).ToList(); if (callCustomersDB == null || callCustomersDB.Count == 0) { responseModel.Status = ResultStatus.NOT_FOUND; responseModel.Message = "No data for this call."; return(responseModel); } responseModel.Customers = callCustomersDB.ConvertAll(cp => new CallsCustomersModel { CallId = cp.CallId, CustomerId = cp.CustomerId, CustomerName = cp.CustomerName, CustomerType = Utilities.GetCustomerType(cp.CustomerType), PhoneNumberList = new List <CustomersPhonesModel>(cp.CustomerPhone.ConvertAll(cpm => new CustomersPhonesModel() { Id = cpm.Id, CustomerId = cpm.CustomerId, PhoneNumber = cpm.PhoneNumber, PhoneType = cpm.PhoneType, })), }); } } catch (Exception e) { responseModel.Status = ResultStatus.ERROR; responseModel.Message = e.Message; } return(responseModel); }