示例#1
0
        public AttributeController(Class @class)
        {
            Parent = @class.Parent;

            Suffix = @class.Suffix;

            Accessibility = @class.Accessibility;

            AttributeCondition.AddAttributes(Include, @class?.Attributes?.Include);
            AttributeCondition.AddAttributes(Exclude, @class?.Attributes?.Exclude);
        }
示例#2
0
        public MethodAttributes(Method method)
        {
            IncludeConstructor = method.IncludeConstructor;

            Static = method.Static;

            Accessibility = method.Accessibility;

            AttributeCondition.AddAttributes(Include, method?.Attributes?.Include);
            AttributeCondition.AddAttributes(Exclude, method?.Attributes?.Exclude);
        }
示例#3
0
            private string ContinueBuildAttributeConditionWhereClause(IDbCommand command, AttributeCondition condition, bool everyAttribute)
            {
                AttributeValueCondition        valueCondition;
                AttributeValueBetweenCondition valueBetweenCondition;
                AttributeValueInCondition      valueInCondition;

                string nameParameterName = FormatParameterName("@aname{0}");

                AddParameter(command, nameParameterName, condition.Name);

                if ((valueCondition = condition as AttributeValueCondition) != null)
                {
                    string valueParameterName = FormatParameterName("@avalue{0}");
                    AddParameter(command, valueParameterName, valueCondition.Value);

                    return(string.Format("i.num in (select a.inum from attribute a where a.name={0} and a.value{1}{2})",
                                         nameParameterName, GetValueTestOperator(valueCondition.Test), valueParameterName));
                }
                else if ((condition as AttributeIsNullCondition) != null)
                {
                    return(string.Format("i.num not in (select a.inum from attribute a where a.name={0})",
                                         nameParameterName));
                }
                else if ((condition as AttributeIsNotNullCondition) != null)
                {
                    return(string.Format("i.num in (select a.inum from attribute a where a.name={0})",
                                         nameParameterName));
                }
                else if ((valueBetweenCondition = condition as AttributeValueBetweenCondition) != null)
                {
                    string lowerValueParameterName = FormatParameterName("@avalue{0}");
                    string upperValueParameterName = FormatParameterName("@avalue{0}");

                    AddParameter(command, lowerValueParameterName, valueBetweenCondition.LowerValue);
                    AddParameter(command, upperValueParameterName, valueBetweenCondition.UpperValue);

                    return(string.Format("i.num in (select a.inum from attribute a where a.name={0} and a.value between {1} and {2})",
                                         nameParameterName, lowerValueParameterName, upperValueParameterName));
                }
                else if ((valueInCondition = condition as AttributeValueInCondition) != null)
                {
                    StringBuilder builder = new StringBuilder();
                    builder.AppendFormat("i.num in (select a.inum from attribute a where a.name={0} and a.value in(", nameParameterName);

                    string[] values = valueInCondition.Values.ToArray();

                    if (values.Length == 0)
                    {
                        throw new ArgumentException("Value in condition values are empty");
                    }

                    for (int i = 0; i < values.Length; i++)
                    {
                        if (i != 0)
                        {
                            builder.Append(",");
                        }

                        string valueParameterName = FormatParameterName("@avalue{0}");
                        AddParameter(command, valueParameterName, values[i]);

                        builder.AppendFormat(valueParameterName);
                    }

                    builder.Append("))");
                    return(builder.ToString());
                }

                throw new ArgumentException("Condition is not supported");
            }
