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