/// <summary> /// Get the schedule for specific insurance type (Motor or Home or Travel or Domestic) /// </summary> /// <param name="request">Schedule request.</param> /// <returns>Schedule file path.</returns> public DownloadScheduleResponse GetScheduleFilePath(DownloadScheuleRequest request) { try { string FilePath = string.Empty; if (request.InsuranceType == Constants.Insurance.Travel) { TravelInsurance travel = new TravelInsurance(); TravelSavedQuotationResponse travelresult = travel.GetSavedQuotationByPolicy(request.DocNo, "portal", request.AgentCode, request.IsEndorsement, request.EndorsementID); FilePath = this.CreateTravelSchudles(travelresult, false); } else if (request.InsuranceType == Constants.Insurance.Motor) { MotorInsurance motor = new MotorInsurance(); MotorSavedQuotationResponse motorresult = motor.GetSavedMotorPolicy(request.DocNo, "", request.AgentCode, request.IsEndorsement, request.EndorsementID, request.RenewalCount); FilePath = this.CreateMotorSchudles(motorresult.MotorPolicyDetails, false); } else if (request.InsuranceType == Constants.Insurance.DomesticHelp) { DomesticHelp domestic = new DomesticHelp(); DomesticHelpSavedQuotationResponse domesticresult = domestic.GetSavedDomesticPolicy(request.DocNo, request.AgentCode, request.IsEndorsement, request.EndorsementID); FilePath = this.CreateDomesticSchudles(domesticresult, false); } else { HomeInsurance home = new HomeInsurance(); HomeSavedQuotationResponse homeresult = home.GetSavedQuotationPolicy(request.DocNo, "", request.AgentCode, request.IsEndorsement, request.EndorsementID, request.RenewalCount); FilePath = CreateHomeSchudles(homeresult, false); } return(new DownloadScheduleResponse { FilePath = FilePath, IsTransactionDone = true }); } catch (Exception ex) { return(new DownloadScheduleResponse { IsTransactionDone = false, TransactionErrorMessage = ex.Message }); } }
/// <summary> /// Get home schedule. /// </summary> /// <param name="home">home policy properties.</param> /// <param name="isMailSend">Mail send to the client or not.</param> /// <returns>Schedule file path.</returns> public string CreateHomeSchudles(HomeSavedQuotationResponse home, bool isMailSend = true) { try { string FileName = home.HomeInsurancePolicy.DocumentNo + ".pdf"; string FileSavePath = AppDomain.CurrentDomain.BaseDirectory + "/ScheduleDocuments/" + home.HomeInsurancePolicy.InsuredCode + "/" + home.HomeInsurancePolicy.DocumentNo + "/"; if (!System.IO.Directory.Exists(FileSavePath)) { System.IO.Directory.CreateDirectory(FileSavePath); } string FullPath = FileSavePath + FileName; string htmlCode = File.ReadAllText(ExtensionMethods.CopyFile(AppDomain.CurrentDomain.BaseDirectory + "/Templates/Home.html", FileSavePath + "Home.html")); string DomesticWorkersDiv = System.IO.File.ReadAllText(ExtensionMethods.CopyFile(AppDomain.CurrentDomain.BaseDirectory + "/Templates/HomeDomestic.html", FileSavePath + "HomeDomestic.html")); string HomesubItemsDiv = System.IO.File.ReadAllText(ExtensionMethods.CopyFile(AppDomain.CurrentDomain.BaseDirectory + "/Templates/HomeSingleItems.html", FileSavePath + "HomeSingleItems.html")); string memberslist = string.Empty; string members = string.Empty; string homeitems = string.Empty; string homesubitems = string.Empty; string endorsementtype = string.Empty; string scheduleName = "Home Schedule"; int WorkerCount = 1; foreach (var list in home.DomesticHelp) { string sex = list.Sex == 'M' ? "Male" : "Female"; members = DomesticWorkersDiv.Replace("{{Name}}", list.Name) .Replace("{{Sex}}", sex) .Replace("{{DOB}}", list.DOB.CovertToLocalFormat()) .Replace("{{CPR}}", list.CPR) .Replace("{{SumInsured}}", Convert.ToString(list.SumInsured)) .Replace("{{WorkerCount}}", WorkerCount.ToString()) .Replace("{{Occupation}}", list.Occupation); memberslist += members; WorkerCount++; } foreach (var list in home.HomeSubItems) { homeitems = HomesubItemsDiv.Replace("{{Item_description}}", list.SubItemName) .Replace("{{Item_Value}}", Convert.ToString(list.SumInsured)); homesubitems += homeitems; } if (!string.IsNullOrEmpty(home.HomeInsurancePolicy.EndorsementType)) { endorsementtype = Utility.GetHomeEndorsementType(home.HomeInsurancePolicy.EndorsementType, home.HomeInsurancePolicy); } scheduleName = home.HomeInsurancePolicy.RenewalCount > 0 ? "Home Renewal Schedule" : "Home Schedule"; htmlCode = htmlCode.Replace("{{DomesticWorkersDiv}}", memberslist) .Replace("{{PolicyNo}}", home.HomeInsurancePolicy.DocumentNo) .Replace("{{SingleItemsDiv}}", homesubitems) .Replace("{{InsuredName}}", home.HomeInsurancePolicy.InsuredName) .Replace("{{BuildingNo}}", !string.IsNullOrEmpty(home.HomeInsurancePolicy.BuildingNo) ? Convert.ToString("Building No:" + home.HomeInsurancePolicy.BuildingNo) : "") .Replace("{{BlockNo}}", home.HomeInsurancePolicy.BlockNo) .Replace("{{RoadNo}}", home.HomeInsurancePolicy.RoadNo) .Replace("{{Town}}", home.HomeInsurancePolicy.Area) .Replace("{{BuildingAge}}", Convert.ToString(home.HomeInsurancePolicy.BuildingAge)) .Replace("{{BuildingValue}}", Convert.ToString(home.HomeInsurancePolicy.BuildingValue)) .Replace("{{ContentValue}}", Convert.ToString(home.HomeInsurancePolicy.ContentValue)) .Replace("{{JewelleryCover}}", home.HomeInsurancePolicy.JewelleryCover) .Replace("{{TotalSumInsured}}", Convert.ToString((home.HomeInsurancePolicy.BuildingValue + home.HomeInsurancePolicy.ContentValue))) .Replace("{{PolicyStartDate}}", home.HomeInsurancePolicy.PolicyStartDate.CovertToLocalFormat()) .Replace("{{ExpiryDate}}", home.HomeInsurancePolicy.PolicyExpiryDate.CovertToLocalFormat()) .Replace("{{SumInsured}}", Convert.ToString(home.HomeInsurancePolicy.SumInsured)) .Replace("{{Premium}}", Convert.ToString(home.HomeInsurancePolicy.PremiumAfterDiscount)) .Replace("{{Bank}}", Convert.ToString(home.HomeInsurancePolicy.FinancierCode)) .Replace("{{1}}", home.HomeInsurancePolicy.IsSafePropertyInsured == 'Y' ? "Yes" : "No") .Replace("{{2}}", home.HomeInsurancePolicy.IsRiotStrikeDamage == 'Y' ? "Yes" : "No") .Replace("{{3}}", home.HomeInsurancePolicy.IsRequireDomestic == 'Y' ? "Yes" : "No") .Replace("{{4}}", home.HomeInsurancePolicy.IsSingleItemAboveContents == 'Y' ? "Yes" : "No") .Replace("{{5}}", home.HomeInsurancePolicy.IsJointOwnership == 'Y' ? "Yes" : "No") .Replace("{{6}}", home.HomeInsurancePolicy.IsPropertyInConnectionTrade == 'Y' ? "Yes" : "No") .Replace("{{7}}", home.HomeInsurancePolicy.IsPropertyCoveredOtherInsurance == 'Y' ? "Yes" : "No") .Replace("{{8}}", home.HomeInsurancePolicy.IsPropertyInsuredSustainedAnyLoss == 'Y' ? "Yes" : "No") .Replace("{{9}}", home.HomeInsurancePolicy.IsPropertyUndergoingConstruction == 'Y' ? "Yes" : "No") .Replace("{{Vat}}", Convert.ToString(home.HomeInsurancePolicy.TaxOnPremium)) .Replace("{{Total}}", Convert.ToString(home.HomeInsurancePolicy.PremiumAfterDiscount + home.HomeInsurancePolicy.TaxOnPremium)) .Replace("{{HomeSchedule}}", scheduleName) .Replace("{{EndorsementType}}", endorsementtype); if (home.HomeInsurancePolicy.ResidanceTypeCode == "H") { htmlCode = htmlCode.Replace("{{FlatNo}}", "House No : " + home.HomeInsurancePolicy.HouseNo); } else if (home.HomeInsurancePolicy.ResidanceTypeCode == "F") { htmlCode = htmlCode.Replace("{{FlatNo}}", "Flat No : " + home.HomeInsurancePolicy.FlatNo); } if (home.HomeSubItems.Count == 0) { string singleitemdiv = @"<TABLE WIDTH=638 CELLPADDING=7 CELLSPACING=0><COL WIDTH=463> <COL WIDTH=145><TR><TD COLSPAN=2 WIDTH=622 VALIGN=TOP STYLE='border: 1px solid #00000a; padding-top: 0in; padding-bottom: 0in; padding-left: 0.08in; padding-right: 0.08in'> <P ALIGN = CENTER><FONT FACE = 'serif'><FONT SIZE =3 STYLE ='font-size: 11pt'><B> Single items </B></FONT></FONT></P></TD></TR></TABLE>"; htmlCode = htmlCode.Replace(singleitemdiv, ""); } if (System.IO.File.Exists(FullPath)) { System.IO.File.Delete(FullPath); } byte[] byteArray = Encoding.UTF8.GetBytes(htmlCode); MemoryStream stream = new MemoryStream(byteArray); HtmlToPdf.Generate(stream, FullPath, "", ""); return(FullPath); } catch (Exception ex) { return(""); } }