Exemplo n.º 1
0
        public PostStruct GetPostStructure(int?id)
        {
            var user = UsersList.FirstOrDefault(y => y.Id == id);

            var latestPost    = user?.Posts?.FirstOrDefault(x => x?.CreatedAt == user?.Posts?.Max(y => y?.CreatedAt));
            var postsCount    = latestPost?.Comments?.Count();
            var unTodo        = user?.Todos?.Where(x => x?.IsComplete != true)?.Count();
            var bestCommented = user?.Posts?.FirstOrDefault(x => x?.Comments?.Count > 80);
            var bestLiked     = user?.Posts?.Where(x => x?.Likes == user?.Posts.Max(y => y?.Likes))?.First();

            return(new PostStruct()
            {
                LatestPost = latestPost ?? null,
                PostsCount = postsCount ?? 0,
                UnTodo = unTodo ?? 0,
                BestCommented = bestCommented ?? null,
                BestLiked = bestLiked ?? null
            });
        }
Exemplo n.º 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));
        }
Exemplo n.º 3
0
 private void Initialize()
 {
     LoadUsers();
     SelectedUser = UsersList.FirstOrDefault();
 }