Exemplo n.º 1
0
        private static void Initialize(Settings settings, OptionItems options, PatrolTable patterns)
        {
            if (initialized)
            {
                throw new InvalidOperationException("既に初期化されています");
            }
            if (settings == null)
            {
                throw new ArgumentNullException("settings");
            }
            OnInitializing();

            //シリアル化インスタンス
            //アプリケーション設定
            currentSettings = settings;
            currentSettings.MarkCrush();
            //ユーザー設定
            Options = options;
            Options.ItemsChanged += new EventHandler(Options_ItemsChanged);
            //巡回設定
            PatrolPatterns = patterns;

            //オプション
            InitializeOptions();

            //バージョンテキスト
            version = System.Windows.Forms.Application.ProductVersion;
            if (version.EndsWith(TrimedTailVersionText))
            {
                version = version.Substring(0, version.Length - TrimedTailVersionText.Length);
            }
            //if (IsBeta)
            //{
            //    version += "β";
            //}

            //詳細情報
            currentSettings.Information.LastUptime = DateTime.Now;

            //作業フォルダー
            if (System.IO.Directory.Exists(DeanCCCore.Core.VersionUp.VersionUpClient.NewVersionFolder))
            {
                System.IO.Directory.Delete(DeanCCCore.Core.VersionUp.VersionUpClient.NewVersionFolder, true);
            }

            //板一覧
            if (settings.FirstRunning)
            {
                try
                {
                    currentSettings.Boards.OnlineUpdate();
                }
                catch (ApplicationException ex)
                {
                    currentSettings.Boards.LoadBoardFromXml();
                    logs.Add("板一覧更新", ex.Message + " デフォルトの板一覧を読み込みます。", LogStatus.Error);
                }
                catch (System.Net.WebException ex)
                {
                    currentSettings.Boards.LoadBoardFromXml();
                    logs.Add("通信エラー", ex.Message + " デフォルトの板一覧を読み込みます。", LogStatus.Error);
                }
            }

            //スレッド一覧
            UpdateThreads();

            OnInitialized();
        }