// GET: Admin
        public ActionResult Index(PagerParameters pagerParameters, int? filterCurrencyId = null)
        {
            var campaigns = _campaignService.GetAllCampaigns().
                Where(c => (null == filterCurrencyId) || (c.CurrencyRecord.Id == filterCurrencyId));
            var yesterday = DateTime.UtcNow.AddDays(-1);
            var last24hoursOrders = _orderService.GetAllOrders().Where(o => o.IsActive && o.Created >= yesterday && o.OrderStatusRecord.Name != OrderStatus.Cancelled.ToString() && o.OrderStatusRecord.Name != OrderStatus.Unapproved.ToString());

            var featuredCampaigns = new FeaturedCampaignViewModel[] { };

            var total =_campaignService.GetAllCampaigns().Count();

            var totalNotApproved = _campaignService.GetAllCampaigns().Where(c => c.IsApproved == false && c.Rejected == false).Count();

            if (total > 0)
            {
                featuredCampaigns = campaigns
                    .Select(c => new CampaignViewModel
                    { 
                        Id = c.Id,
                        Goal = c.ProductCountGoal,
                        Sold = c.ProductCountSold,
                        IsFeatured = c.IsFeatured,
                        Title = c.Title,
                        IsActive  = c.IsActive,
                        Alias = c.Alias,
                        CreatedDate = c.StartDate.ToLocalTime(),
                        IsApproved = c.IsApproved,
                        Minimum = c.ProductMinimumGoal,
                        Rejected = c.Rejected,
                        Currency = c.CurrencyRecord,
                        FilterCurrencyId = filterCurrencyId
                    })
                    .Select(c => new FeaturedCampaignViewModel
                    {
                        
                        Campaign = c,
                        Last24HoursSold =
                                    last24hoursOrders
                                        .SelectMany(o => o.Products)
                                        .Where(p => p.CampaignProductRecord.CampaignRecord_Id == c.Id)
                                        .Sum(p => (int?)p.Count) ?? 0
                    })
                     
                    .OrderBy(c => c.Campaign.Id)              
                    .ToArray();
                campaigns.OrderByDescending(c => c.Id);
            }
          
            return View("Index", new AdminFeaturedCampaignsViewModel { Campaigns = featuredCampaigns,NotApprovedTotal= totalNotApproved,
                                        Currencies = _currencyRepository});
        }
Exemplo n.º 2
0
        // GET: Admin
        public ActionResult Index2(PagerParameters pagerParameters, int?filterCurrencyId = null)
        {
            var pager = new Pager(_siteService.GetSiteSettings(), pagerParameters);

            var skip = pager.Page > 0 ? (pager.Page - 1) * pager.PageSize : 0;
            var take = pager.PageSize == 0 ? int.MaxValue : pager.PageSize;

            var campaigns = _campaignService.GetAllCampaigns().
                            Where(c => (null == filterCurrencyId) || (c.CurrencyRecord.Id == filterCurrencyId));
            var yesterday         = DateTime.UtcNow.AddDays(-1);
            var last24hoursOrders = _orderService.GetAllOrders().Where(o => o.IsActive && o.Created >= yesterday && o.OrderStatusRecord.Name != OrderStatus.Cancelled.ToString() && o.OrderStatusRecord.Name != OrderStatus.Pending.ToString());

            var featuredCampaigns = new FeaturedCampaignViewModel[] { };

            var total = _campaignService.GetAllCampaigns().Count();

            var totalNotApproved = _campaignService.GetAllCampaigns().Where(c => c.IsApproved == false && c.Rejected == false).Count();

            if (total > 0)
            {
                featuredCampaigns = campaigns
                                    .Select(c => new CampaignViewModel
                {
                    Id               = c.Id,
                    Goal             = c.ProductCountGoal,
                    Sold             = c.ProductCountSold,
                    IsFeatured       = c.IsFeatured,
                    Title            = c.Title,
                    IsActive         = c.IsActive,
                    Alias            = c.Alias,
                    CreatedDate      = c.StartDate.ToLocalTime(),
                    IsApproved       = c.IsApproved,
                    Minimum          = c.ProductMinimumGoal,
                    Rejected         = c.Rejected,
                    Currency         = c.CurrencyRecord,
                    FilterCurrencyId = filterCurrencyId,
                    Seller           = c.Seller //(c.TeeyootUserId.HasValue) ? _users.Get(c.TeeyootUserId.Value) : null
                })
                                    .Select(c => new FeaturedCampaignViewModel
                {
                    Campaign        = c,
                    Last24HoursSold =
                        last24hoursOrders
                        .SelectMany(o => o.Products)
                        .Where(p => p.CampaignProductRecord.CampaignRecord_Id == c.Id)
                        .Sum(p => (int?)p.Count) ?? 0
                })

                                    .OrderBy(c => c.Campaign.Id)
                                    .ToArray();
                campaigns.OrderByDescending(c => c.Id);
            }

            //foreach (var campaign in campaigns)
            //{
            //    int soldCount = 0;

            //    var xsoldCount = _orderService.GetAllOrders().Where(aa => aa.Campaign.Id == campaign.Id);//.Sum(aa => aa.TotalSold);
            //    foreach (var xxx in xsoldCount)
            //    {
            //        if (xxx.OrderStatusRecord.Name == "Cancelled" || xxx.OrderStatusRecord.Name == "Pending" || xxx.OrderStatusRecord.Name == "Refunded") continue;
            //        soldCount += xxx.TotalSold;
            //    }
            //    campaign.ProductCountSold = soldCount;
            //}
            return(View("Index", new AdminFeaturedCampaignsViewModel {
                Campaigns = featuredCampaigns, NotApprovedTotal = totalNotApproved,
                Currencies = _currencyRepository
            }));
        }