public ActionResult Save(CreativeVm model)
 {
     try
     {
         var alreay = Db.CampaignCreatives.FirstOrDefault(x => x.CampaignId.ToString() == model.CampaignId);
         if (alreay == null)
         {
             var creativeId = Guid.NewGuid();
             alreay = new CampaignCreative()
             {
                 Id           = creativeId,
                 CreatedAt    = DateTime.Now,
                 CampaignId   = Guid.Parse(model.CampaignId),
                 CreativeHtml = model.Creatives
             };
             Db.CampaignCreatives.Add(alreay);
             var campaign = Db.Campaigns.FirstOrDefault(c => c.Id.ToString() == model.CampaignId);
             campaign.CreativeId = creativeId;
         }
         else
         {
             alreay.CreativeHtml = model.Creatives;
         }
         Db.SaveChanges();
         TempData["Success"] = "Creatives has been saved successfully!";
     }
     catch (Exception ex)
     {
         TempData["Error"] = "There is error in saving data." + string.Join("<br/>", ex.Message);
     }
     return(RedirectToAction("Index", new { id = model.CampaignId }));
 }
        // Creative
        public ActionResult Index(Guid id)
        {
            var campaign = Db.Campaigns
                           .Include(c => c.Assets)
                           .Include(c => c.Testing)
                           .Include(c => c.Approved)
                           .Include(c => c.Creative)
                           .FirstOrDefault(c => c.Id == id);

            Session["id"]          = id;
            Session["OrderNumber"] = campaign.OrderNumber;

            var creative = new CreativeVm()
            {
                CampaignId   = campaign.Id.ToString(),
                OrderNumber  = campaign.OrderNumber,
                CampaignName = campaign.Testing.CampaignName,
                FromLine     = campaign.Testing.FromLine,
                SubjectLine  = campaign.Testing.SubjectLine,
                TestSeedFile = campaign.Assets.TestSeedFile,
                LiveSeedFile = campaign.Assets.LiveSeedFile,
                Creatives    = campaign.Creative?.CreativeHtml,
                TestEmails   = new List <SelectItemPair>(),
                LiveEmails   = new List <SelectItemPair>()
            };

            if (!string.IsNullOrEmpty(campaign.Assets.TestSeedFile))
            {
                string filePath = Path.Combine(UploadPath, campaign.Assets.TestSeedFile);
                if (!System.IO.File.Exists(filePath) && !string.IsNullOrEmpty(campaign.Assets.TestSeedFile))
                {
                    S3FileManager.Download(campaign.Assets.TestSeedFile, filePath);
                }
                creative.TestEmails = CreativeHelper.ReadEmails(filePath);
            }

            if (!string.IsNullOrEmpty(campaign.Assets.LiveSeedFile))
            {
                string filePathLive = Path.Combine(UploadPath, campaign.Assets.LiveSeedFile);
                if (!System.IO.File.Exists(filePathLive) && !string.IsNullOrEmpty(campaign.Assets.LiveSeedFile))
                {
                    S3FileManager.Download(campaign.Assets.LiveSeedFile, filePathLive);
                }
                creative.LiveEmails = CreativeHelper.ReadEmails(filePathLive);
            }

            Session["TestSeedFile"] = campaign.Assets.TestSeedFile;
            Session["TestSeedUrl"]  = campaign.Assets.TestSeedUrl;
            Session["LiveSeedFile"] = campaign.Assets.LiveSeedFile;
            Session["LiveSeedUrl"]  = campaign.Assets.LiveSeedUrl;
            return(View(creative));
        }
 public ActionResult QuickTestSend(CreativeVm model)
 {
     try
     {
         MailChimpProcessor.QucikTestSend(model);
         TempData["Success"] = "Qucik Test has been sent successfully!";
     }
     catch (Exception ex)
     {
         TempData["Error"] = "There is error in saving data." + string.Join("<br/>", ex.Message);
     }
     return(RedirectToAction("Index", new { id = model.CampaignId }));
 }
        public ActionResult TestSend(CreativeVm model)
        {
            try
            {
                string filePath     = Path.Combine(UploadPath, (string)Session["TestSeedList"]);
                string filePathLive = Path.Combine(UploadPath, (string)Session["FinalSeedList"]);
                model.TestEmails = CreativeHelper.ReadEmails(filePath);
                model.LiveEmails = CreativeHelper.ReadEmails(filePathLive);

                BackgroundJob.Enqueue(() => MailChimpProcessor.TestSend(model));
                TempData["Success"] = "Testing creatives has been started successfully!";
            }
            catch (Exception ex)
            {
                TempData["Error"] = "There is error in saving data." + string.Join("<br/>", ex.Message);
            }
            return(RedirectToAction("Index", new { id = model.CampaignId }));
        }