コード例 #1
0
        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));
        }
コード例 #2
0
        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);
            }
        }
コード例 #3
0
        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); }
        }