public ActionResult GetInvoicesTypeForSiteAndDate(AuthorizeCompareTableRequestVM model) { if (!ModelState.IsValid) { return(null); } DateTime date = new DateTime(); if (DateTime.TryParse(model.Date, out date) && !string.IsNullOrEmpty(model.ViewType)) { var report = SitesManager.GetInvoiceSitesForDateRange(model.WebSite, date, date); if (model.ViewType == "System") { report = report.ToList(); } else if (model.ViewType == "Authorize Successfull") { report = report.Where(x => x.BilledDate.Date == date).ToList(); } else if (model.ViewType == "Authorize Failed") { report = report.Where(x => x.BilledDate.Date != date).ToList(); } List <string> headers = new List <string>() { "CustomerID", "Status", "Date", "View" }; List <List <string> > data = new List <List <string> >(); foreach (var item in report) { data.Add(new List <string>() { item.CustomerId.ToString(), item.Status.ToString(), item.CreatedAt.ToString(), "<a href='/Subscription/ManageSubscriptions?customerEmail=" + CustomersManager.GetCustomer(item.CustomerId).Email + "'>View</a>" }); } return(Json(new { Header = headers, Data = data })); } return(null); }
public ActionResult AuthorizeTransactionCompare(AuthorizeCompareTransactionVM model) { if (!ModelState.IsValid && CastleClub.BusinessLogic.Data.GlobalParameters.AuthorizeTransactionCompare) { return(View(model)); } Dictionary <DateTime, decimal[]> data = new Dictionary <DateTime, decimal[]>(); for (DateTime i = model.From; i <= model.To; i = i.AddDays(1)) { data.Add(i, new decimal[3]); var report = SitesManager.GetInvoiceSitesForDateRange(model.SitedID, i, i); ((decimal[])data[i])[0] = report.Sum(x => x.Amount); ((decimal[])data[i])[1] = report.Where(x => x.BilledDate.Date == i).Sum(x => x.Amount); ((decimal[])data[i])[2] = report.Where(x => x.BilledDate.Date != i).Sum(x => x.Amount); } var chart = new ReportData(); chart.Colors = new List <string>(); chart.Colors.Add("#0000FF"); chart.Colors.Add("#00FF00"); chart.Colors.Add("#FF0000"); chart.Text = "Transactions compare with Authorize"; chart.Categories = new List <string>(); chart.Series = new List <Data>(); Data system = new Data() { name = "System", data = new List <double>() }; Data authorizeSuccessfull = new Data() { name = "Authorize Successfull", data = new List <double>() }; Data authorizeFail = new Data() { name = "Authorize Failed", data = new List <double>() }; for (DateTime i = model.From; i <= model.To; i = i.AddDays(1)) { chart.Categories.Add(i.ToString("MM/dd/yyyy")); system.data.Add((double)((decimal[])data[i])[0]); authorizeSuccessfull.data.Add((double)((decimal[])data[i])[1]); authorizeFail.data.Add((double)((decimal[])data[i])[2]); } chart.Series.Add(system); chart.Series.Add(authorizeSuccessfull); chart.Series.Add(authorizeFail); chart.Id = Guid.NewGuid().ToString(); #region Table chart.Table = new ChartTable(); chart.Table.Cols = new List <string>(); chart.Table.Rows = new List <string>(); chart.Table.Data = new string[data.Keys.Count][]; chart.Table.Rows.Add("System"); chart.Table.Rows.Add("Authorize Successfull"); chart.Table.Rows.Add("Authorize Failed"); int index = 0; foreach (var item in data.Keys) { chart.Table.Cols.Add(item.ToString("MM/dd/yyyy")); chart.Table.Data[index] = new string[3]; chart.Table.Data[index][0] = ((decimal[])data[item])[0].ToString(); chart.Table.Data[index][1] = ((decimal[])data[item])[1].ToString(); chart.Table.Data[index][2] = ((decimal[])data[item])[2].ToString(); index = index + 1; } #endregion return(Json(chart)); }