Пример #1
0
        public DateRangeOptionModel(string title, DateRangeCode dateRangeCode, DateTime?fromDate, DateTime?toDate)
        {
            Title         = title;
            DateRangeCode = dateRangeCode;

            if (fromDate.HasValue)
            {
                FromDate = fromDate.Value;
            }
            else
            {
                FromDate = null;
            }

            if (toDate.HasValue)
            {
                ToDate = toDate.Value;
            }
            else
            {
                ToDate = null;
            }
        }
Пример #2
0
        public static DateRangeOptionModel GetOption(DateRangeCode dateRangeCode)
        {
            // Calculate range days
            var start   = DateTime.Today;
            var end     = DateTime.Today;
            var day     = DateTime.Today.DayOfWeek;
            var dayWeek = DateTime.Today.DayOfWeek;
            int dayDiff;

            switch (dateRangeCode)
            {
            case DateRangeCode.Custom:
                return(new DateRangeOptionModel("Custom", DateRangeCode.Custom, DateTime.Today, DateTime.Today.AddDays(7)));

            case DateRangeCode.Today:
                return(new DateRangeOptionModel("Today", DateRangeCode.Today, DateTime.Today, DateTime.Today));

            case DateRangeCode.ThisWeek:
                int days = day - DayOfWeek.Monday;
                start = DateTime.Today.AddDays(-days);
                end   = start.AddDays(6);
                return(new DateRangeOptionModel("This Week", DateRangeCode.ThisWeek, start, end));

            case DateRangeCode.ThisMonth:
                start = new DateTime(DateTime.Today.Year, DateTime.Today.Month, 1);
                end   = start.AddMonths(1).AddDays(-1);
                return(new DateRangeOptionModel("This Month", DateRangeCode.ThisMonth, start, end));

            case DateRangeCode.ThisYear:
                start = new DateTime(DateTime.Today.Year, 1, 1);
                end   = start.AddYears(1).AddDays(-1);
                return(new DateRangeOptionModel("This Year", DateRangeCode.ThisYear, start, end));

            case DateRangeCode.YearToDate:
                start = new DateTime(DateTime.Today.Year, 1, 1);
                end   = DateTime.Today;
                return(new DateRangeOptionModel("Year-To-Date", DateRangeCode.YearToDate, start, end));

            case DateRangeCode.LastWeek:
                dayDiff = dayWeek - DayOfWeek.Sunday;
                start   = DateTime.Today.AddDays(-dayDiff).AddDays(-7);
                end     = start.AddDays(6);
                return(new DateRangeOptionModel("Last Week", DateRangeCode.LastWeek, start, end));

            case DateRangeCode.LastMonth:
                start = DateTime.Today.AddMonths(-1);
                start = new DateTime(start.Year, start.Month, 1);
                end   = start.AddMonths(1).AddDays(-1);
                return(new DateRangeOptionModel("Last Month", DateRangeCode.LastMonth, start, end));

            case DateRangeCode.LastQuarter:
                return(new DateRangeOptionModel("Last 3 Months", DateRangeCode.LastQuarter, DateTime.Today.AddMonths(-3), DateTime.Today));

            case DateRangeCode.LastYear:
                start = DateTime.Today.AddYears(-1);
                start = new DateTime(start.Year, 1, 1);
                end   = start.AddYears(1).AddDays(-1);
                return(new DateRangeOptionModel("Last Year", DateRangeCode.LastYear, start, end));

            case DateRangeCode.NextWeek:
                dayDiff = dayWeek - DayOfWeek.Sunday;
                start   = DateTime.Today.AddDays(-dayDiff).AddDays(7);
                end     = start.AddDays(6);
                return(new DateRangeOptionModel("Next Week", DateRangeCode.NextWeek, start, end));

            case DateRangeCode.NextMonth:
                DateTime nextMonth = DateTime.Today.AddMonths(1);
                start = new DateTime(nextMonth.Year, nextMonth.Month, 1);
                end   = start.AddMonths(1).AddDays(-1);
                return(new DateRangeOptionModel("Next Month", DateRangeCode.NextMonth, start, end));

            case DateRangeCode.NextYear:
                start = new DateTime(DateTime.Today.AddYears(1).Year, 1, 1);
                end   = start.AddYears(1).AddDays(-1);
                return(new DateRangeOptionModel("Next Year", DateRangeCode.NextYear, start, end));

            case DateRangeCode.ThisQuarter:
                start = QuarterStart();
                end   = QuarterEnd();
                return(new DateRangeOptionModel("This Quarter", DateRangeCode.ThisQuarter, start, end));

            case DateRangeCode.NextQuarter:
                start = QuarterStart().AddMonths(3);
                end   = QuarterEnd().AddMonths(3);
                return(new DateRangeOptionModel("This Quarter", DateRangeCode.NextQuarter, start, end));

            case DateRangeCode.YearEnding:
                start = DateTime.Today.AddYears(-1);
                end   = DateTime.Today;
                return(new DateRangeOptionModel("Year Ending", DateRangeCode.YearEnding, start, end));

            default:
                return(null);
            }
        }
Пример #3
0
 public DateRangeModel(RangeOptions rangeOptions, DateRangeCode defaultRangeCode, string title)
 {
     DateRangeCode = defaultRangeCode;
     RangeOptions  = rangeOptions;
     Title         = title;
 }
Пример #4
0
 public DateRangeModel(RangeOptions rangeOptions, DateRangeCode defaultRangeCode)
 {
     DateRangeCode = defaultRangeCode;
     RangeOptions  = rangeOptions;
 }