Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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();
            }
        }
Exemplo n.º 3
0
        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));
        }
Exemplo n.º 4
0
        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));
        }
Exemplo n.º 5
0
        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));
        }