/// <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]); } } }
/// <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); } }
/// <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); } } }
/// <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); } } }
/// <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); }