public static CreateQuoteResponse CreateSubscribeRecord(Quote q, Submission s, ILogHandler logHandler, IPolicyService subsribeService) { var insuredList = new InsuredCollection(); if (q.AdditionalInsuredList != null) { insuredList.AddRange(q.AdditionalInsuredList .Select(insured => new Insured { AddlInsdId = insured.InsuredId, AddlInsdNm = insured.InsuredId == 0 ? insured.InsuredName : null, AddlInsdTy = insured.InsuredType })); } var policyContract = new PolicyContract { AccYr = q.AccountYear.ToString(), BenchPrm = q.BenchmarkPremium, BindSt = q.TechnicalPricingBindStatus, BkrNo = "???", // TODO - not referenced in CreateQuote sp BkrPsu = q.BrokerPseudonym, // No validation carried out in service validation sp BkrSeqId = q.BrokerSequenceId, Brokerage = q.Brokerage, COB = q.COBId, DeclineReason = q.DeclinatureReason, DOM = q.Domicile, EntSt = q.EntryStatus, ExpyDt = (q.ExpiryDate.HasValue) ? q.ExpiryDate.Value.ToString("yyyyMMdd") : null, ExsAmt = q.ExcessAmount, FacyPolId = (String.IsNullOrEmpty(q.RenPolId) ? q.FacilityRef : String.Empty), LdrNo = q.LeaderNo, Ldr = q.Leader, IncpDt = (q.InceptionDate.HasValue) ? q.InceptionDate.Value.ToString("yyyyMMdd") : null, InsdId = q.InsuredId, InsdNm = q.InsuredName, AddlInsuredCollection = insuredList, LmtAmt = q.LimitAmount, LmtCcy = q.LimitCCY, MOA = q.MOA, OrigOff = q.OriginatingOfficeId, PolTy = q.PolicyType, PricingCcy = q.Currency, RenPolId = q.RenPolId, Status = q.SubmissionStatus, TechPrm = q.TechnicalPremium, UnitPsu = "AGY", Uwr = q.UnderwriterCode, ExsCcy = q.ExcessCCY, Method = q.TechnicalPricingMethod, NonLonBkr = q.NonLondonBrokerCode, PctgAmt = q.TechnicalPricingPremiumPctgAmt, TechPmTy = "TechPm", // TODO - not referenced in CreateQuote sp PolDsc = q.Description, // These are the fields required for edit only TimeStamp = q.SubscribeTimestamp, PolId = q.SubscribeReference, // PolAnlyCd // TODO: Update this win value from form. WordReqd = (string.IsNullOrEmpty(q.WordingRequired)) ? "" : q.WordingRequired, AggsReqd = (string.IsNullOrEmpty(q.AggsRequired)) ? "" : q.AggsRequired, FSA_Class = (string.IsNullOrEmpty(q.FSAClass)) ? "" : q.FSAClass, CtcNm = q.BrokerContact, //CtcTelNo = q.BrokerContactPhone, //CtcEmail = q.BrokerContactEmail }; if (q.QuoteExpiryDate != null) { policyContract.SettDueDt = SetSettlementDueDate(q.QuoteExpiryDate.Value, s.ExpiryDateOffset, q.InceptionDate); } if (!string.IsNullOrEmpty(q.BrokerContactPhone)) { policyContract.CtcTelNo = q.BrokerContactPhone; } if (!string.IsNullOrEmpty(q.BrokerContactEmail)) { policyContract.CtcEmail = q.BrokerContactEmail; } if (q.RenewalRate.HasValue) { policyContract.RenewalRate = q.RenewalRate; } if (q.RenewalConditions.HasValue) { policyContract.RenewalConditions = q.RenewalConditions; } if (q.RenewalDeductibles.HasValue) { policyContract.RenewalDeductibles = q.RenewalDeductibles; } if (q.RenewalExposure.HasValue) { policyContract.RenewalExposurePctg = q.RenewalExposure; } if (q.RenewalBase.HasValue) { policyContract.RenewalBase = q.RenewalBase; } if (q.RenewalFull.HasValue) { policyContract.RenewalFull = q.RenewalFull; } var createQuoteResponse = subsribeService.CreateQuote(new CreateQuoteRequest { objPolicyContract = policyContract }); if (createQuoteResponse.CreateQuoteResult.ErrorInfo == null) { q.SubscribeReference = createQuoteResponse.objInfoCollection.PolId; var doc = new XmlDocument(); doc.LoadXml(createQuoteResponse.CreateQuoteResult.OutputXml); var subscribeTimestamp = default(long); q.SubscribeTimestamp = long.TryParse(doc.GetElementsByTagName("TimeStamp")[0].InnerText, out subscribeTimestamp) ? subscribeTimestamp : 0; SyncQuoteCreateAndUpdate(s, q, subsribeService); } else { logHandler.WriteLog(createQuoteResponse.CreateQuoteResult.ErrorInfo.ErrorXML, LogSeverity.Error, LogCategory.BusinessComponent); throw new ApplicationException( string.IsNullOrEmpty(createQuoteResponse.CreateQuoteResult.ErrorInfo.Description) ? ParseDetailedError(createQuoteResponse.CreateQuoteResult.ErrorInfo.DetailedDescription) : createQuoteResponse.CreateQuoteResult.ErrorInfo.Description); } return(createQuoteResponse); }
public static UpdatePolicyResponse UpdateSubscribeRecord(Quote q, Submission s, ILogHandler logHandler, IPolicyService subsribeService) { var insuredList = new InsuredCollection(); if (s.AdditionalInsuredList != null) { insuredList.AddRange(s.AdditionalInsuredList .Select(insured => new Insured { AddlInsdId = insured.InsuredId, AddlInsdNm = insured.InsuredId == 0 ? insured.InsuredName : null, AddlInsdTy = insured.InsuredType })); } var policyContract = new PolicyContract { AccYr = q.AccountYear.ToString(), BenchPrm = q.BenchmarkPremium, BindSt = q.TechnicalPricingBindStatus, BkrNo = "???", // TODO - not referenced in CreateQuote sp BkrPsu = s.BrokerPseudonym, // No validation carried out in service validation sp BkrSeqId = s.BrokerSequenceId, Brokerage = s.Brokerage, COB = q.COBId, DeclineReason = q.DeclinatureReason, DOM = s.Domicile, EntSt = q.EntryStatus, ExpyDt = (q.ExpiryDate.HasValue) ? q.ExpiryDate.Value.ToString("yyyyMMdd") : null, ExsAmt = q.ExcessAmount, FacyPolId = q.FacilityRef, LdrNo = s.LeaderNo, Ldr = s.Leader, IncpDt = (q.InceptionDate.HasValue) ? q.InceptionDate.Value.ToString("yyyyMMdd") : null, InsdId = s.InsuredId, InsdNm = s.InsuredName, AddlInsuredCollection = insuredList, LmtAmt = q.LimitAmount, LmtCcy = q.LimitCCY, MOA = q.MOA, OrigOff = q.OriginatingOfficeId, PolTy = q.PolicyType, PricingCcy = q.Currency, RenPolId = q.RenPolId, Status = q.SubmissionStatus, TechPrm = q.TechnicalPremium, UnitPsu = "AGY", Uwr = s.UnderwriterCode, ExsCcy = q.ExcessCCY, Method = q.TechnicalPricingMethod, NonLonBkr = s.NonLondonBrokerCode, PctgAmt = q.TechnicalPricingPremiumPctgAmt, SettDueDt = q.QuoteExpiryDate.ToString("yyyyMMdd"), TechPmTy = "TechPm", // TODO - not referenced in CreateQuote sp PolDsc = q.Description, // These are the fields required for edit only TimeStamp = q.SubscribeTimestamp, PolId = q.SubscribeReference, CtcNm = (string.IsNullOrEmpty(s.BrokerContact)) ? s.NewBrokerContactName : s.BrokerContact, CtcTelNo = s.NewBrokerContactPhoneNumber, CtcEmail = s.NewBrokerContactEmail }; if (q.RenewalRate.HasValue) policyContract.RenewalRate = q.RenewalRate; if (q.RenewalConditions.HasValue) policyContract.RenewalConditions = q.RenewalConditions; if (q.RenewalDeductibles.HasValue) policyContract.RenewalDeductibles = q.RenewalDeductibles; if (q.RenewalExposure.HasValue) policyContract.RenewalExposurePctg = q.RenewalExposure; if (q.RenewalBase.HasValue) policyContract.RenewalBase = q.RenewalBase; if (q.RenewalFull.HasValue) policyContract.RenewalFull = q.RenewalFull; var updateResp = subsribeService.UpdatePolicy(new UpdatePolicyRequest { objPolicyContract = policyContract }); if (updateResp.UpdatePolicyResult.ErrorInfo == null) { var doc = new XmlDocument(); doc.LoadXml(updateResp.UpdatePolicyResult.OutputXml); q.SubscribeTimestamp = long.Parse(doc.GetElementsByTagName("TimeStamp")[0].InnerText); q.FacilityRef = string.IsNullOrEmpty(doc.GetElementsByTagName("NewFacyPolId")[0].InnerText) ? q.FacilityRef : doc.GetElementsByTagName("NewFacyPolId")[0].InnerText; } else { logHandler.WriteLog(updateResp.UpdatePolicyResult.ErrorInfo.ErrorXML, LogSeverity.Error, LogCategory.BusinessComponent); throw new ApplicationException( string.IsNullOrEmpty(updateResp.UpdatePolicyResult.ErrorInfo.Description) ? ParseDetailedError(updateResp.UpdatePolicyResult.ErrorInfo.DetailedDescription) : updateResp.UpdatePolicyResult.ErrorInfo.Description); } return updateResp; }
public static CreateQuoteResponse CreateSubscribeRecord(Quote q, Submission s, ILogHandler logHandler, IPolicyService subsribeService) { var insuredList = new InsuredCollection(); if (q.AdditionalInsuredList != null) { insuredList.AddRange(q.AdditionalInsuredList .Select(insured => new Insured { AddlInsdId = insured.InsuredId, AddlInsdNm = insured.InsuredId == 0 ? insured.InsuredName : null, AddlInsdTy = insured.InsuredType })); } var policyContract = new PolicyContract { AccYr = q.AccountYear.ToString(), BenchPrm = q.BenchmarkPremium, BindSt = q.TechnicalPricingBindStatus, BkrNo = "???", // TODO - not referenced in CreateQuote sp BkrPsu = q.BrokerPseudonym, // No validation carried out in service validation sp BkrSeqId = q.BrokerSequenceId, Brokerage = q.Brokerage, COB = q.COBId, DeclineReason = q.DeclinatureReason, DOM = q.Domicile, EntSt = q.EntryStatus, ExpyDt = (q.ExpiryDate.HasValue) ? q.ExpiryDate.Value.ToString("yyyyMMdd") : null, ExsAmt = q.ExcessAmount, FacyPolId = (String.IsNullOrEmpty(q.RenPolId) ? q.FacilityRef : String.Empty), LdrNo = q.LeaderNo, Ldr = q.Leader, IncpDt = (q.InceptionDate.HasValue) ? q.InceptionDate.Value.ToString("yyyyMMdd") : null, InsdId = q.InsuredId, InsdNm = q.InsuredName, AddlInsuredCollection = insuredList, LmtAmt = q.LimitAmount, LmtCcy = q.LimitCCY, MOA = q.MOA, OrigOff = q.OriginatingOfficeId, PolTy = q.PolicyType, PricingCcy = q.Currency, RenPolId = q.RenPolId, Status = q.SubmissionStatus, TechPrm = q.TechnicalPremium, UnitPsu = "AGY", Uwr = q.UnderwriterCode, ExsCcy = q.ExcessCCY, Method = q.TechnicalPricingMethod, NonLonBkr = q.NonLondonBrokerCode, PctgAmt = q.TechnicalPricingPremiumPctgAmt, TechPmTy = "TechPm", // TODO - not referenced in CreateQuote sp PolDsc = q.Description, // These are the fields required for edit only TimeStamp = q.SubscribeTimestamp, PolId = q.SubscribeReference, // PolAnlyCd // TODO: Update this win value from form. WordReqd = (string.IsNullOrEmpty(q.WordingRequired)) ? "" : q.WordingRequired, AggsReqd = (string.IsNullOrEmpty(q.AggsRequired)) ? "" : q.AggsRequired, FSA_Class = (string.IsNullOrEmpty(q.FSAClass)) ? "" : q.FSAClass, CtcNm = q.BrokerContact, //CtcTelNo = q.BrokerContactPhone, //CtcEmail = q.BrokerContactEmail }; if (q.QuoteExpiryDate != null) policyContract.SettDueDt = SetSettlementDueDate(q.QuoteExpiryDate.Value, s.ExpiryDateOffset, q.InceptionDate); if (!string.IsNullOrEmpty(q.BrokerContactPhone)) policyContract.CtcTelNo = q.BrokerContactPhone; if (!string.IsNullOrEmpty(q.BrokerContactEmail)) policyContract.CtcEmail = q.BrokerContactEmail; if (q.RenewalRate.HasValue) policyContract.RenewalRate = q.RenewalRate; if (q.RenewalConditions.HasValue) policyContract.RenewalConditions = q.RenewalConditions; if (q.RenewalDeductibles.HasValue) policyContract.RenewalDeductibles = q.RenewalDeductibles; if (q.RenewalExposure.HasValue) policyContract.RenewalExposurePctg = q.RenewalExposure; if (q.RenewalBase.HasValue) policyContract.RenewalBase = q.RenewalBase; if (q.RenewalFull.HasValue) policyContract.RenewalFull = q.RenewalFull; var createQuoteResponse = subsribeService.CreateQuote(new CreateQuoteRequest { objPolicyContract = policyContract }); if (createQuoteResponse.CreateQuoteResult.ErrorInfo == null) { q.SubscribeReference = createQuoteResponse.objInfoCollection.PolId; var doc = new XmlDocument(); doc.LoadXml(createQuoteResponse.CreateQuoteResult.OutputXml); var subscribeTimestamp = default(long); q.SubscribeTimestamp = long.TryParse(doc.GetElementsByTagName("TimeStamp")[0].InnerText, out subscribeTimestamp) ? subscribeTimestamp : 0; SyncQuoteCreateAndUpdate(s, q, subsribeService); } else { logHandler.WriteLog(createQuoteResponse.CreateQuoteResult.ErrorInfo.ErrorXML, LogSeverity.Error, LogCategory.BusinessComponent); throw new ApplicationException( string.IsNullOrEmpty(createQuoteResponse.CreateQuoteResult.ErrorInfo.Description) ? ParseDetailedError(createQuoteResponse.CreateQuoteResult.ErrorInfo.DetailedDescription) : createQuoteResponse.CreateQuoteResult.ErrorInfo.Description); } return createQuoteResponse; }