This commit is contained in:
2021-02-05 15:04:01 +00:00
parent 33751d6ef6
commit 4e36464645

View File

@@ -421,51 +421,21 @@ namespace AyaNova.DataList
case UiFieldDataType.DateTime: case UiFieldDataType.DateTime:
case UiFieldDataType.Time: case UiFieldDataType.Time:
{ {
//################################################################################################################## //##################################################################################################################
//TODO: DE-TOKENIZATION
//listOptions.ClientTimeStamp.DateTime contains the exact client time and date as expected
//################################################################################################################## //##################################################################################################################
DateTime RelativeToday = clientTimeStamp.Date;
DateTime RelativeNow = clientTimeStamp.DateTime;
// #############################################################################################################################################################
// Last working server date token filter code from revision 2612 feb 7 2020
if (sValue.StartsWith("*") && sValue.EndsWith("*")) if (sValue.StartsWith("*") && sValue.EndsWith("*"))
{ {
//All below calcs done with Client provided current date/time and converted to UTC only at the end for sql
DateTime ClientToday = clientTimeStamp.Date;
DateTime ClientNow = clientTimeStamp.DateTime;
//Need to adjust RelativeToday to users time frame
//Fetch useroptions object and relative time offset
//See servers spec doc core-locale-currency-numbers-time-and-dates.txt for details about why this is necessary to be done this way
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();
//Add this value to any time's hours to convert to user local time
Double TimeZoneAdjustment = ((double)u.tz) * -1;
//Stock times used for many of the tokens:
RelativeToday = RelativeToday.AddHours(TimeZoneAdjustment);//flip the sign to adjust towards UTC
RelativeNow = RelativeNow.AddHours(TimeZoneAdjustment);//flip the sign to adjust towards UTC
//TESTING:
//LOG THE CRIT AND QUERY
// ILogger log = AyaNova.Util.ApplicationLogging.CreateLogger("FilterSqlCriteriaBuilder::DataFilterToColumnCriteria");
// log.LogInformation("RelativeToday (adjusted):");
// log.LogInformation(RelativeToday.ToString());
// log.LogInformation("RelativeNow (adjusted):");
// log.LogInformation(RelativeNow.ToString());
// log.LogInformation("Offset used:");
// log.LogInformation(u.tz.ToString());
#region Build criteria for date RANGE TOKEN specified #region Build criteria for date RANGE TOKEN specified
NOTE: All this code is suspect, go through each one, many are not using the relativetoday and relativenow as they should be
//Used as the basis point //Used as the basis point
System.DateTime dtAfter; System.DateTime dtAfter;
System.DateTime dtBefore; System.DateTime dtBefore;
@@ -474,50 +444,40 @@ namespace AyaNova.DataList
//Case 402 //Case 402
case "*yesterday*": case "*yesterday*":
//Between Day before yesterday at midnight and yesterday at midnight //Between Day before yesterday at midnight and yesterday at midnight
dtAfter = RelativeToday.AddDays(-1); dtAfter = ClientToday.AddDays(-1);
dtAfter = dtAfter.AddSeconds(-1); dtAfter = dtAfter.AddSeconds(-1);
dtBefore = RelativeToday;//.AddDays(-1); dtBefore = ClientToday;
BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore);
break; break;
case "*today*": case "*today*":
//Between yesterday at midnight and tommorow at midnight //Between yesterday at midnight and tommorow at midnight
dtAfter = RelativeToday.AddSeconds(-1); dtAfter = ClientToday.AddSeconds(-1);
dtBefore = RelativeToday.AddDays(1); dtBefore = ClientToday.AddDays(1);
BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore);
break; break;
case "*tomorrow*": case "*tomorrow*":
//Between Tonight at midnight and day after tommorow at midnight //Between Tonight at midnight and day after tommorow at midnight
dtAfter = RelativeToday.AddDays(1); dtAfter = ClientToday.AddDays(1).AddSeconds(-1);
dtAfter = dtAfter.AddSeconds(-1); dtBefore = ClientToday.AddDays(2);
dtBefore = RelativeToday.AddDays(2);
BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore);
break; break;
//Case 402
case "*lastweek*": case "*lastweek*":
//Between two Sundays ago at midnight and last sunday at midnight //Between two Sundays ago at midnight and last sunday at midnight
dtAfter = RelativeToday; dtAfter = ClientToday;
//go back a week //go back a week
dtAfter = dtAfter.AddDays(-7); dtAfter = dtAfter.AddDays(-7);
//go backwards to Sunday //go backwards to Sunday
while (dtAfter.DayOfWeek != DayOfWeek.Sunday) while (dtAfter.DayOfWeek != DayOfWeek.Sunday)
dtAfter = dtAfter.AddDays(-1); dtAfter = dtAfter.AddDays(-1);
//go to very start of eighth dayahead //go to very start of eighth dayahead
dtBefore = dtAfter.AddDays(8); dtBefore = dtAfter.AddDays(8);
dtAfter = dtAfter.AddSeconds(-1); dtAfter = dtAfter.AddSeconds(-1);
BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore);
break; break;
case "*thisweek*": case "*thisweek*":
//Between Sunday at midnight and Next sunday at midnight //Between Sunday at midnight and Next sunday at midnight
dtAfter = RelativeToday; dtAfter = ClientToday;
//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);
@@ -525,11 +485,9 @@ namespace AyaNova.DataList
//Now go back to sunday last second //Now go back to sunday last second
dtAfter = dtAfter.AddSeconds(-1); dtAfter = dtAfter.AddSeconds(-1);
dtBefore = ClientToday;
dtBefore = RelativeToday;
//go forwards to monday //go forwards to monday
if (RelativeToday.DayOfWeek == DayOfWeek.Monday) if (ClientToday.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);
@@ -544,7 +502,7 @@ namespace AyaNova.DataList
break; break;
case "*nextweek*": case "*nextweek*":
//Between Next Sunday at midnight and Next Next sunday at midnight //Between Next Sunday at midnight and Next Next sunday at midnight
dtAfter = RelativeToday; dtAfter = ClientToday;
//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)
@@ -553,21 +511,17 @@ namespace AyaNova.DataList
//go forwards to next monday //go forwards to next monday
while (dtAfter.DayOfWeek != DayOfWeek.Monday) while (dtAfter.DayOfWeek != DayOfWeek.Monday)
dtAfter = dtAfter.AddDays(1); dtAfter = dtAfter.AddDays(1);
//Now go back to sunday last second //Now go back to sunday last second
dtAfter = dtAfter.AddDays(-1); dtAfter = dtAfter.AddDays(-1);
//go seven days ahead //go seven days ahead
dtBefore = dtAfter.AddDays(7); dtBefore = dtAfter.AddDays(7);
//case 1155
dtAfter = dtAfter.AddSeconds(-1); dtAfter = dtAfter.AddSeconds(-1);
BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore);
break; break;
case "*lastmonth*": case "*lastmonth*":
//start with the first day of this month //start with the first day of this month
dtAfter = new DateTime(RelativeToday.Year, RelativeToday.Month, 1, RelativeToday.Hour, RelativeToday.Minute, 00); dtAfter = new DateTime(ClientToday.Year, ClientToday.Month, 1);
//subtract a Month //subtract a Month
dtAfter = dtAfter.AddMonths(-1); dtAfter = dtAfter.AddMonths(-1);
@@ -575,15 +529,13 @@ namespace AyaNova.DataList
dtBefore = dtAfter.AddMonths(1); dtBefore = dtAfter.AddMonths(1);
//case 1155 //case 1155
dtAfter = dtAfter.AddSeconds(-1); dtAfter = dtAfter.AddSeconds(-1);
// 'yyyy-mm-ddTHH:MM:SS'
BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore);
break; break;
case "*thismonth*": case "*thismonth*":
//start with the first day of this month //start with the first day of this month
dtAfter = new DateTime(RelativeToday.Year, RelativeToday.Month, 1, RelativeToday.Hour, RelativeToday.Minute, 00); dtAfter = new DateTime(ClientToday.Year, ClientToday.Month, 1);
//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);
@@ -596,7 +548,7 @@ namespace AyaNova.DataList
case "*nextmonth*": case "*nextmonth*":
//start with the first day of this month //start with the first day of this month
dtAfter = new DateTime(RelativeToday.Year, RelativeToday.Month, 1, RelativeToday.Hour, RelativeToday.Minute, 00); dtAfter = new DateTime(ClientToday.Year, ClientToday.Month, 1);
//Add a Month //Add a Month
dtAfter = dtAfter.AddMonths(1); dtAfter = dtAfter.AddMonths(1);
@@ -607,9 +559,10 @@ namespace AyaNova.DataList
dtAfter = dtAfter.AddSeconds(-1); dtAfter = dtAfter.AddSeconds(-1);
BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore);
break; break;
case "*14daywindow*": case "*14daywindow*":
//start with today zero hour //start with today zero hour
dtAfter = new DateTime(RelativeToday.Year, RelativeToday.Month, RelativeToday.Day, RelativeToday.Hour, RelativeToday.Minute, 00); dtAfter = new DateTime(ClientToday.Year, ClientToday.Month, ClientToday.Day);
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)
@@ -621,76 +574,73 @@ namespace AyaNova.DataList
BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore);
break; break;
//case 2067 ADDITIONAL DATE RANGES ************
case "*past*": case "*past*":
//Forever up to Now //Forever up to Now
dtAfter = new DateTime(1753, 1, 2, 00, 00, 00); dtAfter = new DateTime(1753, 1, 2, 00, 00, 00);//this was for sql server but even then was probably outdated good enough though for our purposes
dtBefore = DateTime.UtcNow; dtBefore = ClientNow;
BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore);
break; break;
case "*future*": case "*future*":
//From Now to forever (999 years from now) //From Now to forever (999 years from now)
dtAfter = DateTime.UtcNow; dtAfter = ClientNow;
dtBefore = DateTime.UtcNow.AddYears(999); dtBefore = dtAfter.AddYears(999);
BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore);
break; break;
case "*lastyear*": case "*lastyear*":
//From zero hour january 1 a year ago //From zero hour january 1 a year ago
dtAfter = new DateTime(RelativeNow.AddYears(-1).Year, 1, 1, 0, 0, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); dtAfter = new DateTime(ClientNow.AddYears(-1).Year, 1, 1, 0, 0, 00).AddSeconds(-1);
//To zero hour January 1 this year //To zero hour January 1 this year
dtBefore = new DateTime(RelativeNow.Year, 1, 1, 0, 0, 00).AddHours(TimeZoneAdjustment); dtBefore = new DateTime(ClientNow.Year, 1, 1, 0, 0, 00);
BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore);
break; break;
case "*thisyear*": case "*thisyear*":
//From zero hour january 1 this year //From zero hour january 1 this year
dtAfter = new DateTime(RelativeNow.Year, 1, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); dtAfter = new DateTime(ClientNow.Year, 1, 1, 00, 00, 00).AddSeconds(-1);
//To zero hour Jan 1 next year //To zero hour Jan 1 next year
dtBefore = new DateTime(RelativeNow.AddYears(1).Year, 1, 1, 00, 00, 00).AddHours(TimeZoneAdjustment); dtBefore = new DateTime(ClientNow.AddYears(1).Year, 1, 1, 00, 00, 00);
BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore);
break; break;
case "*last3months*": case "*last3months*":
//From Now minus 3 months //From Now minus 3 months
dtAfter = DateTime.UtcNow.AddMonths(-3); dtAfter = ClientNow.AddMonths(-3);
//To Now //To Now
dtBefore = DateTime.UtcNow; dtBefore = ClientNow;
BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore);
break; break;
case "*last6months*": case "*last6months*":
//From Now minus 6 months //From Now minus 6 months
dtAfter = DateTime.UtcNow.AddMonths(-6); dtAfter = ClientNow.AddMonths(-6);
//To Now //To Now
dtBefore = DateTime.UtcNow; dtBefore = ClientNow;
BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore);
break; break;
case "*pastyear*": //within the prior 365 days before today case "*pastyear*": //within the prior 365 days before today
//From Now minus 365 days //From Now minus 365 days
dtAfter = DateTime.UtcNow.AddDays(-365); dtAfter = ClientNow.AddDays(-365);
//To Now //To Now
dtBefore = DateTime.UtcNow; dtBefore = ClientNow;
BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore);
break; break;
case "*past90days*": case "*past90days*":
//From Now minus 90 days //From Now minus 90 days
dtAfter = DateTime.UtcNow.AddDays(-90); dtAfter = ClientNow.AddDays(-90);
//To Now //To Now
dtBefore = DateTime.UtcNow; dtBefore = ClientNow;
BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore);
break; break;
case "*past30days*": case "*past30days*":
//From Now minus 30 days //From Now minus 30 days
dtAfter = DateTime.UtcNow.AddDays(-30); dtAfter = ClientNow.AddDays(-30);
//To Now //To Now
dtBefore = DateTime.UtcNow; dtBefore = ClientNow;
BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore);
break; break;
case "*past7days*": case "*past7days*":
@@ -699,9 +649,9 @@ namespace AyaNova.DataList
case "*past24hours*": case "*past24hours*":
//From Now minus 24 hours //From Now minus 24 hours
dtAfter = DateTime.UtcNow.AddHours(-24); dtAfter = ClientNow.AddHours(-24);
//To Now //To Now
dtBefore = DateTime.UtcNow; dtBefore = ClientNow;
BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore);
break; break;
@@ -711,77 +661,77 @@ namespace AyaNova.DataList
case "*january*": case "*january*":
//From zero hour january 1 this year //From zero hour january 1 this year
dtAfter = new DateTime(RelativeNow.Year, 1, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); dtAfter = new DateTime(ClientNow.Year, 1, 1, 00, 00, 00).AddSeconds(-1);
//To zero hour feb 1 this year //To zero hour feb 1 this year
dtBefore = new DateTime(RelativeNow.Year, 2, 1, 00, 00, 00).AddHours(TimeZoneAdjustment); dtBefore = new DateTime(ClientNow.Year, 2, 1, 00, 00, 00);
BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore);
break; break;
case "*february*": case "*february*":
dtAfter = new DateTime(RelativeNow.Year, 2, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); dtAfter = new DateTime(ClientNow.Year, 2, 1, 00, 00, 00).AddSeconds(-1);
dtBefore = new DateTime(RelativeNow.Year, 3, 1, 00, 00, 00).AddHours(TimeZoneAdjustment); dtBefore = new DateTime(ClientNow.Year, 3, 1, 00, 00, 00);
BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore);
break; break;
case "*march*": case "*march*":
dtAfter = new DateTime(RelativeNow.Year, 3, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); dtAfter = new DateTime(ClientNow.Year, 3, 1, 00, 00, 00).AddSeconds(-1);
dtBefore = new DateTime(RelativeNow.Year, 4, 1, 00, 00, 00).AddHours(TimeZoneAdjustment); dtBefore = new DateTime(ClientNow.Year, 4, 1, 00, 00, 00);
BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore);
break; break;
case "*april*": case "*april*":
dtAfter = new DateTime(RelativeNow.Year, 4, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); dtAfter = new DateTime(ClientNow.Year, 4, 1, 00, 00, 00).AddSeconds(-1);
dtBefore = new DateTime(RelativeNow.Year, 5, 1, 00, 00, 00).AddHours(TimeZoneAdjustment); dtBefore = new DateTime(ClientNow.Year, 5, 1, 00, 00, 00);
BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore);
break; break;
case "*may*": case "*may*":
dtAfter = new DateTime(RelativeNow.Year, 5, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); dtAfter = new DateTime(ClientNow.Year, 5, 1, 00, 00, 00).AddSeconds(-1);
dtBefore = new DateTime(RelativeNow.Year, 6, 1, 00, 00, 00).AddHours(TimeZoneAdjustment); dtBefore = new DateTime(ClientNow.Year, 6, 1, 00, 00, 00);
BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore);
break; break;
case "*june*": case "*june*":
dtAfter = new DateTime(RelativeNow.Year, 6, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); dtAfter = new DateTime(ClientNow.Year, 6, 1, 00, 00, 00).AddSeconds(-1);
dtBefore = new DateTime(RelativeNow.Year, 7, 1, 00, 00, 00).AddHours(TimeZoneAdjustment); dtBefore = new DateTime(ClientNow.Year, 7, 1, 00, 00, 00);
BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore);
break; break;
case "*july*": case "*july*":
dtAfter = new DateTime(RelativeNow.Year, 7, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); dtAfter = new DateTime(ClientNow.Year, 7, 1, 00, 00, 00).AddSeconds(-1);
dtBefore = new DateTime(RelativeNow.Year, 8, 1, 00, 00, 00).AddHours(TimeZoneAdjustment); dtBefore = new DateTime(ClientNow.Year, 8, 1, 00, 00, 00);
BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore);
break; break;
case "*august*": case "*august*":
dtAfter = new DateTime(RelativeNow.Year, 8, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); dtAfter = new DateTime(ClientNow.Year, 8, 1, 00, 00, 00).AddSeconds(-1);
dtBefore = new DateTime(RelativeNow.Year, 9, 1, 00, 00, 00).AddHours(TimeZoneAdjustment); dtBefore = new DateTime(ClientNow.Year, 9, 1, 00, 00, 00);
BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore);
break; break;
case "*september*": case "*september*":
dtAfter = new DateTime(RelativeNow.Year, 9, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); dtAfter = new DateTime(ClientNow.Year, 9, 1, 00, 00, 00).AddSeconds(-1);
dtBefore = new DateTime(RelativeNow.Year, 10, 1, 00, 00, 00).AddHours(TimeZoneAdjustment); dtBefore = new DateTime(ClientNow.Year, 10, 1, 00, 00, 00);
BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore);
break; break;
case "*october*": case "*october*":
dtAfter = new DateTime(RelativeNow.Year, 10, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); dtAfter = new DateTime(ClientNow.Year, 10, 1, 00, 00, 00).AddSeconds(-1);
dtBefore = new DateTime(RelativeNow.Year, 11, 1, 00, 00, 00).AddHours(TimeZoneAdjustment); dtBefore = new DateTime(ClientNow.Year, 11, 1, 00, 00, 00);
BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore);
break; break;
case "*november*": case "*november*":
dtAfter = new DateTime(RelativeNow.Year, 11, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); dtAfter = new DateTime(ClientNow.Year, 11, 1, 00, 00, 00).AddSeconds(-1);
dtBefore = new DateTime(RelativeNow.Year, 12, 1, 00, 00, 00).AddHours(TimeZoneAdjustment); dtBefore = new DateTime(ClientNow.Year, 12, 1, 00, 00, 00);
BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore);
break; break;
case "*december*": case "*december*":
//From zero hour dec 1 this year //From zero hour dec 1 this year
dtAfter = new DateTime(RelativeNow.Year, 12, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); dtAfter = new DateTime(ClientNow.Year, 12, 1, 00, 00, 00).AddSeconds(-1);
//To zero hour Jan 1 next year //To zero hour Jan 1 next year
dtBefore = new DateTime(RelativeNow.AddYears(1).Year, 1, 1, 00, 00, 00).AddHours(TimeZoneAdjustment); dtBefore = new DateTime(ClientNow.AddYears(1).Year, 1, 1, 00, 00, 00);
BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore);
break; break;
case "*lastyearlastmonth*": case "*lastyearlastmonth*":
@@ -1721,8 +1671,8 @@ export default {
// Double TimeZoneAdjustment = ((double)u.tz) * -1; // Double TimeZoneAdjustment = ((double)u.tz) * -1;
// //Stock times used for many of the tokens: // //Stock times used for many of the tokens:
// RelativeToday = RelativeToday.AddHours(TimeZoneAdjustment);//flip the sign to adjust towards UTC // RelativeToday = RelativeToday;//flip the sign to adjust towards UTC
// RelativeNow = RelativeNow.AddHours(TimeZoneAdjustment);//flip the sign to adjust towards UTC // RelativeNow = RelativeNow;//flip the sign to adjust towards UTC
// //TESTING: // //TESTING:
// //LOG THE CRIT AND QUERY // //LOG THE CRIT AND QUERY
@@ -1905,17 +1855,17 @@ export default {
// case DataListFilterSpecialToken.LastYear: // case DataListFilterSpecialToken.LastYear:
// //From zero hour january 1 a year ago // //From zero hour january 1 a year ago
// dtAfter = new DateTime(RelativeNow.AddYears(-1).Year, 1, 1, 0, 0, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); // dtAfter = new DateTime(RelativeNow.AddYears(-1).Year, 1, 1, 0, 0, 00).AddSeconds(-1);
// //To zero hour January 1 this year // //To zero hour January 1 this year
// dtBefore = new DateTime(RelativeNow.Year, 1, 1, 0, 0, 00).AddHours(TimeZoneAdjustment); // dtBefore = new DateTime(RelativeNow.Year, 1, 1, 0, 0, 00);
// BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); // BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore);
// break; // break;
// case DataListFilterSpecialToken.ThisYear: // case DataListFilterSpecialToken.ThisYear:
// //From zero hour january 1 this year // //From zero hour january 1 this year
// dtAfter = new DateTime(RelativeNow.Year, 1, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); // dtAfter = new DateTime(RelativeNow.Year, 1, 1, 00, 00, 00).AddSeconds(-1);
// //To zero hour Jan 1 next year // //To zero hour Jan 1 next year
// dtBefore = new DateTime(RelativeNow.AddYears(1).Year, 1, 1, 00, 00, 00).AddHours(TimeZoneAdjustment); // dtBefore = new DateTime(RelativeNow.AddYears(1).Year, 1, 1, 00, 00, 00);
// BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); // BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore);
// break; // break;
@@ -1948,7 +1898,7 @@ export default {
// case DataListFilterSpecialToken.YearToDate: // case DataListFilterSpecialToken.YearToDate:
// //From zero hour january 1 this year // //From zero hour january 1 this year
// dtAfter = new DateTime(RelativeNow.Year, 1, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); ; // dtAfter = new DateTime(RelativeNow.Year, 1, 1, 00, 00, 00).AddSeconds(-1); ;
// //To now // //To now
// dtBefore = RelativeNow; // dtBefore = RelativeNow;
// BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); // BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore);
@@ -1978,77 +1928,77 @@ export default {
// case DataListFilterSpecialToken.January: // case DataListFilterSpecialToken.January:
// //From zero hour january 1 this year // //From zero hour january 1 this year
// dtAfter = new DateTime(RelativeNow.Year, 1, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); // dtAfter = new DateTime(RelativeNow.Year, 1, 1, 00, 00, 00).AddSeconds(-1);
// //To zero hour feb 1 this year // //To zero hour feb 1 this year
// dtBefore = new DateTime(RelativeNow.Year, 2, 1, 00, 00, 00).AddHours(TimeZoneAdjustment); // dtBefore = new DateTime(RelativeNow.Year, 2, 1, 00, 00, 00);
// BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); // BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore);
// break; // break;
// case DataListFilterSpecialToken.February: // case DataListFilterSpecialToken.February:
// dtAfter = new DateTime(RelativeNow.Year, 2, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); // dtAfter = new DateTime(RelativeNow.Year, 2, 1, 00, 00, 00).AddSeconds(-1);
// dtBefore = new DateTime(RelativeNow.Year, 3, 1, 00, 00, 00).AddHours(TimeZoneAdjustment); // dtBefore = new DateTime(RelativeNow.Year, 3, 1, 00, 00, 00);
// BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); // BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore);
// break; // break;
// case DataListFilterSpecialToken.March: // case DataListFilterSpecialToken.March:
// dtAfter = new DateTime(RelativeNow.Year, 3, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); // dtAfter = new DateTime(RelativeNow.Year, 3, 1, 00, 00, 00).AddSeconds(-1);
// dtBefore = new DateTime(RelativeNow.Year, 4, 1, 00, 00, 00).AddHours(TimeZoneAdjustment); // dtBefore = new DateTime(RelativeNow.Year, 4, 1, 00, 00, 00);
// BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); // BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore);
// break; // break;
// case DataListFilterSpecialToken.April: // case DataListFilterSpecialToken.April:
// dtAfter = new DateTime(RelativeNow.Year, 4, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); // dtAfter = new DateTime(RelativeNow.Year, 4, 1, 00, 00, 00).AddSeconds(-1);
// dtBefore = new DateTime(RelativeNow.Year, 5, 1, 00, 00, 00).AddHours(TimeZoneAdjustment); // dtBefore = new DateTime(RelativeNow.Year, 5, 1, 00, 00, 00);
// BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); // BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore);
// break; // break;
// case DataListFilterSpecialToken.May: // case DataListFilterSpecialToken.May:
// dtAfter = new DateTime(RelativeNow.Year, 5, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); // dtAfter = new DateTime(RelativeNow.Year, 5, 1, 00, 00, 00).AddSeconds(-1);
// dtBefore = new DateTime(RelativeNow.Year, 6, 1, 00, 00, 00).AddHours(TimeZoneAdjustment); // dtBefore = new DateTime(RelativeNow.Year, 6, 1, 00, 00, 00);
// BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); // BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore);
// break; // break;
// case DataListFilterSpecialToken.June: // case DataListFilterSpecialToken.June:
// dtAfter = new DateTime(RelativeNow.Year, 6, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); // dtAfter = new DateTime(RelativeNow.Year, 6, 1, 00, 00, 00).AddSeconds(-1);
// dtBefore = new DateTime(RelativeNow.Year, 7, 1, 00, 00, 00).AddHours(TimeZoneAdjustment); // dtBefore = new DateTime(RelativeNow.Year, 7, 1, 00, 00, 00);
// BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); // BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore);
// break; // break;
// case DataListFilterSpecialToken.July: // case DataListFilterSpecialToken.July:
// dtAfter = new DateTime(RelativeNow.Year, 7, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); // dtAfter = new DateTime(RelativeNow.Year, 7, 1, 00, 00, 00).AddSeconds(-1);
// dtBefore = new DateTime(RelativeNow.Year, 8, 1, 00, 00, 00).AddHours(TimeZoneAdjustment); // dtBefore = new DateTime(RelativeNow.Year, 8, 1, 00, 00, 00);
// BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); // BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore);
// break; // break;
// case DataListFilterSpecialToken.August: // case DataListFilterSpecialToken.August:
// dtAfter = new DateTime(RelativeNow.Year, 8, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); // dtAfter = new DateTime(RelativeNow.Year, 8, 1, 00, 00, 00).AddSeconds(-1);
// dtBefore = new DateTime(RelativeNow.Year, 9, 1, 00, 00, 00).AddHours(TimeZoneAdjustment); // dtBefore = new DateTime(RelativeNow.Year, 9, 1, 00, 00, 00);
// BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); // BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore);
// break; // break;
// case DataListFilterSpecialToken.September: // case DataListFilterSpecialToken.September:
// dtAfter = new DateTime(RelativeNow.Year, 9, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); // dtAfter = new DateTime(RelativeNow.Year, 9, 1, 00, 00, 00).AddSeconds(-1);
// dtBefore = new DateTime(RelativeNow.Year, 10, 1, 00, 00, 00).AddHours(TimeZoneAdjustment); // dtBefore = new DateTime(RelativeNow.Year, 10, 1, 00, 00, 00);
// BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); // BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore);
// break; // break;
// case DataListFilterSpecialToken.October: // case DataListFilterSpecialToken.October:
// dtAfter = new DateTime(RelativeNow.Year, 10, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); // dtAfter = new DateTime(RelativeNow.Year, 10, 1, 00, 00, 00).AddSeconds(-1);
// dtBefore = new DateTime(RelativeNow.Year, 11, 1, 00, 00, 00).AddHours(TimeZoneAdjustment); // dtBefore = new DateTime(RelativeNow.Year, 11, 1, 00, 00, 00);
// BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); // BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore);
// break; // break;
// case DataListFilterSpecialToken.November: // case DataListFilterSpecialToken.November:
// dtAfter = new DateTime(RelativeNow.Year, 11, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); // dtAfter = new DateTime(RelativeNow.Year, 11, 1, 00, 00, 00).AddSeconds(-1);
// dtBefore = new DateTime(RelativeNow.Year, 12, 1, 00, 00, 00).AddHours(TimeZoneAdjustment); // dtBefore = new DateTime(RelativeNow.Year, 12, 1, 00, 00, 00);
// BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); // BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore);
// break; // break;
// case DataListFilterSpecialToken.December: // case DataListFilterSpecialToken.December:
// //From zero hour dec 1 this year // //From zero hour dec 1 this year
// dtAfter = new DateTime(RelativeNow.Year, 12, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); // dtAfter = new DateTime(RelativeNow.Year, 12, 1, 00, 00, 00).AddSeconds(-1);
// //To zero hour Jan 1 next year // //To zero hour Jan 1 next year
// dtBefore = new DateTime(RelativeNow.AddYears(1).Year, 1, 1, 00, 00, 00).AddHours(TimeZoneAdjustment); // dtBefore = new DateTime(RelativeNow.AddYears(1).Year, 1, 1, 00, 00, 00);
// BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); // BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore);
// break; // break;