public IActionResult CreateDesign(DesignViewModel DesignformData, int PageId) { string uniqueFileName = null; // If the Photo property on the incoming model object is not null, then the user // has selected an image to upload. if (DesignformData.Photo != null) { System.Console.WriteLine("///////////////////////////////////////////"); // The image must be uploaded to the images folder in wwwroot // To get the path of the wwwroot folder we are using the inject // HostingEnvironment service provided by ASP.NET Core string uploadsFolder = Path.Combine(hostingEnvironment.WebRootPath, "images"); // To make sure the file name is unique we are appending a new // GUID value and and an underscore to the file name uniqueFileName = Guid.NewGuid().ToString() + "_" + DesignformData.Photo.FileName; string filePath = Path.Combine(uploadsFolder, uniqueFileName); // Use CopyTo() method provided by IFormFile interface to // copy the file to wwwroot/images folder DesignformData.Photo.CopyTo(new FileStream(filePath, FileMode.Create)); } Design newDesign = new Design { PromoTime = DesignformData.PromoTime, // Store the file name in PhotoPath property of the employee object // which gets saved to the Employees database table Image = uniqueFileName }; dbContext.Designs.Add(newDesign); dbContext.SaveChanges(); return(RedirectToAction("DisplayUserPage", new { id = PageId })); }
public void LoadDesignViewModel(DesignViewModel viewModel) { viewModel.Headline = GetStringValue(_languageCurrent.DESIGN_DESIGN_HEADLINE, "DESIGN_DESIGN_HEADLINE"); viewModel.Lede = GetStringValue(_languageCurrent.DESIGN_DESIGN_COPY, "DESIGN_DESIGN_COPY"); viewModel.PopLeftHeadline = GetStringValue(_languageCurrent.DESIGN_DESIGN_POPLEFT_TITLE, "DESIGN_DESIGN_POPLEFT_TITLE"); viewModel.PopLeftLede = GetStringValue(_languageCurrent.DESIGN_DESIGN_POPLEFT_COPY, "DESIGN_DESIGN_POPLEFT_COPY"); viewModel.PopRightHeadline = GetStringValue(_languageCurrent.DESIGN_DESIGN_POPRIGHT_TITLE, "DESIGN_DESIGN_POPRIGHT_TITLE"); viewModel.PopRightLede = GetStringValue(_languageCurrent.DESIGN_DESIGN_POPRIGHT_COPY, "DESIGN_DESIGN_POPRIGHT_COPY"); viewModel.PopTopHeadline = GetStringValue(_languageCurrent.DESIGN_DESIGN_POPTOP_TITLE, "DESIGN_DESIGN_POPTOP_TITLE"); viewModel.PopTopLede = GetStringValue(_languageCurrent.DESIGN_DESIGN_POPTOP_COPY, "DESIGN_DESIGN_POPTOP_COPY"); }
//Get: Design/Create public ActionResult Create() { var pizzsSizes = pizzaDb.PizzaSizes.ToList(); var pizza = pizzaDb.Ingredients.ToList(); var viewModel = new DesignViewModel() { PizzaSizes = pizzsSizes, Ingredientses = pizza }; return(View(viewModel)); }
// GET: Admin/Design public ActionResult Index(DesignViewModel model, int?page) { var currentPage = page.HasValue ? page.Value - 1 : 0; var pageSize = 10; int total = 0; var lst = _designService.GetByFilter(model.KeyWord, model.ParentCategoryId, currentPage, pageSize, out total); model.Designs = new PagedList <Design>(lst, currentPage, pageSize, total); ViewData["ParentCategories"] = _categoryService.GetParents(1); //parent type production return(View(model)); }
public async Task <IActionResult> Design(CancellationToken token) { AddBreadcrumb("Company", "/Company"); AddBreadcrumb("Design", "/Company/Design"); var company = await GetCompany(token); var viewModel = new DesignViewModel() { AccentColorFirst = company.AccentColorFirst, AccentColorSecond = company.AccentColorSecond }; return(View(viewModel)); }
public async Task <IActionResult> SendEnquiryEmail(QuotesViewModel quoteModel) { if (Request.Form["SendEnquiryEmail"].Count > 0) { var facades = await _service.GetFacadesAsync(); var promotions = await _service.GetPromotionsAsync(); var packages = await _service.GetPackagesAsync(); var inclusions = await _service.GetInclusionsAsync(); var houseDesigns = await _service.GetHouseDesignsAsync(); var inclusionDetails = await _service.GetInclusionDetailsAsync(); quoteModel.SetMasterData(facades, promotions, houseDesigns, packages, inclusions, inclusionDetails); DesignViewModel houseDesign = quoteModel.HouseDesignId.HasValue ? quoteModel.HouseDesigns.First(x => x.Id == quoteModel.HouseDesignId.Value) : quoteModel.HouseDesigns.First(); FacadeViewModel facade = quoteModel.FacadeId.HasValue ? quoteModel.Facades.First(x => x.Id == quoteModel.FacadeId.Value) : quoteModel.Facades.First(); InclusionViewModel inclusion = quoteModel.InclusionId.HasValue ? quoteModel.Inclusions.First(x => x.Id == quoteModel.InclusionId.Value) : quoteModel.Inclusions.First(); quoteModel.HouseDesignName = houseDesign.Name; quoteModel.InclusionName = inclusion.Name; quoteModel.FacadeName = facade.Name; quoteModel.BasePrice = houseDesign.Cost; quoteModel.Documents = await _service.GetDocuments(quoteModel.Id); if (quoteModel.Documents == null) { quoteModel.Documents = new List <DocumentViewModel>(); } await _emailSender.SendEmailAsync(quoteModel); TempData["SuccessMessage"] = "Your enquiry has been sent successfully."; return(View("CreateQuote", quoteModel)); } else { var vmReturn = await GeneratePdfDocument(quoteModel); TempData["SuccessMessage"] = "Your quote has been generated successfully."; return(View("CreateQuote", vmReturn)); } }
public async Task <IActionResult> PartialEnquiryEmail(QuotesViewModel quoteModel) { var facades = await _service.GetFacadesAsync(); var promotions = await _service.GetPromotionsAsync(); var packages = await _service.GetPackagesAsync(); var inclusions = await _service.GetInclusionsAsync(); var houseDesigns = await _service.GetHouseDesignsAsync(); var inclusionDetails = await _service.GetInclusionDetailsAsync(); quoteModel.EmailCC = Request.Form["EmailCC"][0]; if (!ModelState.IsValid) { Response.StatusCode = (int)HttpStatusCode.BadRequest; return(Json("Error .. Please check email format ..")); } quoteModel.SetMasterData(facades, promotions, houseDesigns, packages, inclusions, inclusionDetails); DesignViewModel houseDesign = quoteModel.HouseDesignId.HasValue ? quoteModel.HouseDesigns.First(x => x.Id == quoteModel.HouseDesignId.Value) : quoteModel.HouseDesigns.First(); FacadeViewModel facade = quoteModel.FacadeId.HasValue ? quoteModel.Facades.First(x => x.Id == quoteModel.FacadeId.Value) : quoteModel.Facades.First(); InclusionViewModel inclusion = quoteModel.InclusionId.HasValue ? quoteModel.Inclusions.First(x => x.Id == quoteModel.InclusionId.Value) : quoteModel.Inclusions.First(); quoteModel.HouseDesignName = houseDesign.Name; quoteModel.InclusionName = inclusion.Name; quoteModel.FacadeName = facade.Name; quoteModel.BasePrice = houseDesign.Cost; quoteModel.Documents = await _service.GetDocuments(quoteModel.Id); if (quoteModel.Documents == null) { quoteModel.Documents = new List <DocumentViewModel>(); } await _emailSender.SendEmailAsync(quoteModel); TempData["SuccessMessage"] = "Your enquiry has been sent successfully."; return(PartialView("_quoteEmailPartial", quoteModel)); }
public async Task <IActionResult> Design(DesignViewModel model, CancellationToken token, string returnUrl = null) { AddBreadcrumb("Company", "/Company"); AddBreadcrumb("Design", "/Company/Design"); ViewData["ReturnUrl"] = returnUrl; if (ModelState.IsValid) { var company = await GetCompany(token); company.AccentColorFirst = model.AccentColorFirst; company.AccentColorSecond = model.AccentColorSecond; await _companyRepository.UpdateAsync(company, token); return(RedirectToAction(nameof(Index), "Company")); } return(View(model)); }
public DesignsViewActor(DesignViewModel designViewModel, ModMetadata modMetadata) { // TODO : move to coordinator //IActorRef stringTableActorRef = Context.ActorOf(Props.Create(() => new ModStringTableActor(modMetadata))); //IActorRef designOperationsActorRef = Context.ActorOf(Props.Create(() => new DesignOperationsActor(modMetadata))); int processorCount = Environment.ProcessorCount; Receive <LoadDesignsCommand>(command => { designOperationsActorRef.Tell(command); }); Receive <CloseDesignsViewCommand>(@event => { Self.Tell(PoisonPill.Instance); var viewClosedEvent = new DesignViewClosedEvent(@event.DesignViewModel); Context.System.EventStream.Publish(viewClosedEvent); }); Receive <DesignsLoadedEvent>(async @event => { using (var mat = Context.Materializer()) { IList <StringTableValueLoadedEvent> events = new List <StringTableValueLoadedEvent>(); await Source.From(@event.Designs) .SelectAsync(processorCount, design => stringTableActorRef.Ask( new LoadStringTableValueFromIdCommand(design.Name ?? -1, "english"))) .Select(o => (StringTableValueLoadedEvent)o) .RunWith(Sink.ForEach <StringTableValueLoadedEvent>(loadedEvent => events.Add(loadedEvent)), mat) .PipeTo(Self, Self, () => { IList <DesignModel> designModels = new List <DesignModel>(@event.Designs.Count); foreach (Design eventDesign in @event.Designs) { var stringTableValue = events.FirstOrDefault(loadedEvent => loadedEvent.StId == eventDesign.Name); DesignModel designModel = new DesignModel(eventDesign.Id, eventDesign.DesignId, eventDesign.CountryDesignerRef?.Code, eventDesign.TypeRef, stringTableValue?.StValue, eventDesign.Speed, eventDesign.Sensors, eventDesign.GunRange, eventDesign.GunPrecision, eventDesign.GunDamage, eventDesign.MissilePayload, eventDesign.MissileRange, eventDesign.MissilePrecision, eventDesign.MissileDamage, eventDesign.Stealth, eventDesign.Countermeasures, eventDesign.Armor, eventDesign.Piece1, eventDesign.Piece2, eventDesign.Piece3, eventDesign.Texture); designModels.Add(designModel); } designViewModel.Designs = new ObservableCollection <DesignModel>(designModels); return(designModels); }); } }); }
private async Task <QuotesViewModel> GeneratePdfDocument(QuotesViewModel vm) { //var doc = @"https://docs.google.com/document/d/1Lm4WZMynzfOwjsFTFF7SLDvKYfb2AG6YRfpc9tFcepc"; // Response.Redirect($"{doc}"); //if (!ModelState.IsValid) //{ // return PartialView("_quoteEmailPartial", quoteModel); //} var facades = await _service.GetFacadesAsync(); var promotions = await _service.GetPromotionsAsync(); var packages = await _service.GetPackagesAsync(); var inclusions = await _service.GetInclusionsAsync(); var houseDesigns = await _service.GetHouseDesignsAsync(); var inclusionDetails = await _service.GetInclusionDetailsAsync(); var additionalInclusionDetails = await _service.GetAdditionalInclusionDetailsAsync(vm.Id); vm.SetMasterData(facades, promotions, houseDesigns, packages, inclusions, inclusionDetails, additionalInclusionDetails); DesignViewModel houseDesign = vm.HouseDesignId.HasValue ? vm.HouseDesigns.First(x => x.Id == vm.HouseDesignId.Value) : vm.HouseDesigns.First(); FacadeViewModel facade = vm.FacadeId.HasValue ? vm.Facades.First(x => x.Id == vm.FacadeId.Value) : vm.Facades.First(); InclusionViewModel inclusion = vm.InclusionId.HasValue ? vm.Inclusions.First(x => x.Id == vm.InclusionId.Value) : vm.Inclusions.First(); vm.HouseDesignName = houseDesign.Name; vm.InclusionName = inclusion.Name; vm.FacadeName = facade.Name; vm.BasePrice = houseDesign.Cost; vm.FacadeCost = facade.Cost == 0 ? "Included" : facade.Cost.ToString("C0"); var fileName = vm.JobNumber + "-" + Guid.NewGuid().ToString() + ".pdf"; var masterdata = inclusionDetails.ToTableData(vm.BasePrice, facade.Cost, vm.AdditionalInclusions); // await _service.GetContractDetails(); vm.TableData = masterdata; var htmmlString = RenderPartialViewToString("QuotePdfTemplate", vm); IronPdf.License.LicenseKey = _appSettings.IronPdfKey; var Renderer = new IronPdf.HtmlToPdf(); // Build a footer using html to style the text // mergable fields are: // {page} {total-pages} {url} {date} {time} {html-title} & {pdf-title} Renderer.PrintOptions.Footer = new HtmlHeaderFooter() { Height = 30, HtmlFragment = "<center><div class=\"stl_01\" style=\"top: 64.9321em;white-space:nowrap;left:25.3123em;\"><span class=\"stl_20\">{page}</span></div></center>" + "<center><div class=\"stl_01\" style=\"top: 66.1712em; left: 13.3647em; \"><span class=\"stl_21 stl_10\" style=\"word - spacing:0.02em; \">(Test Company Pty Ltd) T/A Pty Ltd | ABN 12 345 678 900|</span><span class=\"stl_21 stl_10\" style=\"word-spacing:0.03em;\">company address</span>" + "<span class=\"stl_21 stl_10\" style=\"word-spacing:0.05em;\"></span></div></center>" + "<center><div class=\"stl_01\" style=\"top: 67.0469em; left:18.9945em;z-index:801;\"><span class=\"stl_21 stl_10\" style=\"word-spacing:0.27em;\">Ph: (02)</span>" + "<span class=\"stl_21 stl_10\" style=\"word-spacing:0.02em;\"> 8630</span><span class=\"stl_21 stl_10\" style=\"word-spacing:0.02em;\"> 8996 |</span>" + "<span class=\"stl_21 stl_10\" style=\"word-spacing:0em;\"> </span><a href = \"company url\" target=\"_blank\"><span class=\"stl_22\" style=\"word-spacing:0em;\"></span></a>" + "<a href = \"company url\" target=\"_blank\"><span class=\"stl_23 stl_10\" style=\"word-spacing:0em;\">www.testcompany<span class=\"stl_14\">.com.au </span></span></a></div></center>" + "<div class=\"stl_01\" style=\"top: 67.7975em; margin-left:3.7308em;\"><span class=\"stl_21 stl_14\" style=\"word-spacing:0em;\">Client Initial........../<span class=\"stl_10\">.......... </span></span></div>" + "<div class=\"stl_01\" style=\"top: 68.6107em; margin-left:3.7308em;\"><span class=\"stl_21 stl_10\" style=\"word-spacing:0.03em;\">Test Company - © 2020 </span></div>", DrawDividerLine = true }; // Build a header using an image asset // Note the use of BaseUrl to set a relative path to the assets //if cover page un comment below line Renderer.PrintOptions.FirstPageNumber = 2; Renderer.PrintOptions.Header = new HtmlHeaderFooter() { Height = 30, HtmlFragment = System.IO.File.ReadAllText($"{_env.WebRootPath}/templates/header.html"), BaseUrl = $"{_env.WebRootPath}/templates", Spacing = 5, DrawDividerLine = true, LoadStylesAndCSSFromMainHtmlDocument = true }; Renderer.PrintOptions.Zoom = 100; Renderer.PrintOptions.FitToPaperWidth = true; Renderer.PrintOptions.MarginTop = 0; //millimenters Renderer.PrintOptions.MarginLeft = 0; //millimenters Renderer.PrintOptions.MarginRight = 0; //millimenters Renderer.PrintOptions.MarginBottom = 50; var coverPageRenderer = new IronPdf.HtmlToPdf(); coverPageRenderer.PrintOptions.Zoom = 100; coverPageRenderer.PrintOptions.FitToPaperWidth = true; coverPageRenderer.PrintOptions.MarginTop = 0; //millimenters coverPageRenderer.PrintOptions.MarginLeft = 0; //millimenters coverPageRenderer.PrintOptions.MarginRight = 0; //millimenters Renderer.PrintOptions.MarginBottom = 0; var coverpageHtml = System.IO.File.ReadAllText($"{_env.WebRootPath}/templates/coverpage1.html").Replace("{{Name}}", vm.Name).Replace("{{JobNumber}}", vm.JobNumber).Replace("{{RequestType}}", vm.RequestType); var coverpage = coverPageRenderer.RenderHtmlAsPdf(coverpageHtml, $"{_env.WebRootPath}/templates"); //Renderer.RenderHtmlAsPdf(htmmlString).PrependPdf(coverPage).SaveAs("html-string.pdf"); //Renderer.RenderHtmlAsPdf(htmmlString).SaveAs("html-string.pdf"); var quoteDoc = Renderer.RenderHtmlAsPdf(htmmlString).PrependPdf(coverpage); //.Stream; //var stream = coverpage.Stream; // .SaveAs("html-string.pdf"); //var inclusionDoc = PdfDocument.FromFile($"{_env.WebRootPath}{inclusion.FileUrl}"); //quoteDoc = quoteDoc.AppendPdf(inclusionDoc); var quoteFromDb = await _service.GetQuoteByIdAsync(vm.Id); if (quoteFromDb.IsTender.HasValue && quoteFromDb.IsTender.Value && !string.IsNullOrEmpty(quoteFromDb.PdfUrl)) { // read file from Azure Syore using (MemoryStream mem = new MemoryStream()) { ConvertToStream(quoteFromDb.CustomPdfUrl, mem); var customPdfDoc = new PdfDocument(mem); quoteDoc = quoteDoc.AppendPdf(customPdfDoc); } } var stream = quoteDoc.Stream; //.SaveAs("html-string.pdf"); //await _azureStorageService.UploadDocAsync("html-string.pdf", vm.JobNumber +"-"+ Guid.NewGuid().ToString()+".pdf"); await _azureStorageService.UploadDocAsync(stream, fileName); var docVM = new DocumentViewModel { Name = fileName, Title = $"{vm.JobNumber} {vm.RequestType}", QuoteId = vm.Id }; await _service.SaveDocumentAsync(docVM, UserId); var docs = await _service.GetDocuments(vm.Id); vm.Documents = docs; //var context = new CustomAssemblyLoadContext(); //context.LoadUnmanagedLibrary(Path.Combine(Directory.GetCurrentDirectory(), "DinkToPdf.dll")); //var converter = new SynchronizedConverter(new PdfTools()); //converter.Convert(pdf); //var basePath = $"https://docs.google.com/document/d/"; //var id =_docGeneration.GenerateDoc(vm); //vm.DocUrl = $"{basePath}{id}"; //TempData["SuccessMessage"] = "The document has been generated successfully!!"; return(vm); }