public static List <EpgAutoAddData> FazySearchEpgAutoAddData(string title, bool?IsEnabled = null) { Func <string, string> _regulate_str = s => CommonManager.AdjustSearchText(TrimKeyword(s)); string title_key = _regulate_str(title); List <EpgAutoAddData> list = CommonManager.Instance.DB.EpgAutoAddList.Values .Where(data => data.DataTitle != "" && title_key.Contains(_regulate_str(data.DataTitle)) == true).ToList(); foreach (ReserveData info in CommonManager.Instance.DB.ReserveList.Values .Where(data => data.DataTitle != "" && title_key == _regulate_str(data.DataTitle))) { list.AddRange(info.GetEpgAutoAddList()); } list = list.Distinct().ToList(); return(IsEnabled == null ? list : list.FindAll(data => data.IsEnabled == IsEnabled)); }
private void button_Jump_Click(object sender, RoutedEventArgs e) { if (string.IsNullOrWhiteSpace(text_SearchKey.Text) == true) { return; } if (TargetListBox == null || TargetListBox.Items.Count == 0) { return; } int idx = (TargetListBox.SelectedIndex + 1) % TargetListBox.Items.Count; var list = TargetListBox.Items.OfType <object>().Skip(idx).Concat(TargetListBox.Items.OfType <object>().Take(idx)); string key = CommonManager.AdjustSearchText(text_SearchKey.Text.Trim()); object hit = list.FirstOrDefault(item => CommonManager.AdjustSearchText(item.ToString()).Contains(key)); if (hit != null) { TargetListBox.UnselectAll(); TargetListBox.SelectedItem = hit; TargetListBox.ScrollIntoView(TargetListBox.SelectedItem); } }
private void Search() { try { lstCtrl.ReloadInfoData(dataList => { var targetItems = new List <IRecWorkMainData>(); if (SearchInfo.ReserveInfo == true) { targetItems.AddRange(CommonManager.Instance.DB.ReserveList.Values); } if (SearchInfo.RecInfo == true) { //起動直後は読み込んでない場合がある。 CommonManager.Instance.DB.ReloadRecFileInfo(); //詳細情報が必要な場合はあらかじめ読込んでおく。 if (SearchInfo.TitleOnly == false) { CommonManager.Instance.DB.ReadRecFileAppend(); } targetItems.AddRange(CommonManager.Instance.DB.RecFileInfo.Values); } if (SearchInfo.EpgAutoAddInfo == true) { targetItems.AddRange(CommonManager.Instance.DB.EpgAutoAddList.Values); } if (SearchInfo.ManualAutoAddInfo == true) { targetItems.AddRange(CommonManager.Instance.DB.ManualAutoAddList.Values); } string sText = CommonManager.AdjustSearchText(SearchInfo.SearchWord); if (SearchInfo.RegExp == true) { dataList.AddRange(InfoSearchItem.Items(targetItems).Where(data => { string trgText = data.GetSearchText(SearchInfo.TitleOnly); trgText = CommonManager.ReplaceUrl(trgText).ToLower(); return(Regex.Match(trgText, sText).Success); })); } else { string[] sWords = sText.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); dataList.AddRange(InfoSearchItem.Items(targetItems).Where(data => { //検索ワードで対象のタイトルまたは詳細をAND検索 string trgText = data.GetSearchText(SearchInfo.TitleOnly); trgText = CommonManager.AdjustSearchText(trgText).Replace(" ", ""); if (sWords.All(word => trgText.Contains(word)) == true) { return(true); } //キーワード予約を考慮し、逆に対象のタイトルで検索ワードのAND検索もしておく。 string[] trgWords = CommonManager.AdjustSearchText(data.DataTitle).Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); return(trgWords.Any() == true && trgWords.All(word => sText.Contains(word))); })); } ToolTipCheck(); return(true); }); this.Title = ViewUtil.WindowTitleText(SearchInfo.SearchWord, "予約情報検索"); UpdateStatus(); } catch (Exception ex) { MessageBox.Show(ex.Message + "\r\n" + ex.StackTrace); } }