private async Task CreativeModelSaveAsync(CreativeModel model, Creative creative) { creative.CreativeTitle = model.CreativeTitle; creative.ModelType = model.ModelType; creative.TemplateEngineType = model.TemplateEngineType == TemplateEngineTypes.Undefined ? TemplateEngineTypes.DollarString : model.TemplateEngineType; creative.CreativeSettings.EmailSubject = model.CreativeSettings.EmailSubject; creative.CreativeSettings.EmailHtmlBody = model.CreativeSettings.EmailHtmlBody; creative.CreativeSettings.EmailTextBody = model.CreativeSettings.EmailTextBody; creative.CreativeSettings.TextMessageBody = model.CreativeSettings.TextMessageBody; bool dirty = true; if (creative.CreativeId < 1) { await Rdb.SaveChangesAsync(); dirty = false; } if (model.NewAttachments != null) { foreach (var newAttachment in model.NewAttachments) { var pointer = await Blobs.StoreFileAsync(false, BlobStorageServices.Roots.Portal, newAttachment, creative.AttachmentPrefix + Path.GetFileName(newAttachment.FileName), false); creative.CreativeSettings.Attachments.Add(pointer); dirty = true; } } if (dirty) { await Rdb.SaveChangesAsync(); } }
async void ITenantJobs.DownloadTableauPdfContinuationJobAsync() { string resultData = this.GetParentJobResultData(); var downloadOptions = JsonConvert.DeserializeObject <DownloadPdfOptions>(resultData); var pdfBytes = await TableauVisualService.DownloadPdfAsync(downloadOptions); var dateTime = DateTime.UtcNow; var blob = await BlobStorageService.StoreFileAsync( true, BlobStorageServices.Roots.User, new BasicFormFile(pdfBytes) { ContentDisposition = ContentDisposition.Attachment, ContentType = MimeType.Application.Pdf, FileName = $"{downloadOptions.WorkbookName}{MimeType.Application.Pdf.PrimaryFileExtension}", Name = $"{downloadOptions.WorkbookName}{MimeType.Application.Pdf.PrimaryFileExtension}", }, $"{downloadOptions.WorkbookName.RemoveSpecialCharacters()}-{dateTime.ToString().RemoveSpecialCharacters()}{MimeType.Application.Pdf.PrimaryFileExtension}"); PostResult(blob); }
public async Task <IActionResult> PortalSettings( int id, // [Bind("logoFile")] // IFormFile logoFile, [Bind( nameof(PortalOptionsModel.RegisterMessage), nameof(PortalOptionsModel.LoginMessage), nameof(PortalOptionsModel.HomeMessage), nameof(PortalOptionsModel.CopyrightMessage), nameof(PortalOptionsModel.AboutMessage), nameof(PortalOptionsModel.CssFile), nameof(PortalOptionsModel.LogoFile), nameof(PortalOptionsModel.FaviconFile), nameof(PortalOptionsModel.JavascriptFile), nameof(PortalOptionsModel.PrimaryColor), nameof(PortalOptionsModel.SecondaryColor) )] PortalOptionsModel model) { var app = await GetApplicationAsync(id); if (app == null) { return(NotFound()); } SetHeroLayoutViewData(app, PageKeys.PortalSettings); if (ModelState.IsValid) { var po = app.AppSettings.PortalOptions ?? new PortalConfig(); app.AppSettings.PortalOptions = po; po.RegisterMessage = model.RegisterMessage; po.LoginMessage = model.LoginMessage; po.HomeMessage = model.HomeMessage; po.CopyrightMessage = model.CopyrightMessage; po.AboutMessage = model.AboutMessage; po.PrimaryColor = model.PrimaryColor; po.SecondaryColor = model.SecondaryColor; if (model.LogoFile != null) { po.LogoLink = (await Blobs.StoreFileAsync(false, BlobStorageServices.Roots.Portal, model.LogoFile, "customlogo" + Path.GetExtension(model.LogoFile.FileName), true)).Uri; } if (model.FaviconFile != null) { po.FaviconLink = (await Blobs.StoreFileAsync(false, BlobStorageServices.Roots.Portal, model.FaviconFile, "customfavicon" + Path.GetExtension(model.FaviconFile.FileName), true)).Uri; } if (model.CssFile != null) { po.CssLink = (await Blobs.StoreFileAsync(false, BlobStorageServices.Roots.Portal, model.CssFile, "customcss" + Path.GetExtension(model.CssFile.FileName), true)).Uri; } if (model.JavascriptFile != null) { po.JavascriptLink = (await Blobs.StoreFileAsync(false, BlobStorageServices.Roots.Portal, model.JavascriptFile, "customjs" + Path.GetExtension(model.JavascriptFile.FileName), true)).Uri; } Rdb.Update(app); await Rdb.SaveChangesAsync(); SetToast(AspHelpers.ToastMessages.Saved); return(RedirectToAction(ActionNames.ApplicationBasics)); } return(View(model)); }