This commit is contained in:
2020-06-05 18:07:52 +00:00
parent 53b4603f48
commit 611c19521a
2 changed files with 15 additions and 12 deletions

2
.vscode/launch.json vendored
View File

@@ -49,7 +49,7 @@
"AYANOVA_USE_URLS": "http://*:7575;",
"AYANOVA_FOLDER_USER_FILES": "c:\\temp\\RavenTestData\\userfiles",
"AYANOVA_FOLDER_BACKUP_FILES": "c:\\temp\\RavenTestData\\backupfiles",
"AYANOVA_SERVER_TEST_MODE":"true",
"AYANOVA_SERVER_TEST_MODE":"false",
"AYANOVA_SERVER_TEST_MODE_SEEDLEVEL":"small",
"AYANOVA_SERVER_TEST_MODE_TZ_OFFSET":"-7",
"AYANOVA_BACKUP_PG_DUMP_PATH":"C:\\data\\code\\PostgreSQLPortable_12.0\\App\\PgSQL\\bin\\"

View File

@@ -4,7 +4,6 @@ using System.Globalization;
using System.Text;
using Newtonsoft.Json.Linq;
using System.Linq;
using Microsoft.EntityFrameworkCore;
using AyaNova.Biz;
namespace AyaNova.DataList
@@ -406,52 +405,56 @@ code from picklist in case I decide to do it later
//https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-date-and-time-format-strings#Roundtrip
System.DateTime dtData = DateTime.Parse(sValue);
string sHighEnd = PostgresDateFormat(MaxMilliseconds(dtData));
string sLowEnd = PostgresDateFormat(ZeroMilliseconds(dtData));
//THis is because we don't want milliseconds to alter the value in any way, AyaNova resolution for time is seconds not milliseconds to allow for some sloppiness
//so no date is exact and we work around that with ranges that rule out milliseconds affecting query
//also this needs to work in conjunction with client filters for date ranges that provide a value one second before the range in question as START timestamp
//and exactly the end of range in question as END timestamp
string sDateValueWithMaxMilliseconds = PostgresDateFormat(MaxMilliseconds(dtData));
string sDateValueWithZeroMilliseconds = PostgresDateFormat(ZeroMilliseconds(dtData));
switch (sOperator)
{
case DataListFilterComparisonOperator.Equality:
sb.Append(">='");
sb.Append(sLowEnd);
sb.Append(sDateValueWithZeroMilliseconds);
sb.Append("' AND ");
sb.Append(SqlColumnNameToFilter);
sb.Append(" ");
sb.Append("<='");
sb.Append(sHighEnd);
sb.Append(sDateValueWithMaxMilliseconds);
sb.Append("'");
break;
case DataListFilterComparisonOperator.GreaterThan:
sb.Append(">'");
sb.Append(sLowEnd);
sb.Append(sDateValueWithMaxMilliseconds);
sb.Append("'");
break;
case DataListFilterComparisonOperator.GreaterThanOrEqualTo:
sb.Append(">='");
sb.Append(sLowEnd);
sb.Append(sDateValueWithZeroMilliseconds);
sb.Append("'");
break;
case DataListFilterComparisonOperator.LessThan:
sb.Append("<'");
sb.Append(sHighEnd);
sb.Append(sDateValueWithZeroMilliseconds);
sb.Append("'");
break;
case DataListFilterComparisonOperator.LessThanOrEqualTo:
sb.Append("<='");
sb.Append(sHighEnd);
sb.Append(sDateValueWithMaxMilliseconds);
sb.Append("'");
break;
case DataListFilterComparisonOperator.NotEqual:
sb.Append("<'");
sb.Append(sLowEnd);
sb.Append(sDateValueWithZeroMilliseconds);
sb.Append("' OR ");
sb.Append(SqlColumnNameToFilter);
sb.Append(" ");
sb.Append(">'");
sb.Append(sHighEnd);
sb.Append(sDateValueWithMaxMilliseconds);
sb.Append("'");
break;