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;
            }
        }
示例#2
0
        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)
            };
        }