public static AnidbResult SearchGroups(ObservableCollection <Objects.Group> groups, string keyword, bool idsearch) { Objects.Group gr = new Objects.Group(); if (!string.IsNullOrEmpty(keyword)) { keyword = keyword.ToLowerInvariant(); if (idsearch) { gr = groups.Where(x => x.Enable && x.AnidbId == keyword.Replace("anidb-", "")).FirstOrDefault(); } else { string prepped_keyword = Utilities.Prepare_Keyword(keyword); // Presenter full match gr = groups.Where(x => x.Enable && x.Presenter.ToLowerInvariant().Contains(prepped_keyword)).FirstOrDefault(); // Presenter StartWith if (gr == null) { gr = groups.Where(x => x.Enable && x.Presenter.ToLowerInvariant().StartsWith(prepped_keyword.Replace("]", ""))).FirstOrDefault(); } // Presenter partial match if (gr == null) { gr = groups.Where(x => x.Enable && x.Presenter.ToLowerInvariant().Contains(keyword)).FirstOrDefault(); } // Members partial match if (gr == null) { gr = groups.Where(x => x.Enable && x.Members.ToLowerInvariant().Contains(keyword)).FirstOrDefault(); } } if (gr != null) { AnidbResult ar = new AnidbResult { aid = "xxx", presenter = gr.Presenter, keywords = gr.Members }; return(ar); } } return(null); }
public Groups(Objects.Group group) : base("groups", group) { // }