/// <summary>画像をダウンロードする</summary> /// <param name="userInfo">ユーザ情報</param> /// <param name="imageStream">画像データの出力</param> /// <returns>ダウンロード成功かどうか</returns> private bool TryDownloadImage(IUserInfo userInfo, out MemoryStream imageStream) { try { var request = WebRequest.CreateHttp(userInfo.ProfileImageUrl); var response = request.GetResponse(); var stream = response.GetResponseStream(); var dataStream = new MemoryStream(); stream.CopyTo(dataStream); dataStream.Position = 0; ProfileImageCache.ShrinkImageData(ref dataStream); imageStream = dataStream; return(true); } catch { imageStream = null; return(false); } }
/// <summary> /// アプリケーションの起動 /// </summary> /// <param name="e"></param> protected override void OnStartup(StartupEventArgs e) { base.OnStartup(e); // 作業ディレクトリの再指定(自動起動時に作業ディレクトリが変わってしまう対策) Directory.SetCurrentDirectory(GetLocalDirectory()); // 設定ファイルを読み込む try { var task = this.LoadSettings(); task.Wait(); } catch (Exception ex) { System.Windows.MessageBox.Show(ex.GetMessage(), App.Name, MessageBoxButton.OK, MessageBoxImage.Error); Debug.WriteLine(ex.Message); Debug.WriteLine(ex.StackTrace); this.ForceShutdown(); return; } this.UIManager = new UISettingManager(this, App.Setting); this.UIManager.Apply(); this.TaskbarIcon = this.TryFindResource("taskbarIcon") as TaskbarIcon; ProfileImageCache = new ProfileImageCache(); if (!App.Accounts.Any() && !this.IsNeedInitialUserSettings()) { this.ForceShutdown(); return; } this.SetNetworkConnectConfiguration(); this.StartClient(); }