static MissionInvoiceDto GetMissionInvoice() { MissionInvoiceDto missionInvoice = new MissionInvoiceDto { Mission = new MissionDto { Id = 29137, Date = new DateTime(2017, 1, 3), StartTime = "7.30", EndTime = "8.30", Customer = new CustomerDto { Name = "BERTHAS AS C/O FINDAL&KROGH" }, DemoSiteContactName = "Demo Site Contact", ShopContactPersonName = "Shop Contact", ShopAgreedUponPlacement = "Shop Agreed", SelectedEquipments = new string[] { "3", "4" }, ReportCustomer = true, Other = "Other 111", Info = "Info 222", Received = "Ja", Samples = "smaksprøver", Accessories = "beger", Sales = "salg", FeedbackCustomer = "feedback Customer", FeedBackDemoSite = "feedback Demo Site", DemoWorker = new DemoWorkerDto { FirstName = "Tove", LastName = "Ingvaldsen", Address = "Ripnesbakken 9" }, DemoSite = new DemoSiteDto { Name = "AGDER", Phone = "123456789", Address = "", PostalCode = "0000", City = "A", Account = "987654321" }, MissionGoods = new GoodDto[] { new GoodDto { Text = "Good 1", Amount = 2, Price = 2 }, new GoodDto { Text = "Good 2", Amount = 5, Price = 12 }, }, Front = "front section", Rollups = "rollups/popups section" }, Invoice = new InvoiceDto { StartHour = "7.30", KMStart = 3, EndHour = "10.00", KMEnd = 5, ExtraTransport = 3, KMTotal = 2, TotalHour = 4, Bought = 2, Salary = 35 }, customerProductList = new [] { new MissionProductDto { ProductName = "Customer 1 Product 1", Accessories = "Accesssories 1", CategoryName = "Category 1", Sales = "Sales 1", Samples = "Samples 1", SubCategoryName = "Sub Category 1" }, new MissionProductDto { ProductName = "Product 2", Accessories = "Accesssories 2", CategoryName = "Category 2", Sales = "Sales 2", Samples = "Samples 2", SubCategoryName = "Sub Category 2" } }, customerProductList2 = new [] { new MissionProductDto { ProductName = "Customer 2 Product 1", Accessories = "Accesssories 1", CategoryName = "Category 1", Sales = "Sales 1", Samples = "Samples 1", SubCategoryName = "Sub Category 1" }, new MissionProductDto { ProductName = "Product 2", Accessories = "Accesssories 2", CategoryName = "Category 2", Sales = "Sales 2", Samples = "Samples 2", SubCategoryName = "Sub Category 2" } } }; return(missionInvoice); }
static string MergeDataWithHtmlTemplate(MissionInvoiceDto missionInvoice, string htmlTemplate) { var htmlContent = htmlTemplate; var imgFolder = $"{GetProjectFSPath()}/images"; var checkedImg = $"{GetProjectFSPath()}/images/checkmark.png"; var unCheckedImg = $"{GetProjectFSPath()}/images/checkbox_unchecked.png"; htmlContent = htmlContent.Replace("{{logoImg}}", $"{imgFolder}/logo3.png") .Replace("{{missionId}}", missionInvoice.Mission.Id.ToString()) .Replace("{{missionDate}}", missionInvoice.Mission.Date.ToString("dd.MM.yyyy")) .Replace("{{currentDate}}", DateTime.Now.ToString("dd.MM.yyyy")) .Replace("{{customer1}}", missionInvoice.Mission.Customer.Name) .Replace("{{demoSiteContactName}}", missionInvoice.Mission.DemoSiteContactName) .Replace("{{shopContactPersonName}}", missionInvoice.Mission.ShopContactPersonName) .Replace("{{shopAgreedUponPlacement}}", missionInvoice.Mission.ShopAgreedUponPlacement) .Replace("{{product1}}", missionInvoice.Mission.Product) .Replace("{{productCat1}}", missionInvoice.Mission.ProductCat1) .Replace("{{productSubCat1}}", missionInvoice.Mission.ProductSubCat1) .Replace("{{dress}}", missionInvoice.Mission.Dress) .Replace("{{front}}", missionInvoice.Mission.Front) .Replace("{{rollups}}", missionInvoice.Mission.Rollups) .Replace("{{bordCheckImg}}", missionInvoice.Mission.SelectedEquipments.Contains("1") ? checkedImg : unCheckedImg) .Replace("{{stekeovnCheckImg}}", missionInvoice.Mission.SelectedEquipments.Contains("2") ? checkedImg : unCheckedImg) .Replace("{{kokeplateCheckImg}}", missionInvoice.Mission.SelectedEquipments.Contains("3") ? checkedImg : unCheckedImg) .Replace("{{mikrobCheckImg}}", missionInvoice.Mission.SelectedEquipments.Contains("4") ? checkedImg : unCheckedImg) .Replace("{{reportMissionCheckImg}}", missionInvoice.Mission.ReportCustomer == true ? checkedImg : unCheckedImg) .Replace("{{other}}", missionInvoice.Mission.Other) .Replace("{{info}}", missionInvoice.Mission.Info) .Replace("{{demoWorker}}", $"{missionInvoice.Mission.DemoWorker.FullName}, {missionInvoice.Mission.DemoWorker.Address}") .Replace("{{demoSite}}", missionInvoice.Mission.DemoSite.Name) .Replace("{{phoneNo}}", missionInvoice.Mission.DemoSite.Phone) .Replace("{{start}}", missionInvoice.Mission.StartTime) .Replace("{{end}}", missionInvoice.Mission.EndTime) .Replace("{{address}}", $"{missionInvoice.Mission.DemoSite.Address}, {missionInvoice.Mission.DemoSite.PostalCode} {missionInvoice.Mission.DemoSite.City}") .Replace("{{account}}", missionInvoice.Mission.DemoSite.Account) .Replace("{{received}}", missionInvoice.Mission.Received) .Replace("{{sample}}", missionInvoice.Mission.Samples) .Replace("{{accessories}}", missionInvoice.Mission.Accessories) .Replace("{{sales}}", missionInvoice.Mission.Sales) .Replace("{{feedbackCustomer}}", missionInvoice.Mission.FeedbackCustomer) .Replace("{{feedBackDemoSite}}", missionInvoice.Mission.FeedBackDemoSite) .Replace("{{startHour}}", missionInvoice.Invoice.StartHour) .Replace("{{endHour}}", missionInvoice.Invoice.EndHour) .Replace("{{kmStart}}", missionInvoice.Invoice.KMStart.ToString()) .Replace("{{kmEnd}}", missionInvoice.Invoice.KMEnd.ToString()) .Replace("{{kmTotal}}", missionInvoice.Invoice.KMTotal.ToString()) .Replace("{{totalHour}}", missionInvoice.Invoice.TotalHour.ToString()) .Replace("{{extraTransport}}", missionInvoice.Invoice.ExtraTransport.ToString()) .Replace("{{bought}}", missionInvoice.Invoice.Bought.ToString()) .Replace("{{salary}}", missionInvoice.Invoice.Salary.ToString()); var i = 0; while (i < 5) { var curIndex = i + 1; var goodName = i < missionInvoice.Mission.MissionGoods.Length ? missionInvoice.Mission.MissionGoods[i].Text : string.Empty; var goodAmount = i < missionInvoice.Mission.MissionGoods.Length ? missionInvoice.Mission.MissionGoods[i].Amount.ToString() : string.Empty; var goodPrice = i < missionInvoice.Mission.MissionGoods.Length ? missionInvoice.Mission.MissionGoods[i].Price.ToString() : string.Empty; htmlContent = htmlContent.Replace($"{{goodName{curIndex}}}", goodName) .Replace($"{{goodAmount{curIndex}}}", goodAmount) .Replace($"{{goodPrice{curIndex}}}", goodPrice); i++; } //Customer 1 Product content htmlContent = htmlContent.Replace($"{{Customer1_ProductZone}}", GetCustomerProductHtml(missionInvoice.customerProductList)); //Show/hide customer 2 sections if (missionInvoice.Mission.Customer2 != null) { htmlContent = htmlContent.Replace("<!--Customer2", "").Replace("Customer2-->", "") .Replace("{{product2}}", missionInvoice.Mission.Product2) .Replace("{{productCat2}}", missionInvoice.Mission.ProductCat2) .Replace("{{productSubCat2}}", missionInvoice.Mission.ProductSubCat2) .Replace("{{customer2}}", missionInvoice.Mission.Customer2?.Name) .Replace($"{{Customer2_ProductZone}}", GetCustomerProductHtml(missionInvoice.customerProductList2)); } return(htmlContent); }