public async Task <IHttpActionResult> GetAllCreatives(ODataQueryOptions <Creative> options) { //List<Creative> creatives = new List<Creative>(); Expression <Func <Creative, bool> > myExpression = options.Filter.ToExpression <Creative>(); Func <IQueryable <Creative>, IOrderedQueryable <Creative> > myOrderBy = options.OrderBy.ToExpression <Creative>(); Func <IQueryable <Creative>, IOrderedQueryable <Creative> > query2 = query => query.OrderBy(creative => creative.Name); List <Creative> creatives = _creativesFacade.GetAll(myExpression, myOrderBy, options.Top.RawValue, options.Skip.RawValue); // TODO: refactor to get list of DTOs, that are converted from Domain object in ???? List <CreativeModel> creativeModels = new List <CreativeModel>(); foreach (Creative creative in creatives) { CreativeModel creativeModel = new CreativeModel(); creativeModel.Id = creative.Id; creativeModel.Name = creative.Name; creativeModels.Add(creativeModel); } return(Ok <IEnumerable <CreativeModel> >(creativeModels)); }
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(); } }
public async Task <IActionResult> CreativeSave( int id, [Bind( nameof(Creative.CreativeTitle), nameof(Creative.TemplateEngineType), nameof(Creative.ModelTypeStringValue), nameof(Creative.CreativeSettings), nameof(Creative.CreativeSettings) + "." + nameof(CreativeSettings.EmailSubject), nameof(Creative.CreativeSettings) + "." + nameof(CreativeSettings.EmailHtmlBody), nameof(Creative.CreativeSettings) + "." + nameof(CreativeSettings.EmailTextBody), nameof(Creative.CreativeSettings) + "." + nameof(CreativeSettings.TextMessageBody), nameof(CreativeModel.AttachmentAssets), nameof(CreativeModel.NewAttachments) )] CreativeModel model) { if (ModelState.IsValid) { var creative = await FindCreativeByIdAsync(id); if (creative == null) { creative = new Creative(); Rdb.Creatives.Add(creative); } await CreativeModelSaveAsync(model, creative); SetToast(AspHelpers.ToastMessages.Saved); return(RedirectToAction(ActionNames.CreativesList)); } SetHeroLayoutViewData(model, CreativePageKeys.Background); return(View(ViewNames.CreativeDetails, model)); }
public async Task <IHttpActionResult> Get(int id) { var creative = _creativesFacade.GetCreativeById(id); CreativeModel creativeModel = new CreativeModel(); creativeModel.Id = creative.Id; creativeModel.Name = creative.Name; if (creative == null) { return(NotFound()); } return(Ok(creativeModel)); }
public async Task <IActionResult> CommunicationCreativeSave( int id, [Bind( nameof(Creative.CreativeId), nameof(Creative.CreativeTitle), nameof(Creative.TemplateEngineType), nameof(Creative.ModelTypeStringValue), nameof(Creative.CreativeSettings), nameof(Creative.CreativeSettings) + "." + nameof(CreativeSettings.EmailSubject), nameof(Creative.CreativeSettings) + "." + nameof(CreativeSettings.EmailHtmlBody), nameof(Creative.CreativeSettings) + "." + nameof(CreativeSettings.EmailTextBody), nameof(Creative.CreativeSettings) + "." + nameof(CreativeSettings.TextMessageBody), nameof(CreativeModel.AttachmentAssets), nameof(CreativeModel.NewAttachments) )] CreativeModel model) { var comm = await FindCommunicationByIdAsync(id); if (comm == null) { return(NotFound()); } if (ModelState.IsValid) { Creative creative = await FindCreativeByIdAsync(model.CreativeId); if (creative == null) { creative = new Creative(); comm.Creative = creative; Rdb.Creatives.Add(creative); } await CreativeModelSaveAsync(model, creative); SetToast(AspHelpers.ToastMessages.Saved); return(RedirectToAction(ActionNames.CommunicationDetails)); } SetHeroLayoutViewData(comm, CommunicationPageKeys.Creative); PopulateViewBagWithTemplateModelSelectListItems(); return(View(ViewNames.CommunicationCreative, model)); }