Exemplo n.º 1
0
 void Recieved_DialogMessage(DialogOptionInfo message)
 {
     Dispatcher.InvokeAsync(async () =>
         {
             var res = await this.ShowMessageAsync(message.Title, message.Message, message.Style, message.Settings);
             message.CallbackTaskSource.SetResult(res);
         });
 }
Exemplo n.º 2
0
        async Task Activate()
        {
            try
            {
                await _syncerActivities.WaitAsync().ConfigureAwait(false);
                if (IsActive == false)
                    return;

                SelectedIndex = 0;
                IsLoading = true;
                if (await _accountModel.Activate().ConfigureAwait(false))
                {
                    UserName = _accountModel.MyProfile.Name;
                    UserIconUrl = await DataCacheDictionary.DownloadImage(
                        new Uri(_accountModel.Builder.IconUrl
                            .Replace("$SIZE_SEGMENT", "s38-c-k")
                            .Replace("$SIZE_NUM", "80"))).ConfigureAwait(false);
                }
                else
                {
                    //例外発生時はreturnされずにここまで実行される
                    var message = new DialogOptionInfo(
                        "Error", "ストリームの初期化に失敗しました。ネットワークの設定を確認して下さい。",
                        style: MessageDialogStyle.AffirmativeAndNegative,
                        setting: new MetroDialogSettings() { AffirmativeButtonText = "再接続", NegativeButtonText = "別のアカウントを使う" });
                    Messenger.Default.Send(message);
                    switch (await message.CallbackTask.ConfigureAwait(false))
                    {
                        case MessageDialogResult.Affirmative:
                            var tsk = Activate();
                            break;
                        case MessageDialogResult.Negative:
                            _manager.IsAccountSelectorMode = true;
                            _manager.SelectedPageIndex = -1;
                            break;
                    }
                }
            }
            finally
            {
                IsLoading = false;
                _syncerActivities.Release();
            }
        }
Exemplo n.º 3
0
 public void Initialize()
 {
     Task.Run(async () =>
         {
             if (IsInDesignMode)
             {
                 // Code runs in Blend --> create design time data.
             }
             else if (await _accountManagerModel.Initialize().ConfigureAwait(false) == false)
             {
                 var message = new DialogOptionInfo(
                     "Error", "アカウント一覧の読み込みに失敗しました。ネットワークの設定を確認して下さい。",
                     setting: new MetroDialogSettings() { AffirmativeButtonText = "再接続" });
                 Messenger.Default.Send(message);
                 var tmp = message.CallbackTask.ContinueWith(tsk => Initialize());
             }
         });
 }