Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }
Пример #4
0
        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);
        }
Пример #5
0
        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;
        }
Пример #6
0
        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);
        }
Пример #7
0
        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);
        }