Пример #1
0
 private static void UpdateTuner()
 {
     try
     {
         using (Sql sql = new Sql(true))
         {
             Log.Write("チューナを更新しています...");
             Tuner.Update(sql);
             Log.Write("サービスを更新しています...");
             bool arg_37_0 = Program.UpdateService(sql);
             Log.Write("余分なデータを削除しています...");
             Program.Cleanup(sql);
             if (arg_37_0)
             {
                 MessageBox.Show("サービスが重複しています。\nこのままでも使用できますが、TVTestのチャンネルスキャンで同じ放送局を1つを残して他は無効(チェックを外す)にすることをおすすめします。", AppData.AppName);
             }
         }
         Log.Write("チューナ更新が完了しました。");
     }
     catch (Exception ex)
     {
         MessageBox.Show("チューナの読み込みに失敗しました。[詳細]" + ex.Message, AppData.AppName);
         throw;
     }
 }
Пример #2
0
        static void UpdateTuner()
        {
            try
            {
                using (var sql = new Sql(true))
                {
                    Log.Write("チューナを更新しています...");
                    Tuner.Update(sql);    //チューナ更新(DB更新)

                    //サービス更新
                    Log.Write("サービスを更新しています...");

                    sql.Text = "delete from service";
                    sql.Execute();

                    var tuners = new List <Tuner>();
                    sql.Text = "select * from tuner group by driver ";
                    using (var table = sql.GetTable())
                    {
                        while (table.Read())
                        {
                            tuners.Add(new Tuner(table));
                        }
                    }
                    bool dup = false;
                    foreach (Tuner tuner in tuners)
                    {
                        try
                        {
                            tuner.GetServices(sql); //サービスをTVTestから読み込み
                        }
                        catch (DupServiceException)
                        {
                            dup = true;
                        }
                    }

                    //以前から残っている番組で、新しくなったサービスにないものは削除する
                    sql.Text = "delete from event where fsid not in (select fsid from service group by fsid)";
                    sql.Execute();

                    //同ユーザ番組表
                    sql.Text = "delete from user_epg where fsid not in (select fsid from service group by fsid)";
                    sql.Execute();

                    //同予約
                    sql.Text = "delete from record where fsid not in (select fsid from service group by fsid)";
                    sql.Execute();

                    //予約でチューナがないものは削除
                    sql.Text = "delete from record where tuner not in (select name from tuner)";
                    sql.Execute();

                    if (dup)
                    {
                        MessageBox.Show("サービスが重複しています。\nこのままでも使用できますが、TVTestのチャンネルスキャンで同じ放送局を1つを残して他は無効(チェックを外す)にすることをおすすめします。", Program.Logo);
                    }
                }
                Log.Write("チューナ更新が完了しました。");
            }
            catch (Exception e)
            {
                MessageBox.Show("チューナの読み込みに失敗しました。[詳細]" + e.Message, Program.Logo);
                throw;
            }
        }