private async Task FinaliseQuote(Nominations request, ApttusQuote newQuote) { try { if (newQuote == null) { return; } var apttusCartRequest = MappingHelper.Map(createQuoteRequestToFinaliseQuoteMapper, newQuote, "Mapping to a Finalise Quote Request"); var apttusCartResponse = await cartManagementClient.FinalizeQuotebyCartIdAsync(apttusCartRequest).ConfigureAwait(false); if (apttusCartResponse?.Result?.ResultCode == MappingConstants.Success) { request.DataArea.Nomination.StatusDescription = $"Apttus product created, policy ID: {apttusCartResponse?.DataArea?.ProductQuoteReference?.FirstOrDefault()?.PolicyNumber}"; request.DataArea.Nomination.StatusCode = MappingConstants.Success; await serviceBusSender.SendMessage(request).ConfigureAwait(false); } else { var errorData = apttusCartResponse?.Result?.Message?.Errors?.FirstOrDefault(); request.DataArea.Nomination.StatusCode = MappingConstants.Error; request.DataArea.Nomination.StatusDescription = $"Error encountered while finalising the quote in Apttus. System: {errorData?.System}, Code:{errorData?.Code}, Description:{errorData?.Description} - {errorData?.ExtraDetail}"; } } catch (Exception ex) { request.DataArea.Nomination.StatusCode = MappingConstants.Error; request.DataArea.Nomination.StatusDescription = ex.Message; } }
public async Task <ApttusQuote> CreateQuoteAsync(ApttusQuote request) { _ = request ?? throw new ArgumentNullException(nameof(request)); Log.Information("Calling QuoteManagement-CreateQuote to create a new Apttus Quote"); var response = await PostAsync <ApttusQuote, ApttusQuote>( request, path, actionContextAccessor.ActionContext.HttpContext.GetXCorrelationId()).ConfigureAwait(false); Log.Information("Response received from QuoteManagement-CreateQuote for Creating a new Apttus Quote"); return(response); }
public void Map(Tuple <Nominations.Model.Nominations, IdentifierIdentificationType> source, ApttusQuote destination) { _ = source ?? throw new ArgumentNullException(nameof(source)); _ = destination ?? throw new ArgumentNullException(nameof(destination)); _ = source ?? throw new ArgumentNullException(nameof(source)); var sourceNomination = source.Item1; var sourcePartyIdentifierIdentification = source.Item2; destination.ApplicationArea = new ApplicationArea { Message = new Message { CreationDateTime = DateTime.Now.ToLocalTime(), Sender = new Sender { SystemComponentId = MappingConstants.SystemComponentId, SystemReferenceId = $"Nomination: {sourceNomination.DataArea.Nomination.NominationID} {sourceNomination.DataArea.Nomination.NominationDate}", SystemId = MappingConstants.SystemId, } } }; destination.DataArea = new DataArea { ProductAgreementList = GetProductAgreementList(sourceNomination.DataArea.Nomination, sourcePartyIdentifierIdentification) }; }