示例#1
0
        // GET: Stats/AcquireEmailPaymentStat
        public ActionResult AcquireEmailPaymentStat(Campaign.CampaignStatusEnum?campaignStatus)
        {
            var entities       = _db.Campaigns.Where(c => c.CampaignType == Campaign.CampaignTypeEnum.EmailBases);
            var sumTotalAmount = 0.00;

            if (campaignStatus != null)
            {
                entities = entities.Where(c => c.CampaignStatus == campaignStatus);
            }

            var models = new List <AcquireEmailPaymentStatTempViewModel>();

            foreach (var campaign in entities)
            {
                var count = _db.AcquireEmails.Count(ae => ae.RelatedCampaignId == campaign.CampaignId && ae.IsNewlyAcquired == true);

                var tempModel = new AcquireEmailPaymentStatTempViewModel()
                {
                    CampaignName         = campaign.CampaignName,
                    CampaignId           = campaign.CampaignId,
                    IsNewlyAcquiredCount = count,
                    TotalAmount          = (count * 1.49) + 19.99
                };
                models.Add(tempModel);
                sumTotalAmount += tempModel.TotalAmount;
            }

            var model = new AcquireEmailPaymentStatViewModel()
            {
                List           = models.AsQueryable(),
                SumTotalAmount = Math.Round((decimal)sumTotalAmount, 2)
            };

            return(View(model));
        }
示例#2
0
        // GET: Stats/AcquireEmailPaymentStat
        public ActionResult AcquireEmailPaymentStat(Campaign.CampaignStatusEnum?campaignStatus, int?paidStatus, string startDate, string endDate)
        {
            var entities = _db.Campaigns.Where(c => c.CampaignType == Campaign.CampaignTypeEnum.EmailBases &&
                                               c.CampaignAttributes.Contains(@"Naplata baze"));
            var sumTotalAmount = 0.00;

            if (campaignStatus != null)
            {
                entities = entities.Where(c => c.CampaignStatus == campaignStatus);
            }

            if (paidStatus != null)
            {
                switch (paidStatus)
                {
                case 0:
                    entities = entities.Where(c => !c.CampaignAttributes.Contains(@"Naplaćen cross") &&
                                              !c.CampaignAttributes.Contains(@"Naplaćeno sve"));
                    break;

                case 1:
                    entities = entities.Where(c => c.CampaignAttributes.Contains(@"Naplaćen cross"));
                    break;

                case 2:
                    entities = entities.Where(c => c.CampaignAttributes.Contains(@"Naplaćeno sve"));
                    break;
                }
            }

            if (!String.IsNullOrEmpty(startDate))
            {
                var startDateTemp = Convert.ToDateTime(startDate);
                entities = entities.Where(c => c.CampaignStartDate >= startDateTemp);
            }

            if (!String.IsNullOrEmpty(endDate))
            {
                var endDateTemp = Convert.ToDateTime(endDate);
                entities = entities.Where(c => c.CampaignEndDate >= endDateTemp);
            }

            var models = new List <AcquireEmailPaymentStatTempViewModel>();

            foreach (var campaign in entities)
            {
                var emails = _db.AcquireEmails.Where(ae => ae.RelatedCampaignId == campaign.CampaignId);

                if (emails.Count() != 0)
                {
                    if (campaign.CampaignStartDate >= new DateTime(2018, 11, 1)) // implementation of new model price model
                    {
                        var tempModel = new AcquireEmailPaymentStatTempViewModel
                        {
                            CampaignName         = campaign.CampaignName,
                            CampaignId           = campaign.CampaignId,
                            HasFixedAmount       = false,
                            CrossCount           = emails.Count(x => x.IsNewlyAcquired == false || x.IsNewlyAcquired == null),
                            IsNewlyAcquiredCount = emails.Count(x => x.IsNewlyAcquired == true),
                            TotalAmount          = emails.Count() * 1.49
                        };
                        models.Add(tempModel);
                        sumTotalAmount += tempModel.TotalAmount;
                    }
                    else
                    {
                        var tempModel = new AcquireEmailPaymentStatTempViewModel
                        {
                            CampaignName         = campaign.CampaignName,
                            CampaignId           = campaign.CampaignId,
                            HasFixedAmount       = true,
                            CrossCount           = emails.Count(x => x.IsNewlyAcquired == false || x.IsNewlyAcquired == null),
                            IsNewlyAcquiredCount = emails.Count(x => x.IsNewlyAcquired == true),
                            TotalAmount          = (emails.Count(x => x.IsNewlyAcquired == true) * 1.49) + 19.99
                        };
                        models.Add(tempModel);
                        sumTotalAmount += tempModel.TotalAmount;
                    }
                }
            }

            var model = new AcquireEmailPaymentStatViewModel
            {
                List           = models.AsQueryable(),
                SumTotalAmount = Math.Round((decimal)sumTotalAmount, 2)
            };

            return(View(model));
        }