internal override string CreateLikeCondition(Criteria criteria) { switch (criteria.Operator) { case "StartsWith": if (criteria.CaseSensitive) { return string.Format("({0} like '{1}%')", criteria.ColumnName, criteria.Value); } return string.Format("(UPPER({0}) like UPPER('{1}%'))", criteria.ColumnName, criteria.Value); case "EndsWith": if (criteria.CaseSensitive) { return string.Format("({0} like '%{1}')", criteria.ColumnName, criteria.Value); } return string.Format("(UPPER({0}) like UPPER('%{1}'))", criteria.ColumnName, criteria.Value); case "Contains": if (criteria.CaseSensitive) { return string.Format("({0} like '%{1}%')", criteria.ColumnName, criteria.Value); } return string.Format("(UPPER({0}) like UPPER('%{1}%'))", criteria.ColumnName, criteria.Value); } throw new EasylinkException("invalid criteria is found. {0} {1}", criteria.PropertyName, criteria.Operator); }
internal override string CreateEqualOrNonEqualCondition(Criteria criteria) { if (criteria.Value == null) { if (criteria.Operator == "!=") { return string.Format("({0} is not null)", criteria.ColumnName); } return string.Format("({0} is null)", criteria.ColumnName); } if (criteria.Value is string) { if (criteria.CaseSensitive) { return string.Format("({0}{1}'{2}')", criteria.ColumnName, criteria.Operator, criteria.Value); } return string.Format("(UPPER({0}) {1} UPPER('{2}'))", criteria.ColumnName, criteria.Operator, criteria.Value); } if (criteria.Value is Guid) { return string.Format("({0}{1}'{2}')", criteria.ColumnName, criteria.Operator, criteria.Value); } if (criteria.Value is bool) { if ((bool) criteria.Value) { return string.Format("({0}{1} 'Y')", criteria.ColumnName, criteria.Operator); } return string.Format("({0}{1} 'N')", criteria.ColumnName, criteria.Operator); } if (criteria.Value is DateTime) { var date = (DateTime) criteria.Value; return string.Format("({0}{1} to_date('{2}', '{3}'))", criteria.ColumnName, criteria.Operator, FormatDate(date), _postgreSqlDateFormat); } return string.Format("({0}{1}{2})", criteria.ColumnName, criteria.Operator, criteria.Value); }
internal override string CreateGreaterOrLessCondition(Criteria criteria) { if (criteria.Value is DateTime) { var date = (DateTime) criteria.Value; return string.Format("({0}{1} to_date('{2}', '{3}'))", criteria.ColumnName, criteria.Operator, FormatDate(date), _postgreSqlDateFormat); } return string.Format("({0}{1}{2})", criteria.ColumnName, criteria.Operator, criteria.Value); }
internal override string CreateEqualOrNonEqualCondition(Criteria criteria) { if (criteria.Value == null) { if (criteria.Operator == "!=") { return string.Format("({0} is not null)", criteria.ColumnName); } return string.Format("({0} is null)", criteria.ColumnName); } if (criteria.Value is string) { if (criteria.CaseSensitive) { return string.Format("(BINARY {0}{1}'{2}')", criteria.ColumnName, criteria.Operator, criteria.Value); } return string.Format("({0}{1}'{2}')", criteria.ColumnName, criteria.Operator, criteria.Value); } if (criteria.Value is Guid) { return string.Format("({0}{1}'{2}')", criteria.ColumnName, criteria.Operator, criteria.Value); } if (criteria.Value is bool) { if ((bool) criteria.Value) { return string.Format("({0}{1} 1)", criteria.ColumnName, criteria.Operator); } return string.Format("({0}{1} 0)", criteria.ColumnName, criteria.Operator); } if (criteria.Value is DateTime) { var date = (DateTime) criteria.Value; return string.Format("({0}{1}'{2}')", criteria.ColumnName, criteria.Operator, date.ToString("yyyy-MM-dd")); } return string.Format("({0}{1}{2})", criteria.ColumnName, criteria.Operator, criteria.Value); }
internal override string CreateLikeCondition(Criteria criteria) { string condition; switch (criteria.Operator) { case "StartsWith": condition = string.Format("({0} like '{1}%')", criteria.ColumnName, criteria.Value); break; case "EndsWith": condition = string.Format("({0} like '%{1}')", criteria.ColumnName, criteria.Value); break; case "Contains": condition = string.Format("({0} like '%{1}%')", criteria.ColumnName, criteria.Value); break; default: throw new EasylinkException("invalid criteria is found. {0} {1}", criteria.PropertyName, criteria.Operator); } if (criteria.CaseSensitive) { condition = condition.Replace("(", "(BINARY "); } return condition; }
internal override string CreateGreaterOrLessCondition(Criteria criteria) { if (criteria.Value is DateTime) { var date = (DateTime) criteria.Value; return string.Format("({0}{1}'{2}')", criteria.ColumnName, criteria.Operator, date.ToString("yyyy-MM-dd")); } return string.Format("({0}{1}{2})", criteria.ColumnName, criteria.Operator, criteria.Value); }
internal override string CreateLikeCondition(Criteria criteria) { if (criteria.CaseSensitive) { throw new EasylinkException("Sql server does not support case senstive like search at this time."); } switch (criteria.Operator) { case "StartsWith": return string.Format("({0} like '{1}%')", criteria.ColumnName, criteria.Value); case "EndsWith": return string.Format("({0} like '%{1}')", criteria.ColumnName, criteria.Value); case "Contains": return string.Format("({0} like '%{1}%')", criteria.ColumnName, criteria.Value); } throw new EasylinkException("invalid criteria is found. {0} {1}", criteria.PropertyName, criteria.Operator); }