Пример #1
0
 //---------------------------------------------------------------------------------------------------------------------------------------------------------------
 /// <summary>
 ///     Sets up a lexical search
 /// </summary>
 public DatabaseSearchPattern(string parameter, string textPattern)
 {
     SearchType = SearchType.Text;
     SearchComparisonExpression = SearchComparisonExpression.StartsWith;
     Parameter = parameter;
     Pattern   = textPattern;
 }
Пример #2
0
 //---------------------------------------------------------------------------------------------------------------------------------------------------------------
 /// <summary>
 ///     Sets up a search for a specific bool
 /// </summary>
 public DatabaseSearchPattern(string parameter, bool searchBool)
 {
     SearchType = SearchType.Bool;
     SearchComparisonExpression = SearchComparisonExpression.Bool;
     Parameter = parameter;
     Score     = (searchBool == true) ? 1 : 0;
     ScoreMin  = ScoreMax = Score;
 }
Пример #3
0
        //---------------------------------------------------------------------------------------------------------------------------------------------------------------
        /// <summary>
        ///     Sets up a search for a primary key - always ID!!
        /// </summary>
        public DatabaseSearchPattern(long primaryKey)
        {
            SearchType = SearchType.PrimaryKey;
            SearchComparisonExpression = SearchComparisonExpression.Equivalent;

            Parameter = "ID";

            Score = primaryKey;
        }
Пример #4
0
        //public string ScoreMaxStr {
        //    get { return ScoreMax.ToString("0." + new string('#', 339)); }
        //}

        //---------------------------------------------------------------------------------------------------------------------------------------------------------------
        /// <summary>
        ///     Sets up a search for a specific score
        /// </summary>
        public DatabaseSearchPattern(string parameter, double score)
        {
            SearchType = SearchType.Score;
            SearchComparisonExpression = SearchComparisonExpression.Equivalent;

            Parameter = parameter;

            ScoreMin = ScoreMax = score;
        }
Пример #5
0
        //---------------------------------------------------------------------------------------------------------------------------------------------------------------
        /// <summary>
        ///     Sets up a search for a score range
        /// </summary>
        public DatabaseSearchPattern(string parameter, double minScore, double maxScore)
        {
            SearchType = SearchType.Score;
            SearchComparisonExpression = SearchComparisonExpression.RangeBetween;

            Parameter = parameter;

            ScoreMin = minScore;
            ScoreMax = maxScore;
        }
Пример #6
0
        //---------------------------------------------------------------------------------------------------------------------------------------------------------------
        /// <summary>
        ///     Sets up a search for a DateTime range
        /// </summary>
        public DatabaseSearchPattern(string parameter, DateTime dtStart, DateTime dtEnd)
        {
            SearchType = SearchType.DateTime;
            SearchComparisonExpression = SearchComparisonExpression.RangeBetween;

            Parameter = parameter;

            ScoreMin = dtStart.Ticks;
            ScoreMax = dtEnd.Ticks;

            // Note that we want the searches to be inclusive .... - so here, lets 23 59 59 to the date to be sure...
            //ScoreMin = RedisSearchPattern.StandardiseDate(dtStart).Ticks;
            //ScoreMax = RedisSearchPattern.StandardiseDate(dtEnd).Ticks;
            //if ( RedisWrapper.DateTimeAccuracy.Equals("day", StringComparison.CurrentCultureIgnoreCase)) {
//                ScoreMax = RedisSearchPattern.StandardiseDate(dtEnd).Add(new TimeSpan(23, 59, 59)).Ticks;
//            }
        }
Пример #7
0
        //---------------------------------------------------------------------------------------------------------------------------------------------------------------
        /// <summary>
        ///     Sets up a search for a specific DateTime
        /// </summary>
        public DatabaseSearchPattern(string parameter, DateTime dt)
        {
            SearchType = SearchType.DateTime;
            Parameter  = parameter;

//            ScoreMin = RedisSearchPattern.StandardiseDate(dt).Ticks;
            // Even for equivalence searches, note that we want the searches to be inclusive .... - so here, lets 23 59 59 to the date to be sure...
//            if (RedisWrapper.DateTimeAccuracy.Equals("day", StringComparison.CurrentCultureIgnoreCase)) {
//                SearchComparisonExpression = DNSearchComparisonExpression.RangeBetween;
//                ScoreMax = RedisSearchPattern.StandardiseDate(dt).Add(new TimeSpan(23, 59, 59)).Ticks;
//            } else {
            SearchComparisonExpression = SearchComparisonExpression.Equivalent;
            //                Score = RedisSearchPattern.StandardiseDate(dt).Ticks;
            //ScoreMax = ScoreMin;
            //            }
            Score    = dt.Ticks;
            ScoreMin = ScoreMax = Score;
        }
Пример #8
0
        //---------------------------------------------------------------------------------------------------------------------------------------------------------------
        /// <summary>
        ///     Sets up a search for a score range
        ///     Note - not yet sure we can implement canBeEqual!!! - always inclusive I think
        /// </summary>
        public DatabaseSearchPattern(string parameter, double score, bool isGreaterThan)
        {
            SearchType = SearchType.Score;
            Parameter  = parameter;

            if (isGreaterThan == true)
            {
                ScoreMin = score;
                ScoreMax = double.MaxValue;
                SearchComparisonExpression = SearchComparisonExpression.RangeGreaterThanOrEqualTo;
            }
            else
            {
                ScoreMin = double.MinValue;
                ScoreMax = score;
                SearchComparisonExpression = SearchComparisonExpression.RangeLessThanOrEqualTo;
            }
        }
Пример #9
0
 //---------------------------------------------------------------------------------------------------------------------------------------------------------------
 /// <summary>
 ///     Sets up a search for a DateTime range
 /// </summary>
 public DatabaseSearchPattern(string parameter, DateTime dt, bool isGreaterThan)
 {
     SearchType = SearchType.DateTime;
     Parameter  = parameter;
     if (isGreaterThan == true)
     {
         SearchComparisonExpression = SearchComparisonExpression.RangeGreaterThanOrEqualTo;
         //ScoreMin = RedisSearchPattern.StandardiseDate(dt).Ticks;
         ScoreMin = dt.Ticks;
         ScoreMax = DateTime.MaxValue.Ticks;
     }
     else
     {
         SearchComparisonExpression = SearchComparisonExpression.RangeLessThanOrEqualTo;
         // Note that we want the searches to be inclusive .... - so here, lets 23 59 59 to the date to be sure...
         ScoreMin = DateTime.MinValue.Ticks;
         //ScoreMax = RedisSearchPattern.StandardiseDate(dt).Ticks;
         ScoreMax = dt.Ticks;
         //if (RedisWrapper.DateTimeAccuracy.Equals("day", StringComparison.CurrentCultureIgnoreCase)) {
         //    ScoreMax = RedisSearchPattern.StandardiseDate(dt).Add(new TimeSpan(23, 59, 59)).Ticks;
         //}
     }
 }