public async Task UpdateCase([FromBody] PostPaymentUpdateRequest parkingPermitUpdateRequest) => await _parkingPermitsService.UpdateCase(parkingPermitUpdateRequest);
public async Task UpdateCase(PostPaymentUpdateRequest update) { HttpResponse <Case> response = await _verintServiceGateway.GetCase(update.Reference); if (!response.IsSuccessStatusCode || response.ResponseContent is null) { throw new HttpResponseException(HttpStatusCode.FailedDependency, $"{nameof(ParkingPermitsService)}: {nameof(UpdateCase)}: " + $"{nameof(_verintServiceGateway)} {nameof(_verintServiceGateway.GetCase)} " + $"returned {response.StatusCode}"); } var paymentMessage = update.PaymentStatus.ToPaymentString(); Case crmCase = response.ResponseContent; string cachedResponse = await _distributedCache.GetStringAsync(update.Reference); if (string.IsNullOrEmpty(cachedResponse)) { throw new HttpResponseException(HttpStatusCode.FailedDependency, $"{nameof(ParkingPermitsService)}: {nameof(UpdateCase)}: " + $"{nameof(_distributedCache)}: Verint Reference = {update.Reference}, " + $"{nameof(cachedResponse)} {nameof(string.IsNullOrEmpty)}"); } ParkingPermitsRequest parkingPermitsRequest = JsonSerializer.Deserialize <ParkingPermitsRequest>(cachedResponse); crmCase.CaseTitle = parkingPermitsRequest.WhatApplication switch { PermitConstants.NEW_RESIDENT_PERMIT_VALUE => $"{PermitConstants.NEW_RESIDENT_PERMIT_TEXT} - {paymentMessage}", PermitConstants.NEW_VISITOR_PERMIT_VALUE => $"{PermitConstants.NEW_VISITOR_PERMIT_TEXT} - {paymentMessage}", PermitConstants.RENEW_RESIDENT_PERMIT_VALUE => $"{PermitConstants.RENEW_RESIDENT_PERMIT_TEXT} - {paymentMessage}", PermitConstants.RENEW_VISITOR_PERMIT_VALUE => $"{PermitConstants.RENEW_VISITOR_PERMIT_TEXT} - {paymentMessage}", _ => string.Empty }; if (update.PaymentStatus.Equals(EPaymentStatus.Success)) { int amountTakenPostion = crmCase.Description.IndexOf("Amount taken:"); if (amountTakenPostion >= 0) { crmCase.Description = $"{crmCase.Description.Substring(0, amountTakenPostion)} Amount taken: £{parkingPermitsRequest.CalculatedCost}"; } var updateCasedescription = await _verintServiceGateway.UpdateCaseDescription(crmCase); if (!updateCasedescription.IsSuccessStatusCode) { _logger.LogError($"{nameof(ParkingPermitsService.UpdateCase)}: " + $"{nameof(_verintServiceGateway)} {nameof(_verintServiceGateway.UpdateCaseDescription)} " + $"{crmCase.CaseReference} failed"); } _mailHelper.SendParkingPermitEmail(EMailTemplate.GenericReport, update.Reference, parkingPermitsRequest); } var updateCaseTitle = await _verintServiceGateway.UpdateCaseTitle(crmCase); if (!updateCaseTitle.IsSuccessStatusCode) { _logger.LogError($"{nameof(ParkingPermitsService.UpdateCase)}: " + $"{nameof(_verintServiceGateway)} {nameof(_verintServiceGateway.UpdateCaseTitle)} " + $"{crmCase.CaseReference} failed"); } }