public async Task <string> CreateCase(BridgesStructuresReport bridgesStructuresReport) { Case crmCase = CreateCrmCaseObject(bridgesStructuresReport); try { StockportGovUK.NetStandard.Gateways.Response.HttpResponse <string> response = await _VerintServiceGateway.CreateCase(crmCase); if (!response.IsSuccessStatusCode) { throw new Exception("Status code not successful"); } Person person = new Person { FirstName = bridgesStructuresReport.FirstName, LastName = bridgesStructuresReport.LastName, Email = bridgesStructuresReport.Email, Phone = bridgesStructuresReport.Phone, }; _mailHelper.SendEmail(person, EMailTemplate.BridgesStructuresReport, response.ResponseContent); return(response.ResponseContent); } catch (Exception ex) { throw new Exception($"CRMService CreateBridgesOrStructuresService an exception has occured while creating the case in verint service", ex); } }
private Case CreateCrmCaseObject(BridgesStructuresReport bridgesStructuresReport) { List <BridgesStructuresConfiguration> events = _bridgesStructuresConfig.Value.BridgesStructuresConfigurations; BridgesStructuresConfiguration bridgesStructuresInfo = new BridgesStructuresConfiguration(); foreach (BridgesStructuresConfiguration e in events) { if (e.AffectedStructure == bridgesStructuresReport.StructureAffected && e.TypeOfRequest == bridgesStructuresReport.TypeOfRequest) { bridgesStructuresInfo.AffectedStructure = e.AffectedStructure; bridgesStructuresInfo.TypeOfRequest = e.TypeOfRequest; bridgesStructuresInfo.Code = e.Code; bridgesStructuresInfo.Name = e.Name; bridgesStructuresInfo.Classification = e.Classification; break; } } Case crmCase = new Case { EventCode = int.Parse(bridgesStructuresInfo.Code), EventTitle = _configuration.GetSection("CrmCaseSettings").GetSection("EventTitle").Value, Classification = bridgesStructuresInfo.Classification, Description = GenerateDescription(bridgesStructuresReport), Street = new Street { Reference = bridgesStructuresReport.StreetAddress.PlaceRef } }; if (!string.IsNullOrEmpty(bridgesStructuresReport.FirstName) && !string.IsNullOrEmpty(bridgesStructuresReport.LastName)) { crmCase.Customer = new Customer { Forename = bridgesStructuresReport.FirstName, Surname = bridgesStructuresReport.LastName }; if (!string.IsNullOrEmpty(bridgesStructuresReport.Email)) { crmCase.Customer.Email = bridgesStructuresReport.Email; } if (!string.IsNullOrEmpty(bridgesStructuresReport.Phone)) { crmCase.Customer.Telephone = bridgesStructuresReport.Phone; } } _logger.LogInformation(JsonConvert.SerializeObject(crmCase)); return(crmCase); }
private string GenerateDescription(BridgesStructuresReport bridgesStructuresReport) { StringBuilder description = new StringBuilder(); if (bridgesStructuresReport.TypeOfRequest == "safetyIssue" || bridgesStructuresReport.TypeOfRequest == "roadTrafficAccident") { description.Append($"Damage additional information: {bridgesStructuresReport.Details}"); description.Append(Environment.NewLine); } if (bridgesStructuresReport.TypeOfRequest == "generalEnquiry") { description.Append($"General Enquiry: {bridgesStructuresReport.GeneralEnquiry}"); description.Append(Environment.NewLine); } description.Append($"Location additional information: {bridgesStructuresReport.FurtherInformation}"); return(description.ToString()); }
public async Task <IActionResult> Post([FromBody] BridgesStructuresReport bridgesStructuresReport) { string result = await _bridgesStructuresService.CreateCase(bridgesStructuresReport); return(Ok(result)); }