Пример #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="dictionary"></param>
        /// <param name="queryGroupTypeMap"></param>
        /// <param name="queryField"></param>
        private static void AsMappedObjectForInQueryField(IDictionary <string, object> dictionary,
                                                          QueryGroupTypeMap queryGroupTypeMap,
                                                          QueryField queryField)
        {
            var values = GetValueList(queryField.Parameter.Value);

            for (var i = 0; i < values.Count; i++)
            {
                var parameterName = string.Concat(queryField.Parameter.Name, "_In_", i);
                if (dictionary.ContainsKey(parameterName))
                {
                    continue;
                }

                if (queryGroupTypeMap.MappedType != null)
                {
                    dictionary.Add(parameterName,
                                   new CommandParameter(parameterName, values[i], queryGroupTypeMap.MappedType));
                }
                else
                {
                    dictionary.Add(parameterName, values[i]);
                }
            }
        }
Пример #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="dictionary"></param>
        /// <param name="queryGroupTypeMap"></param>
        /// <param name="queryField"></param>
        private static void AsMappedObjectForNormalQueryField(IDictionary <string, object> dictionary,
                                                              QueryGroupTypeMap queryGroupTypeMap,
                                                              QueryField queryField)
        {
            if (dictionary.ContainsKey(queryField.Parameter.Name))
            {
                return;
            }

            if (queryGroupTypeMap.MappedType != null)
            {
                dictionary.Add(queryField.Parameter.Name,
                               new CommandParameter(queryField.Parameter.Name, queryField.Parameter.Value, queryGroupTypeMap.MappedType));
            }
            else
            {
                dictionary.Add(queryField.Parameter.Name, queryField.Parameter.Value);
            }
        }
Пример #3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="dictionary"></param>
        /// <param name="queryGroupTypeMap"></param>
        /// <param name="queryField"></param>
        private static void AsMappedObjectForBetweenQueryField(IDictionary <string, object> dictionary,
                                                               QueryGroupTypeMap queryGroupTypeMap,
                                                               QueryField queryField)
        {
            var values = GetValueList(queryField.Parameter.Value);

            // Left
            var left = string.Concat(queryField.Parameter.Name, "_Left");

            if (!dictionary.ContainsKey(left))
            {
                var leftValue = values.Count > 0 ? values[0] : null;
                if (queryGroupTypeMap.MappedType != null)
                {
                    dictionary.Add(left,
                                   new CommandParameter(left, leftValue, queryGroupTypeMap.MappedType));
                }
                else
                {
                    dictionary.Add(left, leftValue);
                }
            }

            // Right
            var right = string.Concat(queryField.Parameter.Name, "_Right");

            if (!dictionary.ContainsKey(right))
            {
                var rightValue = values.Count > 1 ? values[1] : null;
                if (queryGroupTypeMap.MappedType != null)
                {
                    dictionary.Add(right,
                                   new CommandParameter(right, rightValue, queryGroupTypeMap.MappedType));
                }
                else
                {
                    dictionary.Add(right, rightValue);
                }
            }
        }
Пример #4
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="dictionary"></param>
 /// <param name="queryGroupTypeMap"></param>
 /// <param name="queryFields"></param>
 private static void AsMappedObjectForQueryFields(IDictionary <string, object> dictionary,
                                                  QueryGroupTypeMap queryGroupTypeMap,
                                                  IEnumerable <QueryField> queryFields)
 {
     foreach (var queryField in queryFields)
     {
         if (queryField.Operation == Operation.Between ||
             queryField.Operation == Operation.NotBetween)
         {
             AsMappedObjectForBetweenQueryField(dictionary, queryGroupTypeMap, queryField);
         }
         else if (queryField.Operation == Operation.In ||
                  queryField.Operation == Operation.NotIn)
         {
             AsMappedObjectForInQueryField(dictionary, queryGroupTypeMap, queryField);
         }
         else
         {
             AsMappedObjectForNormalQueryField(dictionary, queryGroupTypeMap, queryField);
         }
     }
 }
Пример #5
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="dictionary"></param>
        /// <param name="queryGroupTypeMap"></param>
        /// <param name="fixParameters"></param>
        private static void AsMappedObject(IDictionary <string, object> dictionary,
                                           QueryGroupTypeMap queryGroupTypeMap,
                                           bool fixParameters = true)
        {
            var queryFields = queryGroupTypeMap
                              .QueryGroup
                              .GetFields(true);

            // Identify if there are fields to count
            if (queryFields.Any() != true)
            {
                return;
            }

            // Fix the variables for the parameters
            if (fixParameters == true)
            {
                queryGroupTypeMap.QueryGroup.Fix();
            }

            // Iterate all the query fields
            AsMappedObjectForQueryFields(dictionary, queryGroupTypeMap, queryFields);
        }