Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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);
        }