Ejemplo n.º 1
0
        public ViewResult Search(string query, AdvancedSearchOptions opt)
        {
            var q       = (query ?? "").Trim().ToLower();
            var options = opt ?? new AdvancedSearchOptions();
            IEnumerable <Monster> results;

            if (string.IsNullOrWhiteSpace(query))
            {
                results = null;
            }
            else
            {
                var categories = options.Categories ?? new string[0];
                results = MonstersRepository.Get().Monsters
                          .Where(m =>
                                 (m.Name.ToLower().Contains(q) || m.Description.ToLower().Contains(q)) &&
                                 (!options.IsDangerous || m.IsDangerous) &&
                                 (categories.All(cat => m.Categories.Contains(cat))));
            }

            this.ViewBag.AllCategories = MonstersRepository.Get().Categories;
            return(View("Search", new SearchFormModel()
            {
                SearchString = q, Options = options, Results = results
            }));
        }
Ejemplo n.º 2
0
        protected static AdvancedSearchOptions GetAdvancedSearchOptions(UriHandlerData data)
        {
            var advanced = new AdvancedSearchOptions();

            foreach (var item in data.Queries)
            {
                var b = item.Value.QueryValueAsBoolean();
                switch (item.Key)
                {
                case "f_sname":
                    advanced.SearchName = b;
                    break;

                case "f_stags":
                    advanced.SearchTags = b;
                    break;

                case "f_sdesc":
                    advanced.SearchDescription = b;
                    break;

                case "f_storr":
                    advanced.SearchTorrentFilenames = b;
                    break;

                case "f_sto":
                    advanced.GalleriesWithTorrentsOnly = b;
                    break;

                case "f_sdt1":
                    advanced.SearchLowPowerTags = b;
                    break;

                case "f_sdt2":
                    advanced.SearchDownvotedTags = b;
                    break;

                case "f_sh":
                    advanced.ShowExpungedGalleries = b;
                    break;

                case "f_sr":
                    advanced.SearchMinimumRating = b;
                    break;

                case "f_srdd":
                    advanced.MinimumRating = item.Value.QueryValueAsInt32();
                    break;

                case "skip_mastertags":
                    advanced.SkipMasterTags = b;
                    break;
                }
            }
            return(advanced);
        }
Ejemplo n.º 3
0
 protected static AdvancedSearchOptions GetAdvancedSearchOptions(UriHandlerData data)
 => AdvancedSearchOptions.ParseUri(data);
Ejemplo n.º 4
0
 public CategorySearchResult Search(Category filter, AdvancedSearchOptions advancedSearch)
 => Client.Current.Search(ToSearchTerm(), filter, advancedSearch);
Ejemplo n.º 5
0
 public AdvancedSearchResult Search(string keyword, Category category, AdvancedSearchOptions advancedSearch)
 {
     return(AdvancedSearchResult.Search(keyword, category, advancedSearch));
 }
Ejemplo n.º 6
0
        public AdvancedSearchResult Search(string uploader, string keyword, Category category, AdvancedSearchOptions advancedSearch)
        {
            if (string.IsNullOrWhiteSpace(uploader))
            {
                throw new ArgumentNullException(nameof(uploader));
            }
            uploader = uploader.Trim();
            var formarttedUploader = uploader.IndexOf(' ') >= 0 ? $"uploader:\"{uploader}\" " : $"uploader:{uploader} ";

            return(Search(formarttedUploader + keyword, category, advancedSearch));
        }
Ejemplo n.º 7
0
        /// <summary>
        ///     Advanced search
        /// </summary>
        /// <param name="searchOptions">Advanced search options</param>
        /// <returns>List of stations</returns>
        public async Task <List <StationInfo> > AdvancedAsync(AdvancedSearchOptions searchOptions)
        {
            var json = await _httpClient.GetAsync($"stations/search?{Converters.GetQueryString(searchOptions)}");

            return(_converters.ToStationsList(json));
        }
Ejemplo n.º 8
0
 public AdvancedSearchResult Search(string uploader, string keyword, Category category, AdvancedSearchOptions advancedSearch)
 {
     if (string.IsNullOrWhiteSpace(uploader))
     {
         throw new ArgumentNullException(nameof(uploader));
     }
     uploader = uploader.Trim();
     if (uploader.IndexOf(' ') >= 0)
     {
         keyword = $"uploader:\"{uploader}\" " + keyword;
     }
     else
     {
         keyword = $"uploader:{uploader} " + keyword;
     }
     return(Search(keyword, category, advancedSearch));
 }
Ejemplo n.º 9
0
 public WatchedSearchResult SearchWatched(string keyword, Category category, AdvancedSearchOptions advancedSearch)
 => WatchedSearchResult.Search(keyword, category, advancedSearch);