public static ClaimAdvice StoreClaimAdvice(ClaimAdvice claimAdvice, List <string> filePaths, string databaseRecoveryPath) { try { int isSaved; using (var context = new PickeringsContext()) { context.ClaimAdvices.Add(claimAdvice); isSaved = context.SaveChanges(); claimAdvice.ReferenceNumber = "PCAF" + claimAdvice.id; context.SaveChanges(); } if (isSaved == 0) { WriteCustomErrorLog.WriteLog("An error occured while saving claim advice - Email-" + claimAdvice.ContactEmail.ToString()); CsvGenerator.SaveAsCsV(claimAdvice, @databaseRecoveryPath, filePaths, true); } } catch (Exception ex) { WriteCustomErrorLog.WriteLog("An error occured while saving claim advice - Email-" + claimAdvice.ContactEmail.ToString()); CsvGenerator.SaveAsCsV(claimAdvice, @databaseRecoveryPath, filePaths, true); if (filePaths.Count > 0) { string serverPath = Path.GetDirectoryName(filePaths[0]); new FileHandler().DeleteFiles(serverPath); } throw new Exception(ex.Message); } return(claimAdvice); }
public void SendMail(List <string> attachmentFilesPath, ClaimAdvice claimAdvice, IDictionary <string, string> Configurations) { string[] emailBodys = HtmlTableGenerator.CreateHtmlMail(claimAdvice); bool mailSentStatus = EmailSender.SendMail(Configurations, emailBodys[0], "Pickerings Claim Submission – Reference Number " + claimAdvice.ReferenceNumber, attachmentFilesPath); if (!mailSentStatus) { WriteCustomErrorLog.WriteLog("Email failed to AJG - Ref # : " + claimAdvice.ReferenceNumber.ToString()); CsvGenerator.SaveAsCsV(claimAdvice, @Configurations["EmailToAJGrecoveryPath"], attachmentFilesPath); } Configurations["ToAddress"] = claimAdvice.ContactEmail; mailSentStatus = EmailSender.SendMail(Configurations, emailBodys[1], "Pickerings Claim Submission – Reference Number " + claimAdvice.ReferenceNumber); if (!mailSentStatus) { WriteCustomErrorLog.WriteLog("Email failed to initiator - Ref # : " + claimAdvice.ReferenceNumber.ToString()); CsvGenerator.SaveAsCsV(claimAdvice, @Configurations["EmailToInitiatorRecoveryPath"], attachmentFilesPath); } if (attachmentFilesPath.Count > 0) { string serverPath = Path.GetDirectoryName(attachmentFilesPath[0]); new FileHandler().DeleteFiles(serverPath); } }
public JsonResult FormPost(FormCollection formValues) { string claimsAdviceData = Request.Form["claimsAdvice"]; var dateformat = "dd/MM/yyyy"; var dateTimeConverter = new IsoDateTimeConverter { DateTimeFormat = dateformat }; ClaimAdvice claimAdvice = JsonConvert.DeserializeObject <ClaimAdvice>(claimsAdviceData, dateTimeConverter); claimAdvice = RemoveEmptyItems(claimAdvice); List <HttpPostedFileBase> fileCollection = new List <HttpPostedFileBase>(); try { foreach (string file in Request.Files) { var fileContent = Request.Files[file]; if (fileContent != null && fileContent.ContentLength > 0) { fileCollection.Add(fileContent); } } } catch (Exception ex) { WriteCustomErrorLog.WriteLog("Error occured while adding file collection"); throw new Exception(ex.Message); } List <string> attachmentFilesPath = new FileHandler().fileSave(fileCollection, claimAdvice.ContactEmail + DateTime.Now.ToString("ddMMyyhhmmsstt")); fileCollection.Clear(); IDictionary <string, string> Configurations = PickeringsRepository.GetConfigurationSetting(); ClaimAdvice storedClaimAdvice = PickeringsRepository.StoreClaimAdvice(claimAdvice, attachmentFilesPath, Configurations["DatabaseRecoveryPath"]); Thread MailThread = new Thread(new ThreadStart(delegate() { SendMail(attachmentFilesPath, storedClaimAdvice, Configurations); })); MailThread.Start(); string[] referenceNumber = { claimAdvice.ReferenceNumber, string.Format("{0:dd/MM/yy hh:mm:ss tt}", storedClaimAdvice.CreationDate) }; return(Json(referenceNumber, JsonRequestBehavior.AllowGet)); }
public ClaimAdvice RemoveEmptyItems(ClaimAdvice claimAdvice) { ClaimAdvice objClaimAdvice = new ClaimAdvice(); objClaimAdvice = claimAdvice; try { objClaimAdvice.SupportingFileUploads.RemoveAll(item => item.UploadFilename == "" || item.UploadFilename == null); objClaimAdvice.ThirdPartyFileUploads.RemoveAll(item => item.UploadFilename == "" || item.UploadFilename == null); objClaimAdvice.SceneWitnesses.RemoveAll(item => item.Name == "" && item.Address == "" && item.Phone == "" && item.Registration == ""); objClaimAdvice.ThirdPartyBlames.RemoveAll(item => item.Name == "" && item.Address == "" && item.Phone == "" && item.Registration == ""); objClaimAdvice.Claims.RemoveAll(item => item.PropertyDescription == "" && item.ItemAge == ""); } catch (Exception ex) { WriteCustomErrorLog.WriteLog("Error occured while removing empty list items from claim advice"); throw new Exception(ex.Message); } return(objClaimAdvice); }
public static string[] CreateHtmlMail(ClaimAdvice claimAdvice) { string htmlBodyTOAJG, htmlBodyTOCustomer = string.Empty; try { string TableBodyForAJG = AddTable(claimAdvice, "AJG"); htmlBodyTOAJG = new FileHandler().ReadFile(AppDomain.CurrentDomain.BaseDirectory + "App_Data\\PickeringEmailTemplateToAJG.html"); htmlBodyTOAJG = htmlBodyTOAJG.Replace("####DateTime####", claimAdvice.CreationDate.ToString()); htmlBodyTOAJG = htmlBodyTOAJG.Replace("####TableBody####", TableBodyForAJG); htmlBodyTOCustomer = new FileHandler().ReadFile(AppDomain.CurrentDomain.BaseDirectory + "App_Data\\PiceringEmailTemplateToCustomer.html"); string TableBodyForCus = AddTable(claimAdvice, "Cus"); htmlBodyTOCustomer = htmlBodyTOCustomer.Replace("####DateTime####", claimAdvice.CreationDate.ToString()); htmlBodyTOCustomer = htmlBodyTOCustomer.Replace("####ContactName####", claimAdvice.ContactName); htmlBodyTOCustomer = htmlBodyTOCustomer.Replace("####TableBody####", TableBodyForCus); } catch (Exception ex) { throw new Exception(ex.Message); } return(new string[] { htmlBodyTOAJG, htmlBodyTOCustomer }); }
public static void SaveAsCsV(ClaimAdvice claimAdvice, string backupLocation, List <string> filePaths, bool isDbError = false) { string path = backupLocation + "//" + " " + ((isDbError) ? claimAdvice.ContactEmail + " " + claimAdvice.CreationDate.ToString("dd_MM_yyyy_hh_mm_ss") : claimAdvice.ReferenceNumber); if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } foreach (string filePath in filePaths) { string FileName = Path.GetFileName(filePath); System.IO.File.Copy(filePath, path + "//" + FileName, true); } TextWriter textWriter = new StreamWriter(path + "//" + "Data.csv"); var csv = new CsvWriter(textWriter); csv.WriteField("ReferenceNumber"); csv.WriteField(claimAdvice.ReferenceNumber); csv.NextRecord(); csv.WriteField("Insured Business Name"); csv.WriteField(claimAdvice.InsuredBusinessName); csv.NextRecord(); csv.WriteField("Insured ABN"); csv.WriteField(claimAdvice.InsuredABN); csv.NextRecord(); csv.WriteField("Insured Business Address"); csv.WriteField(claimAdvice.InsuredBusinessAddress); csv.NextRecord(); csv.WriteField("Contact Name"); csv.WriteField(claimAdvice.ContactName); csv.NextRecord(); csv.WriteField("Contact Email"); csv.WriteField(claimAdvice.ContactEmail); csv.NextRecord(); csv.WriteField("Date of Event"); csv.WriteField(claimAdvice.DateofEvent); csv.NextRecord(); csv.WriteField("Time of Day"); csv.WriteField(claimAdvice.TimeofDay); csv.NextRecord(); csv.WriteField("Where did the event occur?"); csv.WriteField(claimAdvice.EventAddress); csv.NextRecord(); csv.WriteField("How did the loss or damage occur? Please describe the damage."); csv.WriteField(claimAdvice.HowLossDescription); csv.NextRecord(); csv.NextRecord(); csv.WriteField("Is any Third Party to blame for the loss or damage?"); csv.WriteField(claimAdvice.ThirdPartyBlame); csv.NextRecord(); foreach (var item in claimAdvice.ThirdPartyBlames) { csv.NextRecord(); csv.WriteField("Third Party Details (" + (claimAdvice.ThirdPartyBlames.IndexOf(item) + 1).ToString() + ")"); csv.NextRecord(); csv.WriteField("Name"); csv.WriteField(item.Name); csv.NextRecord(); csv.WriteField("Registration"); csv.WriteField(item.Registration); csv.NextRecord(); csv.WriteField("Address"); csv.WriteField(item.Address); csv.NextRecord(); csv.WriteField("Phone"); csv.WriteField(item.Phone); csv.NextRecord(); } csv.NextRecord(); csv.WriteField("Have you received, or do you anticipate receiving, notice of any claim from or on behalf of third parties?"); csv.WriteField(claimAdvice.ReceiveNoticeThirdParty); csv.NextRecord(); if (claimAdvice.ReceiveNoticeThirdParty == "Yes") { csv.WriteField("Please provide details"); csv.WriteField(claimAdvice.ReceiveNoticeThirdPartyDetails); csv.NextRecord(); } foreach (var item in claimAdvice.SceneWitnesses) { csv.NextRecord(); csv.WriteField("Witnesses at Scene(" + (claimAdvice.SceneWitnesses.IndexOf(item) + 1).ToString() + ")"); csv.NextRecord(); csv.WriteField("Name"); csv.WriteField(item.Name); csv.NextRecord(); csv.WriteField("Registration"); csv.WriteField(item.Registration); csv.NextRecord(); csv.WriteField("Address"); csv.WriteField(item.Address); csv.NextRecord(); csv.WriteField("Phone"); csv.WriteField(item.Phone); csv.NextRecord(); } csv.NextRecord(); csv.WriteField("Is the claim for a burglary or theft?"); csv.WriteField(claimAdvice.BurglaryorTheft); if (claimAdvice.BurglaryorTheft == "Yes") { csv.NextRecord(); csv.WriteField("Police Station"); csv.WriteField(claimAdvice.PoliceStation); csv.NextRecord(); csv.WriteField("Police Officer Name"); csv.WriteField(claimAdvice.PoliceOfficerName); csv.NextRecord(); csv.WriteField("Police Report Number"); csv.WriteField(claimAdvice.PoliceReportNumber); } csv.NextRecord(); foreach (var item in claimAdvice.Claims) { csv.NextRecord(); csv.WriteField("Claim Details (" + (claimAdvice.Claims.IndexOf(item) + 1).ToString() + ")"); csv.NextRecord(); csv.WriteField("Description of lost and/or damaged Property"); csv.WriteField(item.PropertyDescription); csv.NextRecord(); csv.WriteField("Item Age"); csv.WriteField(item.ItemAge); csv.NextRecord(); csv.WriteField("Original Cost"); csv.WriteField(item.OriginalCost); csv.NextRecord(); csv.WriteField("Replacement/Repair Cost"); csv.WriteField(item.ReplacementValue); csv.NextRecord(); csv.WriteField("Amount Claimed"); csv.WriteField(item.AmountClaimed); csv.NextRecord(); } csv.NextRecord(); csv.WriteField("Total amount claimed"); csv.WriteField(claimAdvice.TotalAmountClaimed); csv.NextRecord(); csv.WriteField("Third Party Liability Claims"); csv.WriteField(claimAdvice.ThirdPartyLiabilityClaim); csv.NextRecord(); if (claimAdvice.ThirdPartyLiabilityClaim == "Yes") { csv.WriteField("Name of Third Party"); csv.WriteField(claimAdvice.ThirdPartyName); csv.NextRecord(); csv.WriteField("Permanent Address"); csv.WriteField(claimAdvice.ThirdPartyPermanentAddress); csv.NextRecord(); csv.WriteField("Nature and extent of injuries/damage"); csv.WriteField(claimAdvice.InjuriesDamageDescription); csv.NextRecord(); csv.WriteField("Have you received any correspondence from Third Parties?"); csv.WriteField(claimAdvice.ThirdPartyCorrespondence); csv.NextRecord(); foreach (var item in claimAdvice.ThirdPartyFileUploads) { csv.NextRecord(); csv.WriteField("Third Party Correspondence File Upload Link Table (" + (claimAdvice.ThirdPartyFileUploads.IndexOf(item) + 1).ToString() + ")"); csv.NextRecord(); csv.WriteField("Upload Description"); csv.WriteField(item.UploadDescription); csv.NextRecord(); csv.WriteField("Upload Description"); csv.WriteField(item.UploadFilename); csv.NextRecord(); } csv.NextRecord(); csv.WriteField("Have you made any admission of liability?"); csv.WriteField(claimAdvice.AdmissionofLiability); csv.NextRecord(); csv.WriteField("Give details"); csv.WriteField(claimAdvice.AdmissionofLiabilityDetails); csv.NextRecord(); } foreach (var item in claimAdvice.SupportingFileUploads) { csv.NextRecord(); csv.WriteField("Third Party Correspondence File Upload Link Table (" + (claimAdvice.SupportingFileUploads.IndexOf(item) + 1).ToString() + ")"); csv.NextRecord(); csv.WriteField("Upload Description"); csv.WriteField(item.UploadDescription); csv.NextRecord(); csv.WriteField("Upload Description"); csv.WriteField(item.UploadFilename); csv.NextRecord(); } csv.NextRecord(); csv.WriteField("Other Comments"); csv.WriteField(claimAdvice.OtherComments); csv.NextRecord(); textWriter.Close(); }
public static string AddTable(ClaimAdvice claimAdvice, string toWhom) { using (StringWriter sw = new StringWriter()) { Table t = new Table(); t.CellPadding = 8; t.CellSpacing = 0; t.BorderWidth = 2; t.Font.Name = "Arial"; if (claimAdvice.ReferenceNumber != null) { t.Rows.Add(GetRow("Reference Number", claimAdvice.ReferenceNumber)); } if (claimAdvice.InsuredBusinessName != null) { t.Rows.Add(GetRow("Insured Business Name", claimAdvice.InsuredBusinessName)); } if (claimAdvice.InsuredABN != null) { t.Rows.Add(GetRow("Insured ABN", claimAdvice.InsuredABN)); } if (claimAdvice.InsuredBusinessAddress != null) { t.Rows.Add(GetRow("Insured Business Address", claimAdvice.InsuredBusinessAddress)); } if (claimAdvice.PolicyNumber != null && toWhom == "AJG") { t.Rows.Add(GetRow("Policy Number", claimAdvice.PolicyNumber)); } if (claimAdvice.ContactName != null) { t.Rows.Add(GetRow("Contact Name", claimAdvice.ContactName)); } if (claimAdvice.ContactEmail != null) { t.Rows.Add(GetRow("Contact Email", claimAdvice.ContactEmail)); } if (claimAdvice.DateofEvent.ToString("dd/MM/yyyy") != "01/01/0001") { t.Rows.Add(GetRow("Date of Event", claimAdvice.DateofEvent.ToString("dd/MM/yyyy"))); } if (claimAdvice.TimeofDay != null) { t.Rows.Add(GetRow("Time of Day", claimAdvice.TimeofDay)); } if (claimAdvice.EventAddress != null) { t.Rows.Add(GetRow("Where did the event occur?", claimAdvice.EventAddress)); } if (claimAdvice.HowLossDescription != null) { t.Rows.Add(GetRow("How did the loss or damage occur?", claimAdvice.HowLossDescription)); } t.RenderControl(new HtmlTextWriter(sw)); string html = sw.ToString(); html += "<br/>"; Table t2 = new Table(); t2.CellPadding = 8; t2.CellSpacing = 0; t2.BorderWidth = 2; t2.Font.Name = "Arial"; t2.Rows.Add(GetRow("Is any Third Party to blame for the loss or damage? ", claimAdvice.ThirdPartyBlame)); StringWriter sw2 = new StringWriter(); t2.RenderControl(new HtmlTextWriter(sw2)); html += sw2.ToString(); html += "<br/>"; if (claimAdvice.ThirdPartyBlame == "Yes") { html += CreateTablesList(claimAdvice.ThirdPartyBlames); html += "<br/>"; } Table t3 = new Table(); t3.CellPadding = 8; t3.CellSpacing = 0; t3.BorderWidth = 2; t3.Font.Name = "Arial"; t3.Rows.Add(GetRow("Have you received, or do you anticipate receiving, notice of any claim from or on behalf of third parties? ", claimAdvice.ReceiveNoticeThirdParty)); if (claimAdvice.ReceiveNoticeThirdParty == "Yes") { t3.Rows.Add(GetRow("Please provide details ", claimAdvice.ReceiveNoticeThirdPartyDetails)); } StringWriter sw3 = new StringWriter(); t3.RenderControl(new HtmlTextWriter(sw3)); html += sw3.ToString(); html += "<br/>"; Table t4 = new Table(); t4.CellPadding = 8; t4.CellSpacing = 0; t4.BorderWidth = 2; t4.Font.Name = "Arial"; t4.Rows.Add(GetRow("Any witnesses at scene?", claimAdvice.WitnessesatScene)); StringWriter sw4 = new StringWriter(); t4.RenderControl(new HtmlTextWriter(sw4)); html += sw4.ToString(); html += "<br/>"; if (claimAdvice.WitnessesatScene == "Yes") { html += CreateTablesList(claimAdvice.SceneWitnesses); html += "<br/>"; } html += "<br/>"; Table t5 = new Table(); t5.CellPadding = 8; t5.CellSpacing = 0; t5.BorderWidth = 2; t5.Font.Name = "Arial"; t5.Rows.Add(GetRow("Is the claim for a burglary or theft?", claimAdvice.BurglaryorTheft)); if (claimAdvice.BurglaryorTheft == "Yes") { t5.Rows.Add(GetRow("Police Station", claimAdvice.PoliceStation)); t5.Rows.Add(GetRow("Police Officer Name", claimAdvice.PoliceOfficerName)); t5.Rows.Add(GetRow("Police Report Number", claimAdvice.PoliceReportNumber)); } StringWriter sw5 = new StringWriter(); t5.RenderControl(new HtmlTextWriter(sw5)); html += sw5.ToString(); html += "<br/>"; html += CreateTablesList(claimAdvice.Claims); html += "<br/>"; Table t6 = new Table(); t6.CellPadding = 8; t6.CellSpacing = 0; t6.BorderWidth = 2; t6.Font.Name = "Arial"; t6.Rows.Add(GetRow("Total Amount Claimed", "AUD$" + claimAdvice.TotalAmountClaimed.ToString())); StringWriter sw6 = new StringWriter(); t6.RenderControl(new HtmlTextWriter(sw6)); html += "<br/>"; html += sw6.ToString(); html += "<br/>"; Table t6_1 = new Table(); t6_1.CellPadding = 8; t6_1.CellSpacing = 0; t6_1.BorderWidth = 2; t6_1.Font.Name = "Arial"; t6_1.Rows.Add(GetRow("Is this a Third Party Liability claim? ", claimAdvice.ThirdPartyLiabilityClaim)); StringWriter sw6_1 = new StringWriter(); t6_1.RenderControl(new HtmlTextWriter(sw6_1)); html += "<br/>"; html += sw6_1.ToString(); if (claimAdvice.ThirdPartyLiabilityClaim == "Yes") { html += "<br/>"; html += CreateTable(claimAdvice.ThirdPartyName, claimAdvice.ThirdPartyPermanentAddress, claimAdvice.InjuriesDamageDescription, claimAdvice.ThirdPartyCorrespondence); html += "<br/>"; if (claimAdvice.ThirdPartyCorrespondence == "Yes") { html += CreateTablesList(claimAdvice.ThirdPartyFileUploads); html += "<br/>"; } html += "<br/>"; Table t7 = new Table(); t7.CellPadding = 8; t7.CellSpacing = 0; t7.BorderWidth = 2; t7.Font.Name = "Arial"; t7.Rows.Add(GetRow("Have you made any admission of liability? ", claimAdvice.AdmissionofLiability)); if (claimAdvice.AdmissionofLiability == "Yes") { t7.Rows.Add(GetRow("Give details", claimAdvice.AdmissionofLiabilityDetails)); StringWriter sw7 = new StringWriter(); t7.RenderControl(new HtmlTextWriter(sw7)); html += "<br/>"; html += sw7.ToString(); } } html += "<br/>"; html += CreateTablesList(claimAdvice.SupportingFileUploads); html += "<br/>"; if (claimAdvice.OtherComments != null) { Table t8 = new Table(); t8.CellPadding = 8; t8.CellSpacing = 0; t8.BorderWidth = 2; t8.Font.Name = "Arial"; t8.Rows.Add(GetRow("Other Comments", claimAdvice.OtherComments)); StringWriter sw8 = new StringWriter(); t8.RenderControl(new HtmlTextWriter(sw8)); html += "<br/>"; html += sw8.ToString(); } html += "<br/>"; return(html); } }