Exemple #1
0
        // GET: Campaigns/Create
        public ActionResult Create()
        {
            _c1 = 'A';
            int newOrderNumber = Db.Campaigns.Count() > 0
                        ? Db.Campaigns.Select(x => x.OrderNumber).ToList()
                                 .Select(x => int.Parse(x.TrimEnd("RDP".ToCharArray()))).Max() + 1
                        : 2500;
            CampaignVm model = new CampaignVm()
            {
                OrderNumber         = newOrderNumber.ToString(),
                RepresentativeName  = LoggedInUser?.UserName,
                RepresentativeEmail = LoggedInUser?.Email,
                ChannelTypes        = new List <ChannelType> {
                }
                //ChannelTypes = new List<Enum.ChannelType> { Enum.ChannelType.Retargeting, Enum.ChannelType.Display, }
            };

            ViewBag.TestingUrgency = new SelectList(EnumHelper.GetEnumTextValues(typeof(TestingUrgency)), "Value",
                                                    "Text", model.TestingUrgency);
            ViewBag.WhiteLabel = new SelectList(CustomersWithWLList, "Value", "Text", LoggedInUser?.Customer?.WhiteLabel);
            return(View(model));
        }
Exemple #2
0
        public ActionResult Create(
            [Bind(
                 Include =
                     "Assets,Segments,ID,OrderNumber,CreatedAt,CampaignName,BroadcastDate,RepresentativeName,RepresentativeEmail,ReBroadCast,ReBroadcastDate,Price,TestingUrgency,GeoDetails,Demographics,Quantity,FromLine,SubjectLine,IsPersonalization,IsMatchback,IsSuppression,IsOpenPixel,OpenPixelUrl,BannerUrl,WhiteLabel,OptOut,SpecialInstructions,IsAddViewInBrowser,IsAddOptOut,DataFileQuantity,IsOmniOrder,OmniDeployDate,Impressions,ChannelTypes")] CampaignVm campaignVm)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    string userName = string.IsNullOrEmpty(LoggedInUser?.UserName) ?
                                      UsersList.FirstOrDefault().Text : LoggedInUser?.UserName;

                    TinyMapper.Bind <CampaignVm, Campaign>(config =>
                    {
                        config.Ignore(x => x.Segments);
                        config.Ignore(x => x.ChannelTypes);
                    });

                    var  campaign = TinyMapper.Map <Campaign>(campaignVm);
                    char c2       = 'A';
                    foreach (var segmentVm in campaignVm.Segments)
                    {
                        var segment = TinyMapper.Map <CampaignSegment>(segmentVm);
                        segment.Id            = Guid.NewGuid();
                        segment.CreatedAt     = DateTime.Now;
                        segment.OrderNumber   = "" + campaignVm.OrderNumber;
                        segment.SegmentNumber = campaignVm.OrderNumber + "" + c2++;
                        campaign.Segments.Add(segment);
                    }
                    campaign.Id           = Guid.NewGuid();
                    campaign.CreatedAt    = DateTime.Now;
                    campaign.CreatedBy    = userName;
                    campaign.OrderNumber  = campaignVm.OrderNumber.ToString();
                    campaign.IP           = Request.ServerVariables["REMOTE_ADDR"];
                    campaign.Browser      = Request.UserAgent;
                    campaign.OS           = Environment.OSVersion.Platform + " " + Environment.OSVersion.VersionString;
                    campaign.Referrer     = Request.UrlReferrer.AbsolutePath;
                    campaign.ChannelTypes = campaignVm.ChannelTypes == null ? null :
                                            string.Join(",", campaignVm.ChannelTypes);
                    campaign.Assets.Id         = Guid.NewGuid();
                    campaign.Assets.CampaignId = campaign.Id;
                    campaign.Assets.CreatedAt  = DateTime.Now;
                    campaign.Assets.CreatedBy  = userName;

                    Db.Campaigns.Add(campaign);
                    Db.SaveChanges();

                    BackgroundJob.Enqueue(() => CampaignProcessor.ProcessNewOrder(campaign.OrderNumber, userName));

                    ForceOrders         = true;
                    TempData["Success"] = "Order #: " + campaign.OrderNumber + " , Campaign " + campaign.CampaignName + " has been submitted sucessfully.";
                }
                catch (Exception ex)
                {
                    TempData["Error"] = "This is error while creating order." + ex.Message;
                }
                return(RedirectToAction("Index"));
            }
            campaignVm.ChannelTypes = campaignVm.ChannelTypes ?? new List <ChannelType> {
            };

            ViewBag.TestingUrgency = new SelectList(EnumHelper.GetEnumTextValues(typeof(TestingUrgency)), "Value",
                                                    "Text", campaignVm.TestingUrgency);
            ViewBag.WhiteLabel = new SelectList(CustomersWithWLList, "Value", "Text", LoggedInUser?.Customer?.WhiteLabel);
            return(View(campaignVm));
        }