// 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)); }
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)); }