12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- using Newtonsoft.Json.Linq;
- using System;
- using System.Collections.Generic;
- using System.Text;
- using System.Linq;
- namespace SqlSugar
- {
- internal class JsonCommonProvider
- {
- public JsonCommonProvider(ISqlSugarClient context)
- {
- //this.context = context;
- this.sqlBuilder = InstanceFactory.GetSqlbuilder(context.CurrentConnectionConfig);
- if (context is SqlSugarProvider)
- {
- this.sqlBuilder.Context = context as SqlSugarProvider;
- }
- else if (context is SqlSugarScopeProvider)
- {
- this.sqlBuilder.Context = (context as SqlSugarScopeProvider).conn;
- }
- else if(context is SqlSugarScope)
- {
- this.sqlBuilder.Context = (context as SqlSugarScope).GetConnection(context.CurrentConnectionConfig.ConfigId);
- }
- else
- {
- this.sqlBuilder.Context = (context as SqlSugarClient).Context;
- }
- }
- //public ISqlSugarClient context { get; set; }
- public ISqlBuilder sqlBuilder { get; set; }
- public int ParameterIndex { get { return ((SqlBuilderProvider)sqlBuilder)?.GetParameterNameIndex??0; } }
- public JsonTableNameInfo GetTableName(JToken item)
- {
- JsonTableNameInfo jsonTableNameInfo = new JsonTableNameInfo();
- if (item.First().Type == JTokenType.Array && item.First.Count() == 2)
- {
- var tableName = item.First()[0].ObjToString();
- var shortName = item.First()[1].ObjToString();
- jsonTableNameInfo.ShortName = shortName;
- jsonTableNameInfo.TableName = tableName;
- }
- else
- {
- var value = item.First().ToString();
- jsonTableNameInfo.TableName = value;
- }
- return jsonTableNameInfo;
- }
- public KeyValuePair<string, SugarParameter[]> GetWhere(string item, SqlSugarProvider context)
- {
- if (!IsConditionalModel(item))
- {
- var obj = context.Utilities.JsonToSqlFuncModels(item);
- var sqlobj = sqlBuilder.FuncModelToSql(obj);
- return sqlobj;
- }
- else
- {
- var obj = context.Utilities.JsonToConditionalModels(item);
- var sqlObj = sqlBuilder.ConditionalModelToSql(obj, 0);
- return sqlObj;
- }
- }
- public KeyValuePair<string,SugarParameter[]> GetWhere(JToken item,SqlSugarProvider context)
- {
- var value = item.First().ToString();
- Check.ExceptionEasy(item.First().Type != JTokenType.Array, "Where format error " + item, "Where格式错误" + item);
- if (!IsConditionalModel(value))
- {
- var obj = context.Utilities.JsonToSqlFuncModels(value);
- var sqlobj = sqlBuilder.FuncModelToSql(obj);
- return sqlobj;
- }
- else
- {
- var obj = context.Utilities.JsonToConditionalModels(value);
- var sqlObj = sqlBuilder.ConditionalModelToSql(obj, 0);
- return sqlObj;
- }
- }
- private static bool IsConditionalModel(string value)
- {
- return value.ToLower().Contains("fieldname");
- }
- }
- }
|