This commit is contained in:
2018-12-10 19:11:40 +00:00
parent 1321e224b8
commit 5e5aff2a71

View File

@@ -279,16 +279,16 @@ namespace AyaNova.Biz
//HOWEVER, if it's a relative date filter TOKEN like "nextMonth" then the users time zone offset will be taken into consideration
//So this is the core date time to work off of
DateTime RelativeNow=DateTime.Now;
DateTime RelativeToday = DateTime.Today;
if (sValue.StartsWith("{[") && sValue.EndsWith("]}"))
{
//Need to adjust RelativeNow to users time frame
//Need to adjust RelativeToday to users time frame
//Fetch useroptions object and relative time offset
AyaNova.Models.AyContext ct = AyaNova.Util.ServiceProviderProvider.DBContext;
var u = ct.User.AsNoTracking().Where(a => a.Id == userId).Select(m => new { roles = m.Roles, name = m.Name, id = m.Id, localeId = m.LocaleId }).First();
AyaNova.Models.AyContext ct = AyaNova.Util.ServiceProviderProvider.DBContext;
var u = ct.User.AsNoTracking().Where(a => a.Id == userId).Select(m => new { tz = m.UserOptions.TimeZoneOffset }).First();
RelativeToday.AddHours((double)u.tz);
#region Build criteria for date RANGE TOKEN specified
//Used as the basis point
@@ -299,30 +299,30 @@ namespace AyaNova.Biz
//Case 402
case FilterSpecialToken.Yesterday:
//Between Day before yesterday at midnight and yesterday at midnight
dtAfter = System.DateTime.Today.AddDays(-1);
dtAfter = RelativeToday.AddDays(-1);
dtAfter = dtAfter.AddSeconds(-1);
dtBefore = System.DateTime.Today;//.AddDays(-1);
dtBefore = RelativeToday;//.AddDays(-1);
BuildBetweenTwoDatesFragment(sColumn, sb, dtAfter, dtBefore);
break;
case FilterSpecialToken.Today:
//Between yesterday at midnight and tommorow at midnight
dtAfter = System.DateTime.Today.AddSeconds(-1);
dtBefore = System.DateTime.Today.AddDays(1);
dtAfter = RelativeToday.AddSeconds(-1);
dtBefore = RelativeToday.AddDays(1);
BuildBetweenTwoDatesFragment(sColumn, sb, dtAfter, dtBefore);
break;
case FilterSpecialToken.Tomorrow:
//Between Tonight at midnight and day after tommorow at midnight
dtAfter = System.DateTime.Today.AddDays(1);
dtAfter = RelativeToday.AddDays(1);
dtAfter = dtAfter.AddSeconds(-1);
dtBefore = System.DateTime.Today.AddDays(2);
dtBefore = RelativeToday.AddDays(2);
BuildBetweenTwoDatesFragment(sColumn, sb, dtAfter, dtBefore);
break;
//Case 402
case FilterSpecialToken.LastWeek:
//Between two Sundays ago at midnight and last sunday at midnight
dtAfter = System.DateTime.Today;
dtAfter = RelativeToday;
//go back a week
dtAfter = dtAfter.AddDays(-7);
@@ -342,7 +342,7 @@ namespace AyaNova.Biz
case FilterSpecialToken.ThisWeek:
//Between Sunday at midnight and Next sunday at midnight
dtAfter = System.DateTime.Today;
dtAfter = RelativeToday;
//go backwards to monday
while (dtAfter.DayOfWeek != DayOfWeek.Monday)
dtAfter = dtAfter.AddDays(-1);
@@ -352,9 +352,9 @@ namespace AyaNova.Biz
dtBefore = System.DateTime.Today;
dtBefore = RelativeToday;
//go forwards to monday
if (System.DateTime.Today.DayOfWeek == DayOfWeek.Monday)
if (RelativeToday.DayOfWeek == DayOfWeek.Monday)
{
//Monday today? then go to next monday
dtBefore = dtBefore.AddDays(7);
@@ -369,7 +369,7 @@ namespace AyaNova.Biz
break;
case FilterSpecialToken.NextWeek:
//Between Next Sunday at midnight and Next Next sunday at midnight
dtAfter = System.DateTime.Today;
dtAfter = RelativeToday;
//If today is monday skip over it first
if (dtAfter.DayOfWeek == DayOfWeek.Monday)
@@ -392,7 +392,7 @@ namespace AyaNova.Biz
break;
case FilterSpecialToken.LastMonth:
//start with the first day of this month
dtAfter = new DateTime(DateTime.Today.Year, DateTime.Today.Month, 1, 00, 00, 00);
dtAfter = new DateTime(RelativeToday.Year, RelativeToday.Month, 1, 00, 00, 00);
//subtract a Month
dtAfter = dtAfter.AddMonths(-1);
@@ -408,7 +408,7 @@ namespace AyaNova.Biz
break;
case FilterSpecialToken.ThisMonth:
//start with the first day of this month
dtAfter = new DateTime(DateTime.Today.Year, DateTime.Today.Month, 1, 00, 00, 00);
dtAfter = new DateTime(RelativeToday.Year, RelativeToday.Month, 1, 00, 00, 00);
//Add one month to dtAfter to get end date
dtBefore = dtAfter.AddMonths(1);
@@ -421,7 +421,7 @@ namespace AyaNova.Biz
case FilterSpecialToken.NextMonth:
//start with the first day of this month
dtAfter = new DateTime(DateTime.Today.Year, DateTime.Today.Month, 1, 00, 00, 00);
dtAfter = new DateTime(RelativeToday.Year, RelativeToday.Month, 1, 00, 00, 00);
//Add a Month
dtAfter = dtAfter.AddMonths(1);
@@ -435,7 +435,7 @@ namespace AyaNova.Biz
break;
case FilterSpecialToken.FourteenDayWindow:
//start with today zero hour
dtAfter = new DateTime(DateTime.Today.Year, DateTime.Today.Month, DateTime.Today.Day, 00, 00, 00);
dtAfter = new DateTime(RelativeToday.Year, RelativeToday.Month, RelativeToday.Day, 00, 00, 00);
dtAfter = dtAfter.AddDays(-7);
//Add 15 days to get end date (zero hour so not really 15 full days)