public IActionResult Dashboard([FromQuery] ApiDashboardSearchParams dashParams) { // get all variable outgoings var now = DateTime.UtcNow; var from = now; switch (dashParams.Range) { case DashboardRange.SevenDays: from = now.AddDays(-7); break; case DashboardRange.OneMonth: from = now.AddMonths(-1); break; case DashboardRange.ThreeMonths: from = now.AddMonths(-3); break; case DashboardRange.OneYear: from = now.AddYears(-1); break; default: from = now.AddDays(-7); break; } var dates = Enumerable.Range(0, (int)(now - from).TotalDays).Select(x => DateTime.UtcNow.AddDays(-x)).OrderBy(x => x); var model = new ApiDashboard { Labels = dates.Select(x => x.ToString("dd/MM/yyyy")).ToList() }; var transactions = _uow.Transactions.GetAll() .Where(t => t.UserId == Token.UserId) .Where(t => t.Category.Type != CategoryType.Income) .Where(t => t.Date >= from) .Where(t => t.Date <= now) .GroupBy(t => t.CategoryId) .ToList(); model.Datasets = transactions.Select(ts => { return(GetDataset(dates, ts)); }) .ToList(); return(new JsonResult(model)); }
public IActionResult Dashboard([FromBody] ApiDashboardSearchParams dashParams) { // get all variable outgoings var now = DateTime.UtcNow; var from = now; switch (dashParams.Range) { case DashboardRange.SevenDays: from = now.AddDays(-7); break; case DashboardRange.OneMonth: from = now.AddMonths(-1); break; case DashboardRange.ThreeMonths: from = now.AddMonths(-3); break; case DashboardRange.OneYear: from = now.AddYears(-1); break; default: from = now.AddDays(-7); break; } _uow.Outgoings .GetAll() .Where(x => x.UserId == Token.UserId) .Where(x => x.Date >= from) .Where(x => x.Date <= now) .Where(x => x.Category.Type == CategoryType.Variable) .ToList(); return(null); }