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);
        }
Beispiel #5
0
        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();
        }
Beispiel #7
0
        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);
            }
        }