SqlSugar.ResolveExpress.ParMethodTo C# (CSharp) Method

ParMethodTo() private method

参数函数
private ParMethodTo ( string methodName, MethodCallExpression mce, MemberType &type ) : string
methodName string
mce System.Linq.Expressions.MethodCallExpression
type MemberType
return string
        private string ParMethodTo(string methodName, MethodCallExpression mce, ref MemberType type)
        {
            //参数函数
            MemberType rightType = MemberType.None;
            object right =null;
            if (mce.Arguments.IsValuable() && !methodName.IsIn("AddDays", "AddYears", "AddMonths"))
            {
                right = CreateSqlElements(mce.Arguments[0], ref rightType, true);
            }
            else {
                right = CreateSqlElements(mce.Object, ref rightType, true);
            }
            Check.Exception(rightType != MemberType.Value, string.Format(ExpMethodError2, methodName));
            string value = string.Empty;
            if (mce.Arguments.IsValuable())
            {
                value = right.ToString();
            }
            else
            {
                value = MethodToString(methodName, mce, ref type); ;
            }
            if (methodName.IsIn("AddDays", "AddYears", "AddMonths"))
            {
                if (value.IsValuable())
                {
                    var parValue = CreateSqlElements(mce.Arguments[0], ref rightType, true).ObjToInt();
                    switch (methodName)
                    {
                        case "AddDays": value = value.ObjToDate().AddDays(parValue).ObjToString(); break;
                        case "AddYears": value = value.ObjToDate().AddYears(parValue).ObjToString(); break;
                        case "AddMonths": value = value.ObjToDate().AddMonths(parValue).ObjToString(); break;

                    }
                }
                return value;
            }
            if (methodName == "ToDateTime" || methodName == "ObjToDate")
            {
                return Convert.ToDateTime(value).ToString();
            }
            else if (methodName.StartsWith("ToInt"))
            {
                return Convert.ToInt32(value).ToString();
            }
            else if (methodName.StartsWith("Trim"))
            {
                return (value.ObjToString()).Trim();
            }
            else if (methodName.StartsWith("ObjTo"))
            {
                return value;
            }
            else if (methodName == "ToLower") {
                if (value == null) return value;
                else
                    return value.ToLower();
            }
            else if (methodName == "ToUpper")
            {
                if (value == null) return value;
                else
                    return value.ToUpper();
            }
            else
            {
                throw new SqlSugarException("不支持当前函数:" + methodName + "\r\n" + ResolveExpress.ExpToSqlError);
            }
        }