public async void Initialize() { await GetGlobalLock(); try { Util.LogHandlers.Add(AddLog); Server = new EncodeServer(App.Option.ServerPort, null, async() => { await RealCloseWindow(); }); await Server.Init(); RaisePropertyChanged(nameof(Server)); WindowCaption = "AmatsukazeServer" + Server.Version + "@" + Dns.GetHostName() + ":" + App.Option.ServerPort; // SleepCancel SleepCancelVM = new SleepCancelViewModel() { Model = Server }; var modelListener = new PropertyChangedEventListener(Server); modelListener.Add(() => Server.SleepCancel, (_, __) => ShowOrCloseSleepCancel()); CompositeDisposable.Add(modelListener); } catch (Exception e) { var message = new InformationMessage( "起動処理でエラーが発生しました\r\n" + e.Message + "\r\n" + e.StackTrace, "AmatsukazeServer", "Message"); await Messenger.RaiseAsync(message); await RealCloseWindow(); } if (App.Option.LaunchType == LaunchType.Debug) { var asm = Assembly.GetExecutingAssembly().GetName(); Process.Start(new ProcessStartInfo() { FileName = $"{AppContext.BaseDirectory}{asm.Name}.exe", Arguments = "--launch client", }); } }
public MainWindowViewModel() { Model = new ClientModel(); ConsoleList = new ObservableViewModelCollection <ConsoleViewModel, DisplayConsole>( Model.ConsoleList, console => new ConsoleViewModel() { Name = "コンソール" + (console.Id), ShortName = (console.Id).ToString(), Model = console }); QueueVM = new QueueViewModel() { Name = "キュー", Model = Model, MainPanel = this }; MainPanelMenu.Add(QueueVM); MainPanelMenu.Add(new LogViewModel() { Name = "ログ", Model = Model }); MainPanelMenu.Add(new ProfileSettingViewModel() { Name = "プロファイル", Model = Model }); MainPanelMenu.Add(new AutoSelectSettingViewModel() { Name = "自動選択", Model = Model }); MainPanelMenu.Add(new ServiceSettingViewModel() { Name = "チャンネル設定", Model = Model }); MainPanelMenu.Add(new SettingViewModel() { Name = "基本設定", Model = Model }); ConsolePanelMenu.Add(new LogFileViewModel() { Name = "ログファイル", Model = Model }); InfoPanelMenu.Add(new SummaryViewModel() { Name = "サマリー", Model = Model, MainPanel = this }); InfoPanelMenu.Add(new DrcsImageListViewModel() { Name = "DRCS外字", Model = Model }); InfoPanelMenu.Add(new AddQueueConsoleViewModel() { Name = "追加コンソール", Model = Model }); InfoPanelMenu.Add(new DiskFreeSpaceViewModel() { Name = "ディスク空き", Model = Model }); InfoPanelMenu.Add(new MakeScriptViewModel() { Name = "その他", Model = Model }); InfoPanelMenu.Add(new ClientLogViewModel() { Name = "クライアントログ", Model = Model }); SleepCancelVM = new SleepCancelViewModel() { Model = Model }; }