示例#1
0
        /// <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);
            }
        }
示例#2
0
        /// <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();
        }