示例#4
0
        private static string ContinueBuildAttributeConditionWhereClause(AttributeCondition condition, bool everyAttribute)
        {
            AttributeValueCondition        valueCondition;
            AttributeIsNullCondition       isNullCondition;
            AttributeIsNotNullCondition    isNotNullCondition;
            AttributeValueBetweenCondition valueBetweenCondition;
            AttributeValueInCondition      valueInCondition;

            if ((valueCondition = condition as AttributeValueCondition) != null)
            {
                return(string.Format("{0}{1}'{2}'",
                                     GetConditionAttributeName(valueCondition.Name, everyAttribute),
                                     GetValueTestOperator(valueCondition.Test),
                                     EncodeConditionAttributeValue(valueCondition.Value)));
            }
            else if ((isNullCondition = condition as AttributeIsNullCondition) != null)
            {
                return(string.Format("{0} is null", GetConditionAttributeName(isNullCondition.Name, everyAttribute)));
            }
            else if ((isNotNullCondition = condition as AttributeIsNotNullCondition) != null)
            {
                return(string.Format("{0} is not null", GetConditionAttributeName(isNotNullCondition.Name, everyAttribute)));
            }
            else if ((valueBetweenCondition = condition as AttributeValueBetweenCondition) != null)
            {
                return(string.Format("{0} between '{1}' and '{2}'",
                                     GetConditionAttributeName(valueBetweenCondition.Name, everyAttribute),
                                     EncodeConditionAttributeValue(valueBetweenCondition.LowerValue),
                                     EncodeConditionAttributeValue(valueBetweenCondition.UpperValue)));
            }
            else if ((valueInCondition = condition as AttributeValueInCondition) != null)
            {
                StringBuilder builder = new StringBuilder();
                builder.AppendFormat("{0} in(", GetConditionAttributeName(valueInCondition.Name, everyAttribute));

                bool isFirst = true;

                foreach (string value in valueInCondition.Values)
                {
                    if (isFirst)
                    {
                        isFirst = false;
                    }
                    else
                    {
                        builder.Append(",");
                    }

                    builder.AppendFormat("'{0}'", EncodeConditionAttributeValue(value));
                }

                if (isFirst)
                {
                    throw new ArgumentException("Value in condition values are empty");
                }

                builder.Append(")");
                return(builder.ToString());
            }

            throw new ArgumentException("Condition is not supported");
        }
示例#5
0
 public ParameterAttributes(Parameter parameter)
 {
     AttributeCondition.AddAttributes(Include, parameter?.Attributes?.Include);
     AttributeCondition.AddAttributes(Exclude, parameter?.Attributes?.Exclude);
 }
示例#6
0
        private static string ContinueBuildAttributeConditionWhereClause(AttributeCondition condition, bool everyAttribute)
        {
            AttributeValueCondition valueCondition;
            AttributeIsNullCondition isNullCondition;
            AttributeIsNotNullCondition isNotNullCondition;
            AttributeValueBetweenCondition valueBetweenCondition;
            AttributeValueInCondition valueInCondition;

            if ((valueCondition = condition as AttributeValueCondition) != null)
            {
                return string.Format("{0}{1}'{2}'",
                    GetConditionAttributeName(valueCondition.Name, everyAttribute),
                    GetValueTestOperator(valueCondition.Test),
                    EncodeConditionAttributeValue(valueCondition.Value));
            }
            else if ((isNullCondition = condition as AttributeIsNullCondition) != null)
            {
                return string.Format("{0} is null", GetConditionAttributeName(isNullCondition.Name, everyAttribute));
            }
            else if ((isNotNullCondition = condition as AttributeIsNotNullCondition) != null)
            {
                return string.Format("{0} is not null", GetConditionAttributeName(isNotNullCondition.Name, everyAttribute));
            }
            else if ((valueBetweenCondition = condition as AttributeValueBetweenCondition) != null)
            {
                return string.Format("{0} between '{1}' and '{2}'",
                    GetConditionAttributeName(valueBetweenCondition.Name, everyAttribute),
                    EncodeConditionAttributeValue(valueBetweenCondition.LowerValue),
                    EncodeConditionAttributeValue(valueBetweenCondition.UpperValue));
            }
            else if ((valueInCondition = condition as AttributeValueInCondition) != null)
            {
                StringBuilder builder = new StringBuilder();
                builder.AppendFormat("{0} in(", GetConditionAttributeName(valueInCondition.Name, everyAttribute));

                bool isFirst = true;

                foreach (string value in valueInCondition.Values)
                {
                    if (isFirst)
                    {
                        isFirst = false;
                    }
                    else
                    {
                        builder.Append(",");
                    }

                    builder.AppendFormat("'{0}'", EncodeConditionAttributeValue(value));
                }

                if (isFirst)
                {
                    throw new ArgumentException("Value in condition values are empty");
                }

                builder.Append(")");
                return builder.ToString();
            }

            throw new ArgumentException("Condition is not supported");
        }