|
@@ -5,7 +5,7 @@ using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Text;
|
|
using System.Text.Json;
|
|
using System.Text.Json;
|
|
-using System.Threading.Tasks;
|
|
|
|
|
|
+using TEAMModelOS.SDK.Context.Exception;
|
|
|
|
|
|
namespace TEAMModelOS.SDK.Module.AzureCosmosDBV3
|
|
namespace TEAMModelOS.SDK.Module.AzureCosmosDBV3
|
|
{
|
|
{
|
|
@@ -59,10 +59,7 @@ namespace TEAMModelOS.SDK.Module.AzureCosmosDBV3
|
|
{
|
|
{
|
|
stack.Push(new KeyValuePair<string, object>(item, dict[item]));
|
|
stack.Push(new KeyValuePair<string, object>(item, dict[item]));
|
|
}
|
|
}
|
|
-
|
|
|
|
}
|
|
}
|
|
-
|
|
|
|
-
|
|
|
|
string Join = " join ";
|
|
string Join = " join ";
|
|
string instring = " in ";
|
|
string instring = " in ";
|
|
Dictionary<string, string> keyValues = new Dictionary<string, string>();
|
|
Dictionary<string, string> keyValues = new Dictionary<string, string>();
|
|
@@ -73,11 +70,7 @@ namespace TEAMModelOS.SDK.Module.AzureCosmosDBV3
|
|
int logicOperNum = 0;
|
|
int logicOperNum = 0;
|
|
bool keyListValueList = true;
|
|
bool keyListValueList = true;
|
|
int keyListValueListNum = 0;
|
|
int keyListValueListNum = 0;
|
|
- //string distinctHead = "select distinct value(c) from c ";
|
|
|
|
-
|
|
|
|
-
|
|
|
|
int stackCount = stack.Count;
|
|
int stackCount = stack.Count;
|
|
- //foreach (KeyValuePair<string, object> item in newDict)
|
|
|
|
for (int k = 0; k < stackCount; k++)
|
|
for (int k = 0; k < stackCount; k++)
|
|
{
|
|
{
|
|
KeyValuePair<string, object> item = stack.Pop();
|
|
KeyValuePair<string, object> item = stack.Pop();
|
|
@@ -86,8 +79,6 @@ namespace TEAMModelOS.SDK.Module.AzureCosmosDBV3
|
|
{
|
|
{
|
|
isLikeSQL = true;
|
|
isLikeSQL = true;
|
|
}
|
|
}
|
|
-
|
|
|
|
-
|
|
|
|
string key = item.Key;
|
|
string key = item.Key;
|
|
string[] keyHead = key.Split(".");
|
|
string[] keyHead = key.Split(".");
|
|
int index = 0;
|
|
int index = 0;
|
|
@@ -146,35 +137,9 @@ namespace TEAMModelOS.SDK.Module.AzureCosmosDBV3
|
|
string s = "";
|
|
string s = "";
|
|
if (isLikeSQL)
|
|
if (isLikeSQL)
|
|
{
|
|
{
|
|
- if (item.Value is JArray array)
|
|
|
|
- {
|
|
|
|
- s = ValueIsLike(sqlHead[heada] + (keyBody.Length - 2) + keyBody[index] + "", key, array, LogicOpers[logicOper], logicOperNum, compareOper, ref keyListValueList);
|
|
|
|
- }
|
|
|
|
- else if (item.Value is IEnumerable enumerable && !(item.Value is String))
|
|
|
|
- {
|
|
|
|
- s = ValueIsLike(sqlHead[heada] + (keyBody.Length - 2) + keyBody[index] + "", key, enumerable, LogicOpers[logicOper], logicOperNum, compareOper, ref keyListValueList);
|
|
|
|
- }
|
|
|
|
- else if (item.Value is JsonElement jsonElement1)
|
|
|
|
- {
|
|
|
|
- if (jsonElement1.ValueKind is JsonValueKind.Object)
|
|
|
|
- {
|
|
|
|
-
|
|
|
|
- string compareOperBool = " true ";
|
|
|
|
- compareOperBool = CompareBoolSwitch(compareOper);
|
|
|
|
- string logicOperString = " and ";
|
|
|
|
- if (logicOperNum != 0) logicOperString = LogicOpers[logicOper];
|
|
|
|
- s = logicOperString + "Contains(" + sqlHead[heada] + (keyBody.Length - 2) + keyBody[index] + " , @" + key + " ) = " + compareOperBool + " ";
|
|
|
|
- }
|
|
|
|
- else
|
|
|
|
- {
|
|
|
|
- s = ValueIsLike(sqlHead[heada] + (keyBody.Length - 2) + keyBody[index] + "", key, jsonElement1, LogicOpers[logicOper], logicOperNum, compareOper, ref keyListValueList);
|
|
|
|
- }
|
|
|
|
|
|
|
|
- }
|
|
|
|
- else
|
|
|
|
- {
|
|
|
|
- s = ValueIsLike(sqlHead[heada] + (keyBody.Length - 2) + keyBody[index] + "", key, item.Value, LogicOpers[logicOper], logicOperNum, compareOper, ref keyListValueList);
|
|
|
|
- }
|
|
|
|
|
|
+ s = ValueIsLike(sqlHead[heada] + (keyBody.Length - 2) + keyBody[index] + "", key, item.Value, LogicOpers[logicOper], logicOperNum, compareOper, ref keyListValueList);
|
|
|
|
+
|
|
}
|
|
}
|
|
else
|
|
else
|
|
{
|
|
{
|
|
@@ -182,55 +147,42 @@ namespace TEAMModelOS.SDK.Module.AzureCosmosDBV3
|
|
}
|
|
}
|
|
WhereString.Append(s);
|
|
WhereString.Append(s);
|
|
|
|
|
|
- //if (keyListValueList && keyListValueListNum == 0)
|
|
|
|
- //{
|
|
|
|
- // sql = sql.Replace("select ", "select distinct ");
|
|
|
|
- // keyListValueList = false;
|
|
|
|
- // keyListValueListNum++;
|
|
|
|
- //}
|
|
|
|
|
|
+ if (keyListValueList && keyListValueListNum == 0)
|
|
|
|
+ {
|
|
|
|
+ sql = sql.Replace("select ", "select distinct ");
|
|
|
|
+ keyListValueList = false;
|
|
|
|
+ keyListValueListNum++;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
else
|
|
else
|
|
{
|
|
{
|
|
- //throw new BizException("数组总共深度不能超过5层", ResponseCode.PARAMS_ERROR);
|
|
|
|
|
|
+ throw new BizException("数组总共深度不能超过5层", ResponseCode.PARAMS_ERROR);
|
|
}
|
|
}
|
|
heada += 1;
|
|
heada += 1;
|
|
|
|
|
|
}
|
|
}
|
|
else
|
|
else
|
|
{
|
|
{
|
|
-
|
|
|
|
- string itemKey = item.Key.Replace(".", "");
|
|
|
|
|
|
+ string itemKey = key.Replace(".", "");
|
|
WhereString.Append(KeyNotElement(dict[item.Key], item.Key, itemKey, LogicOpers[logicOper], logicOperNum, compareOper));
|
|
WhereString.Append(KeyNotElement(dict[item.Key], item.Key, itemKey, LogicOpers[logicOper], logicOperNum, compareOper));
|
|
-
|
|
|
|
}
|
|
}
|
|
- // heada += 1;
|
|
|
|
logicOperNum += 1;
|
|
logicOperNum += 1;
|
|
}
|
|
}
|
|
- if (keyListValueList)
|
|
|
|
- {
|
|
|
|
- sql = sql.Replace("select ", "select distinct ");
|
|
|
|
- keyListValueList = false;
|
|
|
|
- }
|
|
|
|
|
|
+
|
|
sql.Append(" where 1=1 ").Append(WhereString);
|
|
sql.Append(" where 1=1 ").Append(WhereString);
|
|
if (pageBool)
|
|
if (pageBool)
|
|
{
|
|
{
|
|
sql.Append(" OFFSET " + offsetNum + " LIMIT " + limitNum);
|
|
sql.Append(" OFFSET " + offsetNum + " LIMIT " + limitNum);
|
|
}
|
|
}
|
|
-
|
|
|
|
ReplaceKeyWords(ref sql);
|
|
ReplaceKeyWords(ref sql);
|
|
- //sql = sql.Replace("[*].", "");
|
|
|
|
-
|
|
|
|
parmeters = GetParmeter(dict, parmeters);
|
|
parmeters = GetParmeter(dict, parmeters);
|
|
-
|
|
|
|
CosmosDbQuery cosmosDbQuery = new CosmosDbQuery
|
|
CosmosDbQuery cosmosDbQuery = new CosmosDbQuery
|
|
{
|
|
{
|
|
QueryText = sql.ToString(),
|
|
QueryText = sql.ToString(),
|
|
Parameters = parmeters
|
|
Parameters = parmeters
|
|
};
|
|
};
|
|
-
|
|
|
|
return cosmosDbQuery;
|
|
return cosmosDbQuery;
|
|
}
|
|
}
|
|
-
|
|
|
|
return null;
|
|
return null;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -304,30 +256,7 @@ namespace TEAMModelOS.SDK.Module.AzureCosmosDBV3
|
|
foreach (JValue obja in array)
|
|
foreach (JValue obja in array)
|
|
{
|
|
{
|
|
sql.Append(" @" + key1 + aa + " ,");
|
|
sql.Append(" @" + key1 + aa + " ,");
|
|
- //if (obja.Value is string a)
|
|
|
|
- //{
|
|
|
|
- // sql.Append("\'" + a + "\',");
|
|
|
|
- //}
|
|
|
|
- //if (obja.Value is int b)
|
|
|
|
- //{
|
|
|
|
- // sql.Append(b + ",");
|
|
|
|
- //}
|
|
|
|
- //if (obja.Value is double c)
|
|
|
|
- //{
|
|
|
|
- // sql.Append(c + ",");
|
|
|
|
- //}
|
|
|
|
- //if (obja.Value is bool d)
|
|
|
|
- //{
|
|
|
|
- // sql.Append(d + ",");
|
|
|
|
- //}
|
|
|
|
- //if (obja.Value is long e)
|
|
|
|
- //{
|
|
|
|
- // sql.Append(e + ",");
|
|
|
|
- //}
|
|
|
|
- //if (obja.Value is DateTime f)
|
|
|
|
- //{
|
|
|
|
- // sql.Append(f + ",");
|
|
|
|
- //}
|
|
|
|
|
|
+
|
|
aa++;
|
|
aa++;
|
|
}
|
|
}
|
|
string sqls = sql.ToString().Substring(0, sql.Length - 1);
|
|
string sqls = sql.ToString().Substring(0, sql.Length - 1);
|
|
@@ -340,32 +269,6 @@ namespace TEAMModelOS.SDK.Module.AzureCosmosDBV3
|
|
foreach (object obja in enumerable)
|
|
foreach (object obja in enumerable)
|
|
{
|
|
{
|
|
sql.Append(" @" + key1 + aa + " ,");
|
|
sql.Append(" @" + key1 + aa + " ,");
|
|
- //if (obja is string a)
|
|
|
|
- //{
|
|
|
|
- // sql.Append("\'" + a + "\',");
|
|
|
|
- //}
|
|
|
|
- //if (obja is int b)
|
|
|
|
- //{
|
|
|
|
- // sql.Append(" " + b + " ,");
|
|
|
|
-
|
|
|
|
- //}
|
|
|
|
- //if (obja is double c)
|
|
|
|
- //{
|
|
|
|
- // sql.Append(" " + c + " ,");
|
|
|
|
- //}
|
|
|
|
- //if (obja is bool d)
|
|
|
|
- //{
|
|
|
|
- // sql.Append(" " + d + " ,");
|
|
|
|
-
|
|
|
|
- //}
|
|
|
|
- //if (obja is long e)
|
|
|
|
- //{
|
|
|
|
- // sql.Append(" " + e + " ,");
|
|
|
|
- //}
|
|
|
|
- //if (obja is DateTime f)
|
|
|
|
- //{
|
|
|
|
- // sql.Append(" " + f + " ,");
|
|
|
|
- //}
|
|
|
|
aa++;
|
|
aa++;
|
|
}
|
|
}
|
|
string sqls = sql.ToString().Substring(0, sql.Length - 1);
|
|
string sqls = sql.ToString().Substring(0, sql.Length - 1);
|
|
@@ -380,47 +283,13 @@ namespace TEAMModelOS.SDK.Module.AzureCosmosDBV3
|
|
foreach (JsonElement obja in jsonElement.EnumerateArray().ToArray())
|
|
foreach (JsonElement obja in jsonElement.EnumerateArray().ToArray())
|
|
{
|
|
{
|
|
sql.Append(" @" + key1 + aa + " ,");
|
|
sql.Append(" @" + key1 + aa + " ,");
|
|
-
|
|
|
|
- //if (obja.ValueKind is JsonValueKind.String)
|
|
|
|
- //{
|
|
|
|
- // sql.Append("\'" + obja.ToString() + "\',");
|
|
|
|
- //}
|
|
|
|
- //if (obja.ValueKind is JsonValueKind.Number)
|
|
|
|
- //{
|
|
|
|
- // sql.Append(" " + int.Parse(obja.ToString()) + " ,");
|
|
|
|
- //}
|
|
|
|
- //if (obja.ValueKind is JsonValueKind.True)
|
|
|
|
- //{
|
|
|
|
- // sql.Append(" " + bool.Parse(obja.ToString()) + " ,");
|
|
|
|
- //}
|
|
|
|
- //if (obja.ValueKind is JsonValueKind.False)
|
|
|
|
- //{
|
|
|
|
- // sql.Append(" " + bool.Parse(obja.ToString()) + " ,");
|
|
|
|
- //}
|
|
|
|
aa++;
|
|
aa++;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
else
|
|
{
|
|
{
|
|
|
|
+ if (compareOperNum == 4) keyListValueList = false;
|
|
return logicOper + key + compareOper + " @" + key1 + " ";
|
|
return logicOper + key + compareOper + " @" + key1 + " ";
|
|
-
|
|
|
|
- //if (jsonElement.ValueKind is JsonValueKind.String)
|
|
|
|
- //{
|
|
|
|
- // return logicOper + key + compareOper + "\'" + value.ToString() + "\'";
|
|
|
|
- //}
|
|
|
|
- //if (jsonElement.ValueKind is JsonValueKind.Number)
|
|
|
|
- //{
|
|
|
|
- // return logicOper + key + compareOper + double.Parse(value.ToString());
|
|
|
|
- //}
|
|
|
|
- //if (jsonElement.ValueKind is JsonValueKind.True)
|
|
|
|
- //{
|
|
|
|
- // return logicOper + key + compareOper + bool.Parse(value.ToString());
|
|
|
|
- //}
|
|
|
|
- //if (jsonElement.ValueKind is JsonValueKind.False)
|
|
|
|
- //{
|
|
|
|
- // return logicOper + key + compareOper + bool.Parse(value.ToString());
|
|
|
|
- //}
|
|
|
|
-
|
|
|
|
}
|
|
}
|
|
|
|
|
|
string sqls = sql.ToString().Substring(0, sql.Length - 1);
|
|
string sqls = sql.ToString().Substring(0, sql.Length - 1);
|
|
@@ -433,18 +302,7 @@ namespace TEAMModelOS.SDK.Module.AzureCosmosDBV3
|
|
TypeCode typeCode = Type.GetTypeCode(s);
|
|
TypeCode typeCode = Type.GetTypeCode(s);
|
|
if (compareOperNum == 4) keyListValueList = false;
|
|
if (compareOperNum == 4) keyListValueList = false;
|
|
return logicOper + key + compareOper + " @" + key1 + " ";
|
|
return logicOper + key + compareOper + " @" + key1 + " ";
|
|
- //return typeCode switch
|
|
|
|
- //{
|
|
|
|
- // TypeCode.String => logicOper + key + compareOper + "\'" + value.ToString() + "\'",
|
|
|
|
- // TypeCode.Char => logicOper + key + compareOper + "\'" + value.ToString() + "\'",
|
|
|
|
- // TypeCode.Int32 => logicOper + key + compareOper + int.Parse(value.ToString()),
|
|
|
|
- // TypeCode.Double => logicOper + key + compareOper + double.Parse(value.ToString()),
|
|
|
|
- // //case TypeCode.Byte: return "and c." + key + "=" + (Byte)obj ;
|
|
|
|
- // TypeCode.Boolean => logicOper + key + compareOper + bool.Parse(value.ToString()),
|
|
|
|
- // TypeCode.DateTime => logicOper + key + compareOper + (DateTime)value,
|
|
|
|
- // TypeCode.Int64 => logicOper + key + compareOper + long.Parse(value.ToString()),
|
|
|
|
- // _ => null,
|
|
|
|
- //};
|
|
|
|
|
|
+
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -463,33 +321,15 @@ namespace TEAMModelOS.SDK.Module.AzureCosmosDBV3
|
|
{
|
|
{
|
|
if (aa != 0) s.Append("or Contains(");
|
|
if (aa != 0) s.Append("or Contains(");
|
|
s.Append(key + "," + " @" + key1 + aa + " ) = " + compareOperBool + " ");
|
|
s.Append(key + "," + " @" + key1 + aa + " ) = " + compareOperBool + " ");
|
|
-
|
|
|
|
- //if (obja.Value is string a)
|
|
|
|
- //{
|
|
|
|
- // s.Append(key + "," + "\'" + a + "\') = " + compareOperBool + " ");
|
|
|
|
- //}
|
|
|
|
- //else if (obja.Value is int b)
|
|
|
|
- //{
|
|
|
|
- // s.Append("ToString( " + key + " )," + " \'" + b + "\' ) = " + compareOperBool + " ");
|
|
|
|
-
|
|
|
|
- //}
|
|
|
|
- //else if (obja.Value is double c)
|
|
|
|
- //{
|
|
|
|
- // s.Append("ToString( " + key + " )," + c + "\' ) = " + compareOperBool + " ");
|
|
|
|
- //}
|
|
|
|
- //else if (obja.Value is bool d)
|
|
|
|
- //{
|
|
|
|
- // s.Append("ToString( " + key + " )," + "\' " + d + "\' ) = " + compareOperBool + " ");
|
|
|
|
-
|
|
|
|
- //}
|
|
|
|
- //else if (obja.Value is long e)
|
|
|
|
- //{
|
|
|
|
- // s.Append("ToString( " + key + " )," + " \'" + e + "\' ) = " + compareOperBool + " ");
|
|
|
|
- //}
|
|
|
|
- //else if (obja.Value is DateTime f)
|
|
|
|
- //{
|
|
|
|
- // s.Append("ToString( " + key + " )," + " \'" + f + "\' ) = " + compareOperBool + " ");
|
|
|
|
- //}
|
|
|
|
|
|
+ if (obja.Value is string)
|
|
|
|
+ {
|
|
|
|
+ s.Append(key + "," + " @" + key1 + aa + " ) = " + compareOperBool + " ");
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ s.Append("ToString( " + key + " )," + " \'@" + key1 + aa + "\' ) = " + compareOperBool + " ");
|
|
|
|
+ }
|
|
|
|
+
|
|
aa++;
|
|
aa++;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -499,20 +339,32 @@ namespace TEAMModelOS.SDK.Module.AzureCosmosDBV3
|
|
foreach (object obja in enumerable)
|
|
foreach (object obja in enumerable)
|
|
{
|
|
{
|
|
if (aa != 0) s.Append("or Contains(");
|
|
if (aa != 0) s.Append("or Contains(");
|
|
- s.Append(key + "," + " @" + key1 + aa + " ) = " + compareOperBool + " ");
|
|
|
|
|
|
+ if (obja is string)
|
|
|
|
+ {
|
|
|
|
+ s.Append(key + "," + " @" + key1 + aa + " ) = " + compareOperBool + " ");
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ s.Append("ToString( " + key + " )," + " \'@" + key1 + aa + "\' ) = " + compareOperBool + " ");
|
|
|
|
+ }
|
|
aa++;
|
|
aa++;
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
- else if (value is JsonValueKind.Array && value is JsonElement jsonElement)
|
|
|
|
|
|
+ else if (value is JsonElement jsonElement && jsonElement.ValueKind is JsonValueKind.Array)
|
|
{
|
|
{
|
|
int aa = 0;
|
|
int aa = 0;
|
|
- //jsonElement.EnumerateArray().ToArray();
|
|
|
|
foreach (JsonElement obja in jsonElement.EnumerateArray().ToArray())
|
|
foreach (JsonElement obja in jsonElement.EnumerateArray().ToArray())
|
|
{
|
|
{
|
|
if (aa != 0) s.Append("or Contains(");
|
|
if (aa != 0) s.Append("or Contains(");
|
|
- s.Append(key + "," + " @" + key1 + aa + " ) = " + compareOperBool + " ");
|
|
|
|
-
|
|
|
|
|
|
+ if (obja.ValueKind is JsonValueKind.String)
|
|
|
|
+ {
|
|
|
|
+ s.Append(key + "," + " @" + key1 + aa + " ) = " + compareOperBool + " ");
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ s.Append("ToString( " + key + " )," + " \'@" + key1 + aa + "\' ) = " + compareOperBool + " ");
|
|
|
|
+ }
|
|
|
|
|
|
aa++;
|
|
aa++;
|
|
}
|
|
}
|
|
@@ -523,8 +375,18 @@ namespace TEAMModelOS.SDK.Module.AzureCosmosDBV3
|
|
TypeCode typeCode = Type.GetTypeCode(stype);
|
|
TypeCode typeCode = Type.GetTypeCode(stype);
|
|
keyListValueList = false;
|
|
keyListValueList = false;
|
|
string sql = "";
|
|
string sql = "";
|
|
-
|
|
|
|
- sql = logicOper + "Contains( " + key + " , @" + key1 + " ) = " + compareOperBool + " ";
|
|
|
|
|
|
+ if (value is string)
|
|
|
|
+ {
|
|
|
|
+ sql = logicOper + "Contains( " + key + " , @" + key1 + " ) = " + compareOperBool + " ";
|
|
|
|
+ }
|
|
|
|
+ else if (value is JsonElement jsonElement1 && jsonElement1.ValueKind is JsonValueKind.String)
|
|
|
|
+ {
|
|
|
|
+ sql = logicOper + "Contains( " + key + " , @" + key1 + " ) = " + compareOperBool + " ";
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ sql = logicOper + "Contains( ToString(" + key + " ), \'@" + key1 + "\' ) = " + compareOperBool + " ";
|
|
|
|
+ }
|
|
return sql;
|
|
return sql;
|
|
}
|
|
}
|
|
s.Append(" )");
|
|
s.Append(" )");
|
|
@@ -569,6 +431,14 @@ namespace TEAMModelOS.SDK.Module.AzureCosmosDBV3
|
|
foreach (JValue obja in jarray)
|
|
foreach (JValue obja in jarray)
|
|
{
|
|
{
|
|
if (aa != 0) sql.Append("or Contains(");
|
|
if (aa != 0) sql.Append("or Contains(");
|
|
|
|
+ if (obja.Value is string)
|
|
|
|
+ {
|
|
|
|
+ sql.Append(" c." + key + "," + " @" + key1 + aa + " ) = " + compareOperBool + " ");
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ sql.Append("ToString( c." + key + " )," + " \'@" + key1 + aa + "\' ) = " + compareOperBool + " ");
|
|
|
|
+ }
|
|
sql.Append(" c." + key + ", @" + key1 + aa + " )= " + compareOperBool + " ");
|
|
sql.Append(" c." + key + ", @" + key1 + aa + " )= " + compareOperBool + " ");
|
|
|
|
|
|
|
|
|
|
@@ -581,7 +451,14 @@ namespace TEAMModelOS.SDK.Module.AzureCosmosDBV3
|
|
foreach (object obja in enumerable)
|
|
foreach (object obja in enumerable)
|
|
{
|
|
{
|
|
if (aa != 0) sql.Append("or Contains(");
|
|
if (aa != 0) sql.Append("or Contains(");
|
|
- sql.Append(" c." + key + "," + " @" + key1 + aa + " ) = " + compareOperBool + " ");
|
|
|
|
|
|
+ if (obja is string)
|
|
|
|
+ {
|
|
|
|
+ sql.Append(" c." + key + "," + " @" + key1 + aa + " ) = " + compareOperBool + " ");
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ sql.Append("ToString( c." + key + " )," + " \'@" + key1 + aa + "\' ) = " + compareOperBool + " ");
|
|
|
|
+ }
|
|
|
|
|
|
aa++;
|
|
aa++;
|
|
}
|
|
}
|
|
@@ -592,8 +469,14 @@ namespace TEAMModelOS.SDK.Module.AzureCosmosDBV3
|
|
foreach (JsonElement obja in jsonElement.EnumerateArray().ToArray())
|
|
foreach (JsonElement obja in jsonElement.EnumerateArray().ToArray())
|
|
{
|
|
{
|
|
if (aa != 0) sql.Append("or Contains(");
|
|
if (aa != 0) sql.Append("or Contains(");
|
|
- sql.Append(" c." + key + "," + " @" + key1 + aa + " ) = " + compareOperBool + " ");
|
|
|
|
-
|
|
|
|
|
|
+ if (obja.ValueKind is JsonValueKind.String)
|
|
|
|
+ {
|
|
|
|
+ sql.Append(" c." + key + "," + " @" + key1 + aa + " ) = " + compareOperBool + " ");
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ sql.Append("ToString( c." + key + " )," + " \'@" + key1 + aa + "\' ) = " + compareOperBool + " ");
|
|
|
|
+ }
|
|
aa++;
|
|
aa++;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -603,9 +486,14 @@ namespace TEAMModelOS.SDK.Module.AzureCosmosDBV3
|
|
TypeCode typeCode = Type.GetTypeCode(s);
|
|
TypeCode typeCode = Type.GetTypeCode(s);
|
|
|
|
|
|
string sql1 = "";
|
|
string sql1 = "";
|
|
- sql1 = logicOper + "Contains( c." + key + " , @" + key1 + " ) = " + compareOperBool + " ";
|
|
|
|
-
|
|
|
|
-
|
|
|
|
|
|
+ if (value is string)
|
|
|
|
+ {
|
|
|
|
+ sql1 = logicOper + "Contains( c." + key + " , @" + key1 + " ) = " + compareOperBool + " ";
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ sql1 = logicOper + "Contains( ToString( c." + key + " ), \'@" + key1 + "\' ) = " + compareOperBool + " ";
|
|
|
|
+ }
|
|
return sql1;
|
|
return sql1;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -676,7 +564,6 @@ namespace TEAMModelOS.SDK.Module.AzureCosmosDBV3
|
|
TypeCode.Char => logicOper + " c." + key + CompareOpers[compareOperNum] + " @" + key1,// + "\'" + value.ToString() + "\'",
|
|
TypeCode.Char => logicOper + " c." + key + CompareOpers[compareOperNum] + " @" + key1,// + "\'" + value.ToString() + "\'",
|
|
TypeCode.Int32 => logicOper + " c." + key + CompareOpers[compareOperNum] + " @" + key1,// + int.Parse(value.ToString()),
|
|
TypeCode.Int32 => logicOper + " c." + key + CompareOpers[compareOperNum] + " @" + key1,// + int.Parse(value.ToString()),
|
|
TypeCode.Double => logicOper + " c." + key + CompareOpers[compareOperNum] + " @" + key1,// + double.Parse(value.ToString()),
|
|
TypeCode.Double => logicOper + " c." + key + CompareOpers[compareOperNum] + " @" + key1,// + double.Parse(value.ToString()),
|
|
- //case TypeCode.Byte: return "and c." + key + "=" + (Byte)obj ;
|
|
|
|
TypeCode.Boolean => logicOper + " c." + key + CompareOpers[compareOperNum] + " @" + key1,// + bool.Parse(value.ToString()),
|
|
TypeCode.Boolean => logicOper + " c." + key + CompareOpers[compareOperNum] + " @" + key1,// + bool.Parse(value.ToString()),
|
|
TypeCode.DateTime => logicOper + " c." + key + CompareOpers[compareOperNum] + " @" + key1,// + (DateTime)value,
|
|
TypeCode.DateTime => logicOper + " c." + key + CompareOpers[compareOperNum] + " @" + key1,// + (DateTime)value,
|
|
TypeCode.Int64 => logicOper + " c." + key + CompareOpers[compareOperNum] + " @" + key1,// + long.Parse(value.ToString()),
|
|
TypeCode.Int64 => logicOper + " c." + key + CompareOpers[compareOperNum] + " @" + key1,// + long.Parse(value.ToString()),
|
|
@@ -686,7 +573,6 @@ namespace TEAMModelOS.SDK.Module.AzureCosmosDBV3
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
-
|
|
|
|
public enum LogicOper : int
|
|
public enum LogicOper : int
|
|
{
|
|
{
|
|
and = 0, or = 1
|
|
and = 0, or = 1
|
|
@@ -696,9 +582,6 @@ namespace TEAMModelOS.SDK.Module.AzureCosmosDBV3
|
|
moreThan = 0, lessThan = 1, notMoreThan = 2, notLessThan = 3, equal = 4, notEqual = 5, like = 6, notLike = 7, IN = 8
|
|
moreThan = 0, lessThan = 1, notMoreThan = 2, notLessThan = 3, equal = 4, notEqual = 5, like = 6, notLike = 7, IN = 8
|
|
}
|
|
}
|
|
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
private static Dictionary<string, object> GetParmeter(Dictionary<string, object> dict, Dictionary<string, object> parmeters)
|
|
private static Dictionary<string, object> GetParmeter(Dictionary<string, object> dict, Dictionary<string, object> parmeters)
|
|
{
|
|
{
|
|
foreach (KeyValuePair<string, object> keyValue in dict)
|
|
foreach (KeyValuePair<string, object> keyValue in dict)
|
|
@@ -817,7 +700,6 @@ namespace TEAMModelOS.SDK.Module.AzureCosmosDBV3
|
|
{
|
|
{
|
|
parmeters.Add("@" + key, keyValue.Value);
|
|
parmeters.Add("@" + key, keyValue.Value);
|
|
}
|
|
}
|
|
- //parmeters.Add("@" + key, keyValue.Value.ToString());
|
|
|
|
}
|
|
}
|
|
return parmeters;
|
|
return parmeters;
|
|
}
|
|
}
|