Files
SqlSugar/SqlSugar/ExpressionsToSql/Common/ExpressionResult.cs
sunkaixuan 79af494bfa -
2017-01-27 18:35:48 +08:00

140 lines
4.2 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SqlSugar
{
public class ExpressionResult
{
public bool IsLockCurrentParameter { get; set; }
private ExpressionParameter _CurrentParameter;
public ExpressionParameter CurrentParameter
{
get
{
return this._CurrentParameter;
}
set
{
Check.Exception(value != null && IsLockCurrentParameter, "CurrentParameter is locked.");
this._CurrentParameter = value;
this.IsLockCurrentParameter = false;
}
}
#region constructor
private ExpressionResult()
{
}
public ExpressionResult(ResolveExpressType resolveExpressType)
{
this._ResolveExpressType = resolveExpressType;
}
#endregion
#region Fields
private ResolveExpressType _ResolveExpressType;
private StringBuilder _Result;
#endregion
#region properties
private StringBuilder Result
{
get
{
if (_Result == null) _Result = new StringBuilder();
return _Result;
}
set
{
_Result = value;
}
}
#endregion
public string GetString()
{
if (_Result == null) return null;
return _Result.ToString().TrimEnd(',');
}
#region functions
public string[] GetResultArray()
{
if (this._Result == null) return null;
return this.Result.ToString().Split(',');
}
public string GetResultString()
{
if (this._Result == null) return null;
return this.Result.ToString();
}
public void TrimEnd()
{
if (this._Result == null) return;
this.Result=this.Result.Remove(this.Result.Length-1,1);
}
public void Append(object parameter)
{
if (this.CurrentParameter.IsValuable() && this.CurrentParameter.AppendType.IsIn(ExpressionResultAppendType.AppendTempDate))
{
this.CurrentParameter.CommonTempData = parameter;
return;
}
switch (this._ResolveExpressType)
{
case ResolveExpressType.SelectSingle:
case ResolveExpressType.SelectMultiple:
parameter = parameter + ",";
break;
case ResolveExpressType.WhereSingle:
break;
case ResolveExpressType.WhereMultiple:
break;
case ResolveExpressType.FieldSingle:
break;
case ResolveExpressType.FieldMultiple:
break;
default:
break;
}
this.Result.Append(parameter);
}
public void AppendFormat(string parameter, params object[] orgs)
{
if (this.CurrentParameter.IsValuable() && this.CurrentParameter.AppendType.IsIn(ExpressionResultAppendType.AppendTempDate))
{
this.CurrentParameter.CommonTempData = new KeyValuePair<string, object[]>(parameter, orgs);
return;
}
switch (this._ResolveExpressType)
{
case ResolveExpressType.SelectSingle:
case ResolveExpressType.SelectMultiple:
parameter = parameter + ",";
break;
case ResolveExpressType.WhereSingle:
break;
case ResolveExpressType.WhereMultiple:
break;
case ResolveExpressType.FieldSingle:
break;
case ResolveExpressType.FieldMultiple:
break;
default:
break;
}
this.Result.AppendFormat(parameter, orgs);
}
public void Replace(string parameter, string newValue)
{
this.Result.Replace(parameter, newValue);
}
#endregion
}
}