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 }); }
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)); }
private void Initialize() { LoadUsers(); SelectedUser = UsersList.FirstOrDefault(); }