예제 #1
0
 public override void AddHiddenFilter(string name, string text, SearchComparison comparison, object dataType, object value)
 {
     _filters.Add(new OleDbSearchParam(name, text, name, comparison, dataType, true)
     {
         Hidden = true, Value = value
     });
 }
            public ILobbySearchBuilder Filter(string key, SearchComparison comparison, int value)
            {
                var comp = (ELobbyComparison)((int)comparison);

                SteamMatchmaking.AddRequestLobbyListNumericalFilter(key, value, comp);
                return(this);
            }
예제 #3
0
 public override void AddHiddenFilter(string name, string text, string param, SearchComparison comparison, object dataType, object value, bool needCriteria)
 {
     _filters.Add(new SqlSearchParam(name, text, param, comparison, dataType, needCriteria)
     {
         Hidden = true, Value = value
     });
 }
예제 #4
0
            public ILobbySearchBuilder Filter(string key, SearchComparison comparison, int value)
            {
                var comp = (LobbyComparison)((int)comparison);

                _query.AddNumericalFilter(key, value, comp);
                return(this);
            }
예제 #5
0
 public SqlSearchParam(string fieldName, string fieldText, SearchComparison comparison, object dataType)
 {
     this.FieldName = fieldName;
      this.FieldText = fieldText;
      this.Comparison = comparison;
      this.DataType = dataType;
 }
예제 #6
0
 public ILobbySearchBuilder Filter(string key, SearchComparison comparison, string value)
 {
     // Facepunch Steamworks no longer support comparison of strings greater or lesser, only equal.
     // This is untested.
     _query.WithKeyValue(key, value);
     return(this);
 }
예제 #7
0
 public ILobbySearchBuilder Filter(string key, SearchComparison comparison, int value)
 {
     // This is untested.
     if (comparison == SearchComparison.LessThanOrEqual)
     {
         _query.WithLower(key, value + 1);
     }
     else if (comparison == SearchComparison.LessThan)
     {
         _query.WithLower(key, value);
     }
     else if (comparison == SearchComparison.Equal)
     {
         _query.WithEqual(key, value + 1);
     }
     else if (comparison == SearchComparison.GreaterThan)
     {
         _query.WithHigher(key, value);
     }
     else if (comparison == SearchComparison.GreaterThanOrEqual)
     {
         _query.WithHigher(key, value + 1);
     }
     else if (comparison == SearchComparison.NotEqual)
     {
         _query.WithNotEqual(key, value);
     }
     return(this);
 }
예제 #8
0
 public override void AddFilter(string name, string text, SearchComparison comparison, object dataType, object value, bool needCriteria)
 {
     _filters.Add(new OleDbSearchParam(name, text, name, comparison, dataType, needCriteria)
     {
         Value = value
     });
 }
예제 #9
0
        public int BinarySearch <T2>(int startIdx, int count, T2 item, SearchComparison <T2> comparison)
        {
            if (0 == count)
            {
                return(-1);
            }

            int endIdx = startIdx + count;
            int key    = startIdx + (int)(count * 0.5);

            int pos = comparison(this.pool[key], item);

            if (0 < pos) // 1
            {
                return(this.BinarySearch((key + 1), endIdx - (key + 1), item, comparison));
            }
            else if (0 > pos) // -1
            {
                return(this.BinarySearch(startIdx, key - startIdx, item, comparison));
            }
            else // get !
            {
                return(key);
            }
        }
예제 #10
0
 public OleDbSearchParam(string fieldName, string fieldText, string paramName, SearchComparison comparison, object dataType, bool needCriteria)
 {
     FieldName  = fieldName;
     FieldText  = fieldText;
     ParamName  = paramName;
     Comparison = comparison;
     DataType   = dataType;
     NoCriteria = !needCriteria;
     Hidden     = false;
 }
예제 #11
0
        public List <SearchResult> Search(List <SearchCriteria> searchCriteria)
        {
            List <SearchResult> results    = new List <SearchResult>();
            List <string>       searchDirs = new List <string>();
            string           fileName      = string.Empty;
            string           fileType      = string.Empty;
            SearchComparison cmp           = SearchComparison.EQUAL;

            foreach (var criteria in searchCriteria)
            {
                switch (criteria.Property)
                {
                case "fileName":
                    fileName = criteria.Value;
                    cmp      = criteria.CompareType;
                    break;

                case "fileType":
                    break;

                default:
                    break;
                }
            }

            //////////////
            // TODO MOVE
            //////////////
            //////////////

            var searchFiles = Directory.GetFiles(@"C:\github.com\Juzkus\FROG\FROG.DotNet\FROG.DotNet.SimpleSearch");

            foreach (var searchFileName in searchFiles)
            {
                switch (cmp)
                {
                case SearchComparison.CONTAINS:
                    if (searchFileName.Contains(fileName))
                    {
                        results.Add(new SearchResult {
                            Title = searchFileName
                        });
                    }
                    break;

                default:
                    break;
                }
            }

            return(results);
        }
예제 #12
0
        public static bool SatisfiesFilterFormat(PKM pk, int format, SearchComparison formatOperand)
        {
            switch (formatOperand)
            {
            case SearchComparison.GreaterThanEquals when pk.Format <format:
                                                                case SearchComparison.Equals when pk.Format == format:
                                                                case SearchComparison.LessThanEquals when pk.Format> format:
                return(false);
            }

            // Might need to clamp down further for generations that cannot exist in the current format.
            return(format switch
            {
예제 #13
0
        public static IEnumerable <PKM> FilterByLVL(IEnumerable <PKM> res, SearchComparison option, int level)
        {
            if (level > 100)
            {
                return(res);
            }

            switch (option)
            {
            case SearchComparison.LessThanEquals:
                return(res.Where(pk => pk.Stat_Level <= level));

            case SearchComparison.Equals:
                return(res.Where(pk => pk.Stat_Level == level));

            case SearchComparison.GreaterThanEquals:
                return(res.Where(pk => pk.Stat_Level >= level));

            default:
                return(res);    // Any (Do nothing)
            }
        }
예제 #14
0
        public static Func <T, bool> ConvertComparison <T>(SearchComparison <T> comparison) where T : IComparable
        {
            if (comparison == null || comparison.Comparison == Comparison.None)
            {
                return((T obj) => true);
            }

            switch (comparison.Comparison)
            {
            case Comparison.MoreThan:
                return((T obj) => obj.CompareTo(comparison.Object) > 0);

            case Comparison.Equal:
                return((T obj) => obj.CompareTo(comparison.Object) == 0);

            case Comparison.LessThan:
                return((T obj) => obj.CompareTo(comparison.Object) < 0);

            default:
                return((T obj) => true);
            }
        }
예제 #15
0
 // Future: Might need to clamp down further for generations that cannot exist in the current format.
 public static bool SatisfiesFilterFormat(PKM pk, int format, SearchComparison formatOperand) => formatOperand switch
 {
예제 #16
0
 public static SearchParam CreateParam(string name, string text, SearchComparison comparison, object dataType)
 {
     return new SqlSearchParam(name, text, comparison, dataType);
 }
예제 #17
0
 public static SearchParam CreateParam(string name, string text, string param, SearchComparison comparison, object dataType, bool needCriteria, object value)
 {
     return(new SqlSearchParam(name, text, param, comparison, dataType, needCriteria)
     {
         Value = value
     });
 }
예제 #18
0
 public abstract void AddHiddenFilter(string name, string text, SearchComparison comparison, object dataType, object value);
예제 #19
0
 public static SearchParam CreateParam(string name, string text, SearchComparison comparison, object dataType, object value)
 {
     return new OleDbSearchParam(name, text, comparison, dataType) { Value = value };
 }
예제 #20
0
 public abstract void AddFilter(string name, string text, string param, SearchComparison comparison, object dataType);
예제 #21
0
 public abstract void AddFilter(string name, string text, string param, SearchComparison comparison, object dataType, object value, bool needCriteria);
예제 #22
0
 public int BinarySearch <T2>(T2 item, SearchComparison <T2> comparison)
 {
     return(this.BinarySearch <T2>(0, this.count, item, comparison));
 }
예제 #23
0
 public static SearchParam CreateParam(string name, string text, string param, SearchComparison comparison, object dataType)
 {
     return(new SqlSearchParam(name, text, param, comparison, dataType, true));
 }
 public ILobbySearchBuilder Filter(string key, SearchComparison comparison, string value)
 {
     //var comp = (LobbyComparison)((int)comparison);
     //_query.AddStringFilter(key, value, comp);
     return(this);
 }
예제 #25
0
        public static IEnumerable <PKM> FilterByFormat(IEnumerable <PKM> res, int format, SearchComparison formatOperand)
        {
            switch (formatOperand)
            {
            case SearchComparison.GreaterThanEquals:
                res = res.Where(pk => pk.Format >= format); break;

            case SearchComparison.Equals:
                res = res.Where(pk => pk.Format == format); break;

            case SearchComparison.LessThanEquals:
                res = res.Where(pk => pk.Format <= format); break;

            default:
                return(res);    /* Do nothing */
            }

            // Might need to clamp down further for generations that cannot exist in the current format.
            return(format switch
            {
예제 #26
0
 public abstract void AddFilter(string name, string text, SearchComparison comparison, object dataType);
예제 #27
0
 private bool IsComparisonCorrect <T>(T source, SearchComparison <T> comparison) where T : IComparable
 {
     return(SearchHelper.ConvertComparison(comparison).Invoke(source));
 }
예제 #28
0
 public static SearchParam CreateParam(string name, string text, string param, SearchComparison comparison, object dataType, object value)
 {
     return(new OleDbSearchParam(name, text, param, comparison, dataType, true)
     {
         Value = value
     });
 }
예제 #29
0
 public override void AddFilter(string name, string text, string param, SearchComparison comparison, object dataType, bool needCriteria)
 {
     _filters.Add(new SqlSearchParam(name, text, param, comparison, dataType, needCriteria));
 }
예제 #30
0
 public override void AddFilter(string name, string text, SearchComparison comparison, object dataType)
 {
     _filters.Add(new SqlSearchParam(name, text, name, comparison, dataType, true));
 }
예제 #31
0
파일: SearchUtil.cs 프로젝트: nixhex/PKHeX
        public static IEnumerable <PKM> FilterByFormat(IEnumerable <PKM> res, int format, SearchComparison formatOperand)
        {
            switch (formatOperand)
            {
            case SearchComparison.GreaterThanEquals:
                res = res.Where(pk => pk.Format >= format); break;

            case SearchComparison.Equals:
                res = res.Where(pk => pk.Format == format); break;

            case SearchComparison.LessThanEquals:
                res = res.Where(pk => pk.Format <= format); break;

            default:
                return(res);    /* Do nothing */
            }

            if (format <= 2) // 1-2
            {
                return(res.Where(pk => pk.Format <= 2));
            }
            if (format <= 6) // 3-6
            {
                return(res.Where(pk => pk.Format >= 3));
            }

            return(res);
        }
 public ILobbySearchBuilder Filter(string key, SearchComparison comparison, string value)
 {
     _query.Filter(key, (DiscordApp.LobbySearchComparison)comparison,
                   DiscordApp.LobbySearchCast.String, value);
     return(this);
 }
예제 #33
0
 public override void AddFilter(string name, string text, SearchComparison comparison, object dataType)
 {
     // cria e adiciona o novo filtro na lista
      var p = new OleDbSearchParam(name, text, comparison, dataType);
      filters.Add(p);
 }
예제 #34
0
 public static SearchParam CreateParam(string name, string text, string param, SearchComparison comparison, object dataType, bool needCriteria)
 {
     return(new OleDbSearchParam(name, text, param, comparison, dataType, needCriteria));
 }