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 //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 //So this is the core date time to work off of
DateTime RelativeNow=DateTime.Now; DateTime RelativeToday = DateTime.Today;
if (sValue.StartsWith("{[") && sValue.EndsWith("]}")) 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 //Fetch useroptions object and relative time offset
AyaNova.Models.AyContext ct = AyaNova.Util.ServiceProviderProvider.DBContext; 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(); 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 #region Build criteria for date RANGE TOKEN specified
//Used as the basis point //Used as the basis point
@@ -299,30 +299,30 @@ namespace AyaNova.Biz
//Case 402 //Case 402
case FilterSpecialToken.Yesterday: case FilterSpecialToken.Yesterday:
//Between Day before yesterday at midnight and yesterday at midnight //Between Day before yesterday at midnight and yesterday at midnight
dtAfter = System.DateTime.Today.AddDays(-1); dtAfter = RelativeToday.AddDays(-1);
dtAfter = dtAfter.AddSeconds(-1); dtAfter = dtAfter.AddSeconds(-1);
dtBefore = System.DateTime.Today;//.AddDays(-1); dtBefore = RelativeToday;//.AddDays(-1);
BuildBetweenTwoDatesFragment(sColumn, sb, dtAfter, dtBefore); BuildBetweenTwoDatesFragment(sColumn, sb, dtAfter, dtBefore);
break; break;
case FilterSpecialToken.Today: case FilterSpecialToken.Today:
//Between yesterday at midnight and tommorow at midnight //Between yesterday at midnight and tommorow at midnight
dtAfter = System.DateTime.Today.AddSeconds(-1); dtAfter = RelativeToday.AddSeconds(-1);
dtBefore = System.DateTime.Today.AddDays(1); dtBefore = RelativeToday.AddDays(1);
BuildBetweenTwoDatesFragment(sColumn, sb, dtAfter, dtBefore); BuildBetweenTwoDatesFragment(sColumn, sb, dtAfter, dtBefore);
break; break;
case FilterSpecialToken.Tomorrow: case FilterSpecialToken.Tomorrow:
//Between Tonight at midnight and day after tommorow at midnight //Between Tonight at midnight and day after tommorow at midnight
dtAfter = System.DateTime.Today.AddDays(1); dtAfter = RelativeToday.AddDays(1);
dtAfter = dtAfter.AddSeconds(-1); dtAfter = dtAfter.AddSeconds(-1);
dtBefore = System.DateTime.Today.AddDays(2); dtBefore = RelativeToday.AddDays(2);
BuildBetweenTwoDatesFragment(sColumn, sb, dtAfter, dtBefore); BuildBetweenTwoDatesFragment(sColumn, sb, dtAfter, dtBefore);
break; break;
//Case 402 //Case 402
case FilterSpecialToken.LastWeek: case FilterSpecialToken.LastWeek:
//Between two Sundays ago at midnight and last sunday at midnight //Between two Sundays ago at midnight and last sunday at midnight
dtAfter = System.DateTime.Today; dtAfter = RelativeToday;
//go back a week //go back a week
dtAfter = dtAfter.AddDays(-7); dtAfter = dtAfter.AddDays(-7);
@@ -342,7 +342,7 @@ namespace AyaNova.Biz
case FilterSpecialToken.ThisWeek: case FilterSpecialToken.ThisWeek:
//Between Sunday at midnight and Next sunday at midnight //Between Sunday at midnight and Next sunday at midnight
dtAfter = System.DateTime.Today; dtAfter = RelativeToday;
//go backwards to monday //go backwards to monday
while (dtAfter.DayOfWeek != DayOfWeek.Monday) while (dtAfter.DayOfWeek != DayOfWeek.Monday)
dtAfter = dtAfter.AddDays(-1); dtAfter = dtAfter.AddDays(-1);
@@ -352,9 +352,9 @@ namespace AyaNova.Biz
dtBefore = System.DateTime.Today; dtBefore = RelativeToday;
//go forwards to monday //go forwards to monday
if (System.DateTime.Today.DayOfWeek == DayOfWeek.Monday) if (RelativeToday.DayOfWeek == DayOfWeek.Monday)
{ {
//Monday today? then go to next monday //Monday today? then go to next monday
dtBefore = dtBefore.AddDays(7); dtBefore = dtBefore.AddDays(7);
@@ -369,7 +369,7 @@ namespace AyaNova.Biz
break; break;
case FilterSpecialToken.NextWeek: case FilterSpecialToken.NextWeek:
//Between Next Sunday at midnight and Next Next sunday at midnight //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 today is monday skip over it first
if (dtAfter.DayOfWeek == DayOfWeek.Monday) if (dtAfter.DayOfWeek == DayOfWeek.Monday)
@@ -392,7 +392,7 @@ namespace AyaNova.Biz
break; break;
case FilterSpecialToken.LastMonth: case FilterSpecialToken.LastMonth:
//start with the first day of this month //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 //subtract a Month
dtAfter = dtAfter.AddMonths(-1); dtAfter = dtAfter.AddMonths(-1);
@@ -408,7 +408,7 @@ namespace AyaNova.Biz
break; break;
case FilterSpecialToken.ThisMonth: case FilterSpecialToken.ThisMonth:
//start with the first day of this month //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 //Add one month to dtAfter to get end date
dtBefore = dtAfter.AddMonths(1); dtBefore = dtAfter.AddMonths(1);
@@ -421,7 +421,7 @@ namespace AyaNova.Biz
case FilterSpecialToken.NextMonth: case FilterSpecialToken.NextMonth:
//start with the first day of this month //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 //Add a Month
dtAfter = dtAfter.AddMonths(1); dtAfter = dtAfter.AddMonths(1);
@@ -435,7 +435,7 @@ namespace AyaNova.Biz
break; break;
case FilterSpecialToken.FourteenDayWindow: case FilterSpecialToken.FourteenDayWindow:
//start with today zero hour //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); dtAfter = dtAfter.AddDays(-7);
//Add 15 days to get end date (zero hour so not really 15 full days) //Add 15 days to get end date (zero hour so not really 15 full days)