This commit is contained in:
@@ -282,9 +282,11 @@ namespace AyaNova.Biz
|
||||
//So this is the core date time to work off of
|
||||
DateTime RelativeToday = DateTime.Today;
|
||||
DateTime RelativeNow = DateTime.Now;
|
||||
// ILogger log = AyaNova.Util.ApplicationLogging.CreateLogger("FilterSqlCriteriaBuilder::DataFilterToColumnCriteria");
|
||||
// log.LogInformation("RelativeToday (before adjustment):");
|
||||
// log.LogInformation(RelativeToday.ToString());
|
||||
ILogger log = AyaNova.Util.ApplicationLogging.CreateLogger("FilterSqlCriteriaBuilder::DataFilterToColumnCriteria");
|
||||
log.LogInformation("RelativeToday (before adjustment):");
|
||||
log.LogInformation(RelativeToday.ToString());
|
||||
log.LogInformation("RelativeNow (before adjustment):");
|
||||
log.LogInformation(RelativeNow.ToString());
|
||||
|
||||
|
||||
if (sValue.StartsWith("{[") && sValue.EndsWith("]}"))
|
||||
@@ -295,19 +297,21 @@ namespace AyaNova.Biz
|
||||
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;
|
||||
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("Offset used:");
|
||||
// log.LogInformation(u.tz.ToString());
|
||||
//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
|
||||
//Used as the basis point
|
||||
@@ -450,7 +454,7 @@ namespace AyaNova.Biz
|
||||
//case 1155
|
||||
dtAfter = dtAfter.AddSeconds(-1);
|
||||
//TODO: REMOVE THIS TESTING
|
||||
// log.LogInformation($"NEXT MONTH TOKEN BUILDER IMMEDIATELY BEFORE BUILDING FRAGMENT: BEFORE={dtBefore.ToString()} AND AFTER={dtAfter.ToString()}");
|
||||
// log.LogInformation($"NEXT MONTH TOKEN BUILDER IMMEDIATELY BEFORE BUILDING FRAGMENT: BEFORE={dtBefore.ToString()} AND AFTER={dtAfter.ToString()}");
|
||||
BuildBetweenTwoDatesFragment(sColumn, sb, dtAfter, dtBefore);
|
||||
break;
|
||||
case FilterSpecialToken.FourteenDayWindow:
|
||||
@@ -473,14 +477,14 @@ namespace AyaNova.Biz
|
||||
case FilterSpecialToken.Past:
|
||||
//Forever up to Now
|
||||
dtAfter = new DateTime(1753, 1, 2, 00, 00, 00);
|
||||
dtBefore = RelativeNow;
|
||||
dtBefore = DateTime.UtcNow;
|
||||
BuildBetweenTwoDatesFragment(sColumn, sb, dtAfter, dtBefore);
|
||||
break;
|
||||
|
||||
case FilterSpecialToken.Future:
|
||||
//From Now to forever (999 years from now)
|
||||
dtAfter = RelativeNow;
|
||||
dtBefore = RelativeNow.AddYears(999);
|
||||
dtAfter = DateTime.UtcNow;
|
||||
dtBefore = DateTime.UtcNow.AddYears(999);
|
||||
BuildBetweenTwoDatesFragment(sColumn, sb, dtAfter, dtBefore);
|
||||
break;
|
||||
|
||||
@@ -490,7 +494,7 @@ namespace AyaNova.Biz
|
||||
//To zero hour January 1 this year
|
||||
dtBefore = new DateTime(RelativeNow.Year, 1, 1, 0, 0, 00).AddHours(TimeZoneAdjustment);
|
||||
BuildBetweenTwoDatesFragment(sColumn, sb, dtAfter, dtBefore);
|
||||
break;
|
||||
break;
|
||||
|
||||
case FilterSpecialToken.ThisYear:
|
||||
//From zero hour january 1 this year
|
||||
@@ -502,9 +506,9 @@ namespace AyaNova.Biz
|
||||
|
||||
case FilterSpecialToken.InTheLast3Months:
|
||||
//From Now minus 3 months
|
||||
dtAfter = RelativeNow.AddMonths(-3);//relative now is already adjusted for time zone so no need to adjust it again
|
||||
dtAfter = DateTime.UtcNow.AddMonths(-3);
|
||||
//To Now
|
||||
dtBefore = RelativeNow;
|
||||
dtBefore = DateTime.UtcNow;
|
||||
BuildBetweenTwoDatesFragment(sColumn, sb, dtAfter, dtBefore);
|
||||
break;
|
||||
|
||||
@@ -537,7 +541,7 @@ namespace AyaNova.Biz
|
||||
case 3:
|
||||
//Then we need the dates of the last quarter of last year
|
||||
//From zero hour October 1st last year
|
||||
dtAfter = new DateTime(RelativeNow.AddYears(-1).Year, 10, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment);;
|
||||
dtAfter = new DateTime(RelativeNow.AddYears(-1).Year, 10, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); ;
|
||||
//To zero hour January 1 this year
|
||||
dtBefore = new DateTime(RelativeNow.Year, 1, 1, 00, 00, 00).AddHours(TimeZoneAdjustment);
|
||||
break;
|
||||
@@ -547,7 +551,7 @@ namespace AyaNova.Biz
|
||||
case 6:
|
||||
//Then we need this year first quarter JAN-FEB-MAR
|
||||
//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).AddHours(TimeZoneAdjustment); ;
|
||||
//To zero hour April 1 this year
|
||||
dtBefore = new DateTime(RelativeNow.Year, 4, 1, 00, 00, 00).AddHours(TimeZoneAdjustment);
|
||||
break;
|
||||
@@ -557,7 +561,7 @@ namespace AyaNova.Biz
|
||||
case 9:
|
||||
//Then we need this year Second quarter APR-MAY-JUN
|
||||
//From zero hour April 1 this year
|
||||
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).AddHours(TimeZoneAdjustment); ;
|
||||
//To zero hour July 1 this year
|
||||
dtBefore = new DateTime(RelativeNow.Year, 7, 1, 00, 00, 00).AddHours(TimeZoneAdjustment);
|
||||
break;
|
||||
@@ -565,7 +569,7 @@ namespace AyaNova.Biz
|
||||
//We're in the fourth quarter
|
||||
//Then we need this year Third quarter JUL-AUG-SEP
|
||||
//From zero hour July 1 this year
|
||||
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).AddHours(TimeZoneAdjustment); ;
|
||||
//To zero hour Oct 1 this year
|
||||
dtBefore = new DateTime(RelativeNow.Year, 10, 1, 00, 00, 00).AddHours(TimeZoneAdjustment);
|
||||
break;
|
||||
@@ -575,7 +579,7 @@ namespace AyaNova.Biz
|
||||
break;
|
||||
case FilterSpecialToken.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).AddHours(TimeZoneAdjustment); ;
|
||||
//To now
|
||||
dtBefore = RelativeNow;
|
||||
BuildBetweenTwoDatesFragment(sColumn, sb, dtAfter, dtBefore);
|
||||
@@ -588,7 +592,7 @@ namespace AyaNova.Biz
|
||||
case 2:
|
||||
case 3:
|
||||
//Jan 1st to now
|
||||
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).AddHours(TimeZoneAdjustment); ;
|
||||
dtBefore = RelativeNow;
|
||||
break;
|
||||
//Second Quarter to date
|
||||
@@ -596,7 +600,7 @@ namespace AyaNova.Biz
|
||||
case 5:
|
||||
case 6:
|
||||
//April 1st to now
|
||||
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).AddHours(TimeZoneAdjustment); ;
|
||||
dtBefore = RelativeNow;
|
||||
break;
|
||||
//Third quarter to date
|
||||
@@ -604,13 +608,13 @@ namespace AyaNova.Biz
|
||||
case 8:
|
||||
case 9:
|
||||
//From July 1
|
||||
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).AddHours(TimeZoneAdjustment); ;
|
||||
dtBefore = RelativeNow;
|
||||
break;
|
||||
default:
|
||||
//Fourth quarter to date
|
||||
//From Oct 1 this year
|
||||
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).AddHours(TimeZoneAdjustment); ;
|
||||
dtBefore = RelativeNow;
|
||||
break;
|
||||
}
|
||||
@@ -638,42 +642,42 @@ namespace AyaNova.Biz
|
||||
BuildBetweenTwoDatesFragment(sColumn, sb, dtAfter, dtBefore);
|
||||
break;
|
||||
case FilterSpecialToken.Q1ThisYear:
|
||||
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).AddHours(TimeZoneAdjustment); ;
|
||||
dtBefore = new DateTime(RelativeNow.Year, 4, 1, 00, 00, 00).AddHours(TimeZoneAdjustment);
|
||||
BuildBetweenTwoDatesFragment(sColumn, sb, dtAfter, dtBefore);
|
||||
break;
|
||||
case FilterSpecialToken.Q2ThisYear:
|
||||
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).AddHours(TimeZoneAdjustment); ;
|
||||
dtBefore = new DateTime(RelativeNow.Year, 7, 1, 00, 00, 00).AddHours(TimeZoneAdjustment);
|
||||
BuildBetweenTwoDatesFragment(sColumn, sb, dtAfter, dtBefore);
|
||||
break;
|
||||
case FilterSpecialToken.Q3ThisYear:
|
||||
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).AddHours(TimeZoneAdjustment); ;
|
||||
dtBefore = new DateTime(RelativeNow.Year, 10, 1, 00, 00, 00).AddHours(TimeZoneAdjustment);
|
||||
BuildBetweenTwoDatesFragment(sColumn, sb, dtAfter, dtBefore);
|
||||
break;
|
||||
case FilterSpecialToken.Q4ThisYear:
|
||||
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).AddHours(TimeZoneAdjustment); ;
|
||||
dtBefore = new DateTime(RelativeNow.AddYears(1).Year, 1, 1, 00, 00, 00).AddHours(TimeZoneAdjustment);
|
||||
BuildBetweenTwoDatesFragment(sColumn, sb, dtAfter, dtBefore);
|
||||
break;
|
||||
case FilterSpecialToken.Q1LastYear:
|
||||
dtAfter = new DateTime(RelativeNow.AddYears(-1).Year, 1, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment);;
|
||||
dtAfter = new DateTime(RelativeNow.AddYears(-1).Year, 1, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); ;
|
||||
dtBefore = new DateTime(RelativeNow.AddYears(-1).Year, 4, 1, 00, 00, 00).AddHours(TimeZoneAdjustment);
|
||||
BuildBetweenTwoDatesFragment(sColumn, sb, dtAfter, dtBefore);
|
||||
break;
|
||||
case FilterSpecialToken.Q2LastYear:
|
||||
dtAfter = new DateTime(RelativeNow.AddYears(-1).Year, 4, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment);;
|
||||
dtAfter = new DateTime(RelativeNow.AddYears(-1).Year, 4, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); ;
|
||||
dtBefore = new DateTime(RelativeNow.AddYears(-1).Year, 7, 1, 00, 00, 00).AddHours(TimeZoneAdjustment);
|
||||
BuildBetweenTwoDatesFragment(sColumn, sb, dtAfter, dtBefore);
|
||||
break;
|
||||
case FilterSpecialToken.Q3LastYear:
|
||||
dtAfter = new DateTime(RelativeNow.AddYears(-1).Year, 7, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment);;
|
||||
dtAfter = new DateTime(RelativeNow.AddYears(-1).Year, 7, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); ;
|
||||
dtBefore = new DateTime(RelativeNow.AddYears(-1).Year, 10, 1, 00, 00, 00).AddHours(TimeZoneAdjustment);
|
||||
BuildBetweenTwoDatesFragment(sColumn, sb, dtAfter, dtBefore);
|
||||
break;
|
||||
case FilterSpecialToken.Q4LastYear:
|
||||
dtAfter = new DateTime(RelativeNow.AddYears(-1).Year, 10, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment);;
|
||||
dtAfter = new DateTime(RelativeNow.AddYears(-1).Year, 10, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); ;
|
||||
dtBefore = new DateTime(RelativeNow.Year, 1, 1, 00, 00, 00).AddHours(TimeZoneAdjustment);
|
||||
BuildBetweenTwoDatesFragment(sColumn, sb, dtAfter, dtBefore);
|
||||
break;
|
||||
@@ -842,18 +846,18 @@ namespace AyaNova.Biz
|
||||
|
||||
}
|
||||
|
||||
//This is only used by the token date query code above and that code doesn't convert to UTC time to match the DB so this function will handle that
|
||||
//This is only used by the token date query code above and that code does convert to UTC time to match the DB so this function will not need to handle that
|
||||
//The other non tokenized date criteria builders are all working with dates that come from the client in UTC already and they don't use this method
|
||||
//so nothing required there
|
||||
private static void BuildBetweenTwoDatesFragment(string sColumn, StringBuilder sb, DateTime dtAfter, DateTime dtBefore)
|
||||
{
|
||||
sb.Append(">'");
|
||||
sb.Append(PostgresDateFormat(dtAfter.ToUniversalTime()));
|
||||
sb.Append(PostgresDateFormat(dtAfter));
|
||||
sb.Append("' AND ");
|
||||
sb.Append(sColumn);
|
||||
sb.Append(" ");
|
||||
sb.Append("<'");
|
||||
sb.Append(PostgresDateFormat(dtBefore.ToUniversalTime()));
|
||||
sb.Append(PostgresDateFormat(dtBefore));
|
||||
sb.Append("'");
|
||||
}
|
||||
|
||||
|
||||
@@ -188,14 +188,14 @@ namespace AyaNova.Biz
|
||||
//BUILD WHERE AND APPEND IT
|
||||
q = q + FilterSqlCriteriaBuilder.DataFilterToSQLCriteria(TheFilter, WidgetBiz.FilterOptions(), UserId);
|
||||
|
||||
// //TESTING:
|
||||
// //TODO: remove this from production build
|
||||
// //LOG THE CRIT AND QUERY
|
||||
// ILogger log = AyaNova.Util.ApplicationLogging.CreateLogger("WidgetBiz::GetManyAsync");
|
||||
// log.LogInformation("Filter criteria:");
|
||||
// log.LogInformation(TheFilter.Filter);
|
||||
// log.LogInformation("Generated SQL:");
|
||||
// log.LogInformation(q);
|
||||
//TESTING:
|
||||
//TODO: remove this from production build
|
||||
//LOG THE CRIT AND QUERY
|
||||
ILogger log = AyaNova.Util.ApplicationLogging.CreateLogger("WidgetBiz::GetManyAsync");
|
||||
log.LogInformation("Filter criteria:");
|
||||
log.LogInformation(TheFilter.Filter);
|
||||
log.LogInformation("Generated SQL:");
|
||||
log.LogInformation(q);
|
||||
}
|
||||
|
||||
//BUILD ORDER BY AND APPEND IT
|
||||
|
||||
@@ -1647,9 +1647,9 @@ namespace raven_integration
|
||||
|
||||
//Excluded widget
|
||||
w.name = Util.Uniquify(WidgetNameStart);
|
||||
//8 days ago will be outside the 14 day window
|
||||
w.startDate = DateTime.Now.AddDays(-8).ToUniversalTime();
|
||||
w.endDate = DateTime.Now.AddDays(-8).AddHours(1).ToUniversalTime();
|
||||
//9 days ago will be outside the 14 day window
|
||||
w.startDate = DateTime.Now.AddDays(-9).ToUniversalTime();
|
||||
w.endDate = DateTime.Now.AddDays(-9).AddHours(1).ToUniversalTime();
|
||||
|
||||
|
||||
a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
|
||||
@@ -2154,8 +2154,8 @@ namespace raven_integration
|
||||
dynamic w = new JObject();
|
||||
w.name = Util.Uniquify(WidgetNameStart);
|
||||
//####
|
||||
w.startDate = DateTime.Now.AddMonths(-3).AddMinutes(5).ToUniversalTime();
|
||||
w.endDate = DateTime.Now.AddMonths(-3).AddMinutes(5).AddHours(1).ToUniversalTime();
|
||||
w.startDate = DateTime.UtcNow.AddMonths(-3).AddMinutes(5);
|
||||
w.endDate = DateTime.UtcNow.AddMonths(-3).AddMinutes(5).AddHours(1);
|
||||
|
||||
ApiResponse a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
|
||||
Util.ValidateDataReturnResponseOk(a);
|
||||
@@ -2164,8 +2164,8 @@ namespace raven_integration
|
||||
//Excluded widget
|
||||
w.name = Util.Uniquify(WidgetNameStart);
|
||||
//####
|
||||
w.startDate = DateTime.Now.AddMonths(-3).AddMinutes(-5).ToUniversalTime();
|
||||
w.endDate = DateTime.Now.AddMonths(-3).AddMinutes(-5).AddHours(1).ToUniversalTime();
|
||||
w.startDate = DateTime.UtcNow.AddMonths(-3).AddMinutes(-5);
|
||||
w.endDate = DateTime.UtcNow.AddMonths(-3).AddMinutes(-5).AddHours(1);
|
||||
|
||||
a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
|
||||
Util.ValidateDataReturnResponseOk(a);
|
||||
|
||||
Reference in New Issue
Block a user