Exemplo n.º 1
0
        /// <summary>
        /// Add a statement to the filter.
        /// </summary>
        /// <param name="fieldName">Field name.</param>
        /// <param name="comparison">Query comparison type.</param>
        /// <param name="fieldValue">Field value.</param>
        /// <returns>Filter operator interface.</returns>
        public static IFilterOperator When(string fieldName, QueryComparison comparison, string fieldValue) // called 1st
        {
            var filter = new Filter();

            filter.Parts.Add(new Statement(fieldName, comparison, fieldValue));
            return(filter);
        }
Exemplo n.º 2
0
        private static string GenQueryComparison(QueryComparison comparison)
        {
            switch (comparison)
            {
            case QueryComparison.Equal:
                return("=");

            case QueryComparison.Greater:
                return(">");

            case QueryComparison.Less:
                return("<");

            case QueryComparison.GreaterEqual:
                return(">=");

            case QueryComparison.LessEqual:
                return("<=");

            case QueryComparison.NotEqual:
                return("<>");

            case QueryComparison.Like:
                return("like");

            default:
                throw new NotImplementedException();
            }
        }
Exemplo n.º 3
0
 public ConditionItem(NodeBlock propertys, QueryComparison comparison, NodeBlock value, Type typeAs) : this()
 {
     _propertyBlock = propertys;
     _ValueBlock    = value;
     TypeAs         = typeAs;
     Comparison     = comparison;
 }
        public static string ToTableString(QueryComparison qc)
        {
            switch (qc)
            {
            case QueryComparison.Equal:
                return(QueryComparisons.Equal);

            case QueryComparison.NotEqual:
                return(QueryComparisons.NotEqual);

            case QueryComparison.GreaterThan:
                return(QueryComparisons.GreaterThan);

            case QueryComparison.GreaterThanOrEqual:
                return(QueryComparisons.GreaterThanOrEqual);

            case QueryComparison.LessThan:
                return(QueryComparisons.LessThan);

            case QueryComparison.LessThanOrEqual:
                return(QueryComparisons.LessThanOrEqual);

            default:
                throw new InvalidOperationException($"Unhandled enum value: {qc}.");
            }
        }
Exemplo n.º 5
0
        public void CanRunExperimentSynchronouslyWithMultipleDataSets()
        {
            var queryResult1 = new QueryComparison();
            var queryResult2 = new QueryComparison();

            var parameterSet1 = new List <ComparisonParameter> {
                new ComparisonParameter("p1", "1")
            };
            var parameterSet2 = new List <ComparisonParameter> {
                new ComparisonParameter("p1", "2")
            };

            _comparitorMock.CompareQueryOutputs(new ComparisonInput("q1", "q2", parameterSet1).Equivalent())
            .Returns(queryResult1);

            _comparitorMock.CompareQueryOutputs(new ComparisonInput("q1", "q2", parameterSet2).Equivalent())
            .Returns(queryResult2);

            var results = _experimentRunner.RunExperiment("q1", "q2", new List <ComparisonParameterCollection>
            {
                new ComparisonParameterCollection(parameterSet1),
                new ComparisonParameterCollection(parameterSet2)
            });

            results.QueryComparisons.Count.ShouldEqual(2);
            results.QueryComparisons[0].ShouldEqual(queryResult1);
            results.QueryComparisons[1].ShouldEqual(queryResult2);
        }
Exemplo n.º 6
0
        public void CanRunExperimentSynchronouslyWithEmptyParameterSets()
        {
            var queryResult = new QueryComparison();

            _comparitorMock.CompareQueryOutputs(new ComparisonInput("q1", "q2").Equivalent())
            .Returns(queryResult);

            var results = _experimentRunner.RunExperiment("q1", "q2", new List <ComparisonParameterCollection>
            {
                new ComparisonParameterCollection()
            });

            results.QueryComparisons.Count.ShouldEqual(1);
            results.QueryComparisons[0].ShouldEqual(queryResult);
        }
Exemplo n.º 7
0
 private static string FormatValue(DbType type, object val, QueryComparison comparison = QueryComparison.Equal)
 {
     if (val == null)
     {
         return($"null");
     }
     else if (val is string)
     {
         val = EscapeQuote(type, (string)val);
         if (comparison == QueryComparison.Like)
         {
             return(QuoteString(type, $"%{val}%"));
         }
         else
         {
             return(QuoteString(type, $"{val}"));
         }
     }
     else if (val is int || val is long || val is float || val is double || val is decimal)
     {
         return($"{val}");
     }
     else if (val is bool)
     {
         return($"{val.ToString().ToLower()}");
     }
     else if (val is Enum)
     {
         return($"{(int)val}");
     }
     else if (val is DateTime)
     {
         return(QuoteString(type, $"{((DateTime)val).ToString("yyyy-MM-dd HH:mm:ss")}"));
     }
     else
     {
         throw new NotSupportedException("Value Type Not Supported.");
     }
 }
Exemplo n.º 8
0
 /// <summary>
 /// Initializes a new instance of the <see cref="T:ByteDev.Azure.Cosmos.Table.Model.Statement" /> class.
 /// </summary>
 /// <param name="fieldName">Field name.</param>
 /// <param name="comparison">Query comparison type.</param>
 /// <param name="fieldValue">Field value.</param>
 public Statement(string fieldName, QueryComparison comparison, string fieldValue)
 {
     FieldName  = fieldName;
     Comparison = comparison;
     FieldValue = fieldValue;
 }
Exemplo n.º 9
0
 /// <summary>
 /// Add a statement to the filter.
 /// </summary>
 /// <param name="fieldName">Field name.</param>
 /// <param name="comparison">Query comparison type.</param>
 /// <param name="fieldValue">Field value.</param>
 /// <returns>IFilterOperator interface.</returns>
 IFilterOperator IFilterWhen.When(string fieldName, QueryComparison comparison, string fieldValue) // subsequent calls
 {
     Parts.Add(new Statement(fieldName, comparison, fieldValue));
     return(this);
 }
Exemplo n.º 10
0
 /// <summary>
 /// 查询条件
 /// </summary>
 /// <param name="name">属性名称</param>
 /// <param name="comparison">比较符</param>
 /// <param name="value">查询条件值</param>
 /// <param name="typeAs">强制转换到类型</param>
 public ConditionItem(string name, QueryComparison comparison, object value, Type typeAs)
     : this(SetPropertyBlock(name), comparison, SetValueBlock(value), typeAs)
 {
 }
Exemplo n.º 11
0
 /// <summary>
 /// 查询条件
 /// </summary>
 /// <param name="name">属性名(字段名)</param>
 /// <param name="comparison">比较符</param>
 /// <param name="value">查询条件值</param>
 /// <param name="typeAs">字段的强制数据类型. typeAs 默认=null,即与value 的 type 相同.</param>
 public ConditionItem(string name, QueryComparison comparison, NodeBlock value, Type typeAs)
     : this(SetPropertyBlock(name), comparison, value, typeAs)
 {
 }
Exemplo n.º 12
0
 public ConditionItem(ValueItem property, QueryComparison comparison, object value, Type typeAs)
     : this(SetPropertyBlock(property), comparison, SetValueBlock(value), typeAs)
 {
 }
Exemplo n.º 13
0
 public ConditionItem(ValueItem property, QueryComparison comparison, NodeBlock value, Type typeAs)
     : this(SetPropertyBlock(property), comparison, value, typeAs)
 {
 }
Exemplo n.º 14
0
 public ConditionItem(NodeBlock propertys, QueryComparison comparison, object value, Type typeAs)
     : this(propertys, comparison, SetValueBlock(value), typeAs)
 {
 }