コード例 #1
0
ファイル: AuctionRequest.cs プロジェクト: OlegGelezcov/neb
 public void RemoveFilter(AuctionFilter filter)
 {
     if (filters.ContainsKey((byte)filter.filterType))
     {
         List <AuctionFilter> typedFilters = null;
         if (filters.TryGetValue((byte)filter.filterType, out typedFilters))
         {
             var existing = typedFilters.Find(f => f.key == filter.key);
             if (existing != null)
             {
                 typedFilters.Remove(existing);
             }
         }
     }
 }
コード例 #2
0
ファイル: AuctionRequest.cs プロジェクト: OlegGelezcov/neb
        public void SetFilter(AuctionFilter filter)
        {
            //if already hav filters such type
            if (filters.ContainsKey((byte)filter.filterType))
            {
                List <AuctionFilter> typedFilters = null;
                //get typed filters list
                if (filters.TryGetValue((byte)filter.filterType, out typedFilters))
                {
                    //try find in typed list filter with same key
                    var existingFilter = typedFilters.Find(f => f.key == filter.key);

                    //if not found add new filter,
                    if (existingFilter == null)
                    {
                        typedFilters.Add(filter);
                    }
                    else
                    {
                        //and if found with same key, delete old filter and add new filter
                        int index = typedFilters.FindIndex(f => f.key == filter.key);
                        if (index >= 0)
                        {
                            typedFilters.RemoveAt(index);
                        }
                        typedFilters.Add(filter);
                    }
                }
            }
            else
            {
                filters.Add((byte)filter.filterType, new List <AuctionFilter> {
                    filter
                });
            }
        }