// AsFieldAndParameter internal static string AsFieldAndParameter(this QueryField queryField) { if (queryField.Operation == Operation.Equal && queryField.Parameter.Value == null) { return($"{queryField.AsField()} IS NULL"); } else if (queryField.Operation == Operation.NotEqual && queryField.Parameter.Value == null) { return($"{queryField.AsField()} IS NOT NULL"); } else { var operationText = queryField.GetOperationText(); if (queryField.Operation == Operation.Between || queryField.Operation == Operation.NotBetween) { return($"{queryField.AsField()} {operationText} {queryField.AsBetweenParameter()}"); } else if (queryField.Operation == Operation.In || queryField.Operation == Operation.NotIn) { return($"{queryField.AsField()} {operationText} {queryField.AsInParameter()}"); } else { return($"{queryField.AsField()} {operationText} {queryField.AsParameter()}"); } } }
// AsFieldAndParameter internal static string AsFieldAndParameter(this QueryField queryField, int index = 0) { if (queryField.Operation == Operation.Equal && queryField.Parameter.Value == null) { return(string.Concat(queryField.AsField(), " IS NULL")); } else if (queryField.Operation == Operation.NotEqual && queryField.Parameter.Value == null) { return(string.Concat(queryField.AsField(), " IS NOT NULL")); } else { if (queryField.Operation == Operation.Between || queryField.Operation == Operation.NotBetween) { return(string.Concat(queryField.AsField(), " ", queryField.GetOperationText(), " ", queryField.AsBetweenParameter(index))); } else if (queryField.Operation == Operation.In || queryField.Operation == Operation.NotIn) { return(string.Concat(queryField.AsField(), " ", queryField.GetOperationText(), " ", queryField.AsInParameter(index))); } else { return(string.Concat(queryField.AsField(), " ", queryField.GetOperationText(), " ", queryField.AsParameter(index))); } } }
/// <summary> /// /// </summary> /// <param name="queryField"></param> /// <param name="index"></param> /// <param name="dbSetting"></param> /// <returns></returns> internal static string AsFieldAndParameterForIn(this QueryField queryField, int index, IDbSetting dbSetting) { var enumerable = (queryField.Parameter.Value as System.Collections.IEnumerable)?.WithType <object>(); if (enumerable?.Any() != true) { return("1 = 0"); } else { return(string.Concat(queryField.AsField(dbSetting), " ", queryField.Operation.GetText(), " ", queryField.AsInParameter(index, dbSetting))); } }
internal static string AsFieldAndParameterForIn(this QueryField queryField, int index, IDbSetting dbSetting) { var array = queryField.Parameter.Value?.AsArray(); if (array == null || array?.Length == 0) { return("1 = 0"); } else { return(string.Concat(queryField.AsField(dbSetting), " ", queryField.GetOperationText(), " ", queryField.AsInParameter(index, dbSetting))); } }