This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user