From 4e36464645cfcd9dc1a2ca83327771e3ac2539f6 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Fri, 5 Feb 2021 15:04:01 +0000 Subject: [PATCH] --- .../DataListSqlFilterCriteriaBuilder.cs | 248 +++++++----------- 1 file changed, 99 insertions(+), 149 deletions(-) diff --git a/server/AyaNova/DataList/DataListSqlFilterCriteriaBuilder.cs b/server/AyaNova/DataList/DataListSqlFilterCriteriaBuilder.cs index 0db1baf2..333f4e26 100644 --- a/server/AyaNova/DataList/DataListSqlFilterCriteriaBuilder.cs +++ b/server/AyaNova/DataList/DataListSqlFilterCriteriaBuilder.cs @@ -421,51 +421,21 @@ namespace AyaNova.DataList case UiFieldDataType.DateTime: 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("*")) { + //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 - 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 System.DateTime dtAfter; System.DateTime dtBefore; @@ -474,50 +444,40 @@ namespace AyaNova.DataList //Case 402 case "*yesterday*": //Between Day before yesterday at midnight and yesterday at midnight - dtAfter = RelativeToday.AddDays(-1); + dtAfter = ClientToday.AddDays(-1); dtAfter = dtAfter.AddSeconds(-1); - dtBefore = RelativeToday;//.AddDays(-1); + dtBefore = ClientToday; BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); break; case "*today*": //Between yesterday at midnight and tommorow at midnight - dtAfter = RelativeToday.AddSeconds(-1); - dtBefore = RelativeToday.AddDays(1); + dtAfter = ClientToday.AddSeconds(-1); + dtBefore = ClientToday.AddDays(1); BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); break; case "*tomorrow*": //Between Tonight at midnight and day after tommorow at midnight - dtAfter = RelativeToday.AddDays(1); - dtAfter = dtAfter.AddSeconds(-1); - dtBefore = RelativeToday.AddDays(2); + dtAfter = ClientToday.AddDays(1).AddSeconds(-1); + dtBefore = ClientToday.AddDays(2); BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); - break; - - //Case 402 + break; case "*lastweek*": //Between two Sundays ago at midnight and last sunday at midnight - dtAfter = RelativeToday; - + dtAfter = ClientToday; //go back a week dtAfter = dtAfter.AddDays(-7); - //go backwards to Sunday while (dtAfter.DayOfWeek != DayOfWeek.Sunday) dtAfter = dtAfter.AddDays(-1); - //go to very start of eighth dayahead dtBefore = dtAfter.AddDays(8); - dtAfter = dtAfter.AddSeconds(-1); - BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); break; - - case "*thisweek*": //Between Sunday at midnight and Next sunday at midnight - dtAfter = RelativeToday; + dtAfter = ClientToday; //go backwards to monday while (dtAfter.DayOfWeek != DayOfWeek.Monday) dtAfter = dtAfter.AddDays(-1); @@ -525,11 +485,9 @@ namespace AyaNova.DataList //Now go back to sunday last second dtAfter = dtAfter.AddSeconds(-1); - - - dtBefore = RelativeToday; + dtBefore = ClientToday; //go forwards to monday - if (RelativeToday.DayOfWeek == DayOfWeek.Monday) + if (ClientToday.DayOfWeek == DayOfWeek.Monday) { //Monday today? then go to next monday dtBefore = dtBefore.AddDays(7); @@ -544,7 +502,7 @@ namespace AyaNova.DataList break; case "*nextweek*": //Between Next Sunday at midnight and Next Next sunday at midnight - dtAfter = RelativeToday; + dtAfter = ClientToday; //If today is monday skip over it first if (dtAfter.DayOfWeek == DayOfWeek.Monday) @@ -553,21 +511,17 @@ namespace AyaNova.DataList //go forwards to next monday while (dtAfter.DayOfWeek != DayOfWeek.Monday) dtAfter = dtAfter.AddDays(1); - //Now go back to sunday last second dtAfter = dtAfter.AddDays(-1); - //go seven days ahead - dtBefore = dtAfter.AddDays(7); - - //case 1155 + dtBefore = dtAfter.AddDays(7); dtAfter = dtAfter.AddSeconds(-1); BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); break; case "*lastmonth*": //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 dtAfter = dtAfter.AddMonths(-1); @@ -575,15 +529,13 @@ namespace AyaNova.DataList dtBefore = dtAfter.AddMonths(1); //case 1155 - dtAfter = dtAfter.AddSeconds(-1); - - // 'yyyy-mm-ddTHH:MM:SS' + dtAfter = dtAfter.AddSeconds(-1); BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); break; case "*thismonth*": //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 dtBefore = dtAfter.AddMonths(1); @@ -596,7 +548,7 @@ namespace AyaNova.DataList case "*nextmonth*": //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 dtAfter = dtAfter.AddMonths(1); @@ -607,9 +559,10 @@ namespace AyaNova.DataList dtAfter = dtAfter.AddSeconds(-1); BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); break; + case "*14daywindow*": //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); //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); break; - - //case 2067 ADDITIONAL DATE RANGES ************ - case "*past*": //Forever up to Now - dtAfter = new DateTime(1753, 1, 2, 00, 00, 00); - dtBefore = DateTime.UtcNow; + 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 = ClientNow; BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); break; case "*future*": //From Now to forever (999 years from now) - dtAfter = DateTime.UtcNow; - dtBefore = DateTime.UtcNow.AddYears(999); + dtAfter = ClientNow; + dtBefore = dtAfter.AddYears(999); BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); break; case "*lastyear*": //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 - 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); break; case "*thisyear*": //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 - 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); break; case "*last3months*": //From Now minus 3 months - dtAfter = DateTime.UtcNow.AddMonths(-3); + dtAfter = ClientNow.AddMonths(-3); //To Now - dtBefore = DateTime.UtcNow; + dtBefore = ClientNow; BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); break; case "*last6months*": //From Now minus 6 months - dtAfter = DateTime.UtcNow.AddMonths(-6); + dtAfter = ClientNow.AddMonths(-6); //To Now - dtBefore = DateTime.UtcNow; + dtBefore = ClientNow; BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); break; case "*pastyear*": //within the prior 365 days before today //From Now minus 365 days - dtAfter = DateTime.UtcNow.AddDays(-365); + dtAfter = ClientNow.AddDays(-365); //To Now - dtBefore = DateTime.UtcNow; + dtBefore = ClientNow; BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); break; case "*past90days*": //From Now minus 90 days - dtAfter = DateTime.UtcNow.AddDays(-90); + dtAfter = ClientNow.AddDays(-90); //To Now - dtBefore = DateTime.UtcNow; + dtBefore = ClientNow; BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); break; case "*past30days*": //From Now minus 30 days - dtAfter = DateTime.UtcNow.AddDays(-30); + dtAfter = ClientNow.AddDays(-30); //To Now - dtBefore = DateTime.UtcNow; + dtBefore = ClientNow; BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); break; case "*past7days*": @@ -699,9 +649,9 @@ namespace AyaNova.DataList case "*past24hours*": //From Now minus 24 hours - dtAfter = DateTime.UtcNow.AddHours(-24); + dtAfter = ClientNow.AddHours(-24); //To Now - dtBefore = DateTime.UtcNow; + dtBefore = ClientNow; BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); break; @@ -711,77 +661,77 @@ namespace AyaNova.DataList case "*january*": //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 - 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); break; case "*february*": - dtAfter = new DateTime(RelativeNow.Year, 2, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); - dtBefore = new DateTime(RelativeNow.Year, 3, 1, 00, 00, 00).AddHours(TimeZoneAdjustment); + dtAfter = new DateTime(ClientNow.Year, 2, 1, 00, 00, 00).AddSeconds(-1); + dtBefore = new DateTime(ClientNow.Year, 3, 1, 00, 00, 00); BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); break; case "*march*": - dtAfter = new DateTime(RelativeNow.Year, 3, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); - dtBefore = new DateTime(RelativeNow.Year, 4, 1, 00, 00, 00).AddHours(TimeZoneAdjustment); + dtAfter = new DateTime(ClientNow.Year, 3, 1, 00, 00, 00).AddSeconds(-1); + dtBefore = new DateTime(ClientNow.Year, 4, 1, 00, 00, 00); BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); break; case "*april*": - dtAfter = new DateTime(RelativeNow.Year, 4, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); - dtBefore = new DateTime(RelativeNow.Year, 5, 1, 00, 00, 00).AddHours(TimeZoneAdjustment); + dtAfter = new DateTime(ClientNow.Year, 4, 1, 00, 00, 00).AddSeconds(-1); + dtBefore = new DateTime(ClientNow.Year, 5, 1, 00, 00, 00); BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); break; case "*may*": - dtAfter = new DateTime(RelativeNow.Year, 5, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); - dtBefore = new DateTime(RelativeNow.Year, 6, 1, 00, 00, 00).AddHours(TimeZoneAdjustment); + dtAfter = new DateTime(ClientNow.Year, 5, 1, 00, 00, 00).AddSeconds(-1); + dtBefore = new DateTime(ClientNow.Year, 6, 1, 00, 00, 00); BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); break; case "*june*": - dtAfter = new DateTime(RelativeNow.Year, 6, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); - dtBefore = new DateTime(RelativeNow.Year, 7, 1, 00, 00, 00).AddHours(TimeZoneAdjustment); + dtAfter = new DateTime(ClientNow.Year, 6, 1, 00, 00, 00).AddSeconds(-1); + dtBefore = new DateTime(ClientNow.Year, 7, 1, 00, 00, 00); BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); break; case "*july*": - dtAfter = new DateTime(RelativeNow.Year, 7, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); - dtBefore = new DateTime(RelativeNow.Year, 8, 1, 00, 00, 00).AddHours(TimeZoneAdjustment); + dtAfter = new DateTime(ClientNow.Year, 7, 1, 00, 00, 00).AddSeconds(-1); + dtBefore = new DateTime(ClientNow.Year, 8, 1, 00, 00, 00); BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); break; case "*august*": - dtAfter = new DateTime(RelativeNow.Year, 8, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); - dtBefore = new DateTime(RelativeNow.Year, 9, 1, 00, 00, 00).AddHours(TimeZoneAdjustment); + dtAfter = new DateTime(ClientNow.Year, 8, 1, 00, 00, 00).AddSeconds(-1); + dtBefore = new DateTime(ClientNow.Year, 9, 1, 00, 00, 00); BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); break; case "*september*": - dtAfter = new DateTime(RelativeNow.Year, 9, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); - dtBefore = new DateTime(RelativeNow.Year, 10, 1, 00, 00, 00).AddHours(TimeZoneAdjustment); + dtAfter = new DateTime(ClientNow.Year, 9, 1, 00, 00, 00).AddSeconds(-1); + dtBefore = new DateTime(ClientNow.Year, 10, 1, 00, 00, 00); BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); break; case "*october*": - dtAfter = new DateTime(RelativeNow.Year, 10, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); - dtBefore = new DateTime(RelativeNow.Year, 11, 1, 00, 00, 00).AddHours(TimeZoneAdjustment); + dtAfter = new DateTime(ClientNow.Year, 10, 1, 00, 00, 00).AddSeconds(-1); + dtBefore = new DateTime(ClientNow.Year, 11, 1, 00, 00, 00); BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); break; case "*november*": - dtAfter = new DateTime(RelativeNow.Year, 11, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); - dtBefore = new DateTime(RelativeNow.Year, 12, 1, 00, 00, 00).AddHours(TimeZoneAdjustment); + dtAfter = new DateTime(ClientNow.Year, 11, 1, 00, 00, 00).AddSeconds(-1); + dtBefore = new DateTime(ClientNow.Year, 12, 1, 00, 00, 00); BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); break; case "*december*": //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 - 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); break; case "*lastyearlastmonth*": @@ -1721,8 +1671,8 @@ export default { // 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 +// RelativeToday = RelativeToday;//flip the sign to adjust towards UTC +// RelativeNow = RelativeNow;//flip the sign to adjust towards UTC // //TESTING: // //LOG THE CRIT AND QUERY @@ -1905,17 +1855,17 @@ export default { // case DataListFilterSpecialToken.LastYear: // //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 -// 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); // break; // case DataListFilterSpecialToken.ThisYear: // //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 -// 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); // break; @@ -1948,7 +1898,7 @@ export default { // case DataListFilterSpecialToken.YearToDate: // //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 // dtBefore = RelativeNow; // BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); @@ -1978,77 +1928,77 @@ export default { // case DataListFilterSpecialToken.January: // //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 -// 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); // break; // case DataListFilterSpecialToken.February: -// dtAfter = new DateTime(RelativeNow.Year, 2, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); -// dtBefore = new DateTime(RelativeNow.Year, 3, 1, 00, 00, 00).AddHours(TimeZoneAdjustment); +// dtAfter = new DateTime(RelativeNow.Year, 2, 1, 00, 00, 00).AddSeconds(-1); +// dtBefore = new DateTime(RelativeNow.Year, 3, 1, 00, 00, 00); // BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); // break; // case DataListFilterSpecialToken.March: -// dtAfter = new DateTime(RelativeNow.Year, 3, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); -// dtBefore = new DateTime(RelativeNow.Year, 4, 1, 00, 00, 00).AddHours(TimeZoneAdjustment); +// dtAfter = new DateTime(RelativeNow.Year, 3, 1, 00, 00, 00).AddSeconds(-1); +// dtBefore = new DateTime(RelativeNow.Year, 4, 1, 00, 00, 00); // BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); // break; // case DataListFilterSpecialToken.April: -// dtAfter = new DateTime(RelativeNow.Year, 4, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); -// dtBefore = new DateTime(RelativeNow.Year, 5, 1, 00, 00, 00).AddHours(TimeZoneAdjustment); +// dtAfter = new DateTime(RelativeNow.Year, 4, 1, 00, 00, 00).AddSeconds(-1); +// dtBefore = new DateTime(RelativeNow.Year, 5, 1, 00, 00, 00); // BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); // break; // case DataListFilterSpecialToken.May: -// dtAfter = new DateTime(RelativeNow.Year, 5, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); -// dtBefore = new DateTime(RelativeNow.Year, 6, 1, 00, 00, 00).AddHours(TimeZoneAdjustment); +// dtAfter = new DateTime(RelativeNow.Year, 5, 1, 00, 00, 00).AddSeconds(-1); +// dtBefore = new DateTime(RelativeNow.Year, 6, 1, 00, 00, 00); // BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); // break; // case DataListFilterSpecialToken.June: -// dtAfter = new DateTime(RelativeNow.Year, 6, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); -// dtBefore = new DateTime(RelativeNow.Year, 7, 1, 00, 00, 00).AddHours(TimeZoneAdjustment); +// dtAfter = new DateTime(RelativeNow.Year, 6, 1, 00, 00, 00).AddSeconds(-1); +// dtBefore = new DateTime(RelativeNow.Year, 7, 1, 00, 00, 00); // BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); // break; // case DataListFilterSpecialToken.July: -// dtAfter = new DateTime(RelativeNow.Year, 7, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); -// dtBefore = new DateTime(RelativeNow.Year, 8, 1, 00, 00, 00).AddHours(TimeZoneAdjustment); +// dtAfter = new DateTime(RelativeNow.Year, 7, 1, 00, 00, 00).AddSeconds(-1); +// dtBefore = new DateTime(RelativeNow.Year, 8, 1, 00, 00, 00); // BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); // break; // case DataListFilterSpecialToken.August: -// dtAfter = new DateTime(RelativeNow.Year, 8, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); -// dtBefore = new DateTime(RelativeNow.Year, 9, 1, 00, 00, 00).AddHours(TimeZoneAdjustment); +// dtAfter = new DateTime(RelativeNow.Year, 8, 1, 00, 00, 00).AddSeconds(-1); +// dtBefore = new DateTime(RelativeNow.Year, 9, 1, 00, 00, 00); // BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); // break; // case DataListFilterSpecialToken.September: -// dtAfter = new DateTime(RelativeNow.Year, 9, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); -// dtBefore = new DateTime(RelativeNow.Year, 10, 1, 00, 00, 00).AddHours(TimeZoneAdjustment); +// dtAfter = new DateTime(RelativeNow.Year, 9, 1, 00, 00, 00).AddSeconds(-1); +// dtBefore = new DateTime(RelativeNow.Year, 10, 1, 00, 00, 00); // BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); // break; // case DataListFilterSpecialToken.October: -// dtAfter = new DateTime(RelativeNow.Year, 10, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); -// dtBefore = new DateTime(RelativeNow.Year, 11, 1, 00, 00, 00).AddHours(TimeZoneAdjustment); +// dtAfter = new DateTime(RelativeNow.Year, 10, 1, 00, 00, 00).AddSeconds(-1); +// dtBefore = new DateTime(RelativeNow.Year, 11, 1, 00, 00, 00); // BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); // break; // case DataListFilterSpecialToken.November: -// dtAfter = new DateTime(RelativeNow.Year, 11, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); -// dtBefore = new DateTime(RelativeNow.Year, 12, 1, 00, 00, 00).AddHours(TimeZoneAdjustment); +// dtAfter = new DateTime(RelativeNow.Year, 11, 1, 00, 00, 00).AddSeconds(-1); +// dtBefore = new DateTime(RelativeNow.Year, 12, 1, 00, 00, 00); // BuildBetweenTwoDatesFragment(SqlColumnNameToFilter, sb, dtAfter, dtBefore); // break; // case DataListFilterSpecialToken.December: // //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 -// 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); // break;