Esempio n. 1
0
        private SummaryModel GetSummaryModel(long accountId, SummaryTimePeriod timePeriod)
        {
            var expenses = ExpenseRepository.GetAccountExpenses(accountId);
            var settings = SettingsHelper.GetCategorySettings(accountId);
            var model    = new SummaryModel(timePeriod, expenses.Min(e => e.SpentDate), expenses.Max(e => e.SpentDate));

            expenses = expenses.Where(e => e.SpentDate >= model.StartDate && e.SpentDate <= model.EndDate.AddDays(1).AddSeconds(-1)).ToList();

            return(model);
        }
Esempio n. 2
0
        public SummaryModel(SummaryTimePeriod timePeriod, DateTime?minDate = null, DateTime?maxDate = null)
        {
            Table      = new List <SummaryModelTable>();
            TimePeriod = timePeriod;

            switch (TimePeriod)
            {
            case SummaryTimePeriod.ThisWeek:
                StartDate = DateTime.UtcNow.AddHours(-6).Date;
                while (StartDate.DayOfWeek != DayOfWeek.Saturday)
                {
                    StartDate = StartDate.AddDays(-1);
                }
                EndDate = StartDate.AddDays(7);
                break;

            case SummaryTimePeriod.Last7Days:
                StartDate = DateTime.UtcNow.AddHours(-6).Date.AddDays(-7);
                EndDate   = DateTime.UtcNow.AddHours(-6).Date;
                break;

            case SummaryTimePeriod.ThisMonth:
                StartDate = new DateTime(DateTime.UtcNow.AddHours(-6).Date.Year, DateTime.UtcNow.AddHours(-6).Date.Month, 1);
                EndDate   = StartDate.AddMonths(1).AddDays(-1);
                break;

            case SummaryTimePeriod.LastMonth:
                StartDate = new DateTime(DateTime.UtcNow.AddHours(-6).Date.Year, DateTime.UtcNow.AddHours(-6).Date.Month, 1).AddMonths(-1);
                EndDate   = StartDate.AddMonths(1).AddDays(-1);
                break;

            case SummaryTimePeriod.Past30Days:
                StartDate = DateTime.UtcNow.AddHours(-6).Date.AddDays(-30);
                EndDate   = DateTime.UtcNow.AddHours(-6).Date;
                break;

            case SummaryTimePeriod.ThisYear:
                StartDate = new DateTime(DateTime.UtcNow.AddHours(-6).Date.Year, 1, 1);
                EndDate   = StartDate.AddYears(1).AddDays(-1);
                break;

            case SummaryTimePeriod.LastYear:
                StartDate = new DateTime(DateTime.UtcNow.AddHours(-6).Date.Year, 1, 1).AddYears(-1);
                EndDate   = StartDate.AddYears(1).AddDays(-1);
                break;

            case SummaryTimePeriod.AllTime:
                StartDate = (minDate ?? DateTime.MinValue).Date;
                EndDate   = (maxDate ?? DateTime.MaxValue).Date;
                break;

            default:
                throw new Exception($"{TimePeriod} is not implemented yet.");
            }
        }