コード例 #1
0
ファイル: AsyncTaskQueue.cs プロジェクト: willcraftia/Blocks
        /// <summary>
        /// キューにある ResultInQueue を取り出し、コールバックします。
        /// </summary>
        void ProcessResult()
        {
            ResultInQueue resultInQueue;

            lock (resultQueue)
            {
                if (resultQueue.Count == 0)
                {
                    return;
                }

                resultInQueue = resultQueue.Dequeue();
            }

            var result = new AsyncTaskResult
            {
                State     = resultInQueue.State,
                Exception = resultInQueue.Exception
            };

            resultInQueue.ResultCallback(result);
        }
コード例 #2
0
ファイル: AsyncTaskQueue.cs プロジェクト: willcraftia/Blocks
        /// <summary>
        /// キューにある ResultInQueue を取り出し、コールバックします。
        /// </summary>
        void ProcessResult()
        {
            ResultInQueue resultInQueue;
            lock (resultQueue)
            {
                if (resultQueue.Count == 0) return;

                resultInQueue = resultQueue.Dequeue();
            }

            var result = new AsyncTaskResult
            {
                State = resultInQueue.State,
                Exception = resultInQueue.Exception
            };

            resultInQueue.ResultCallback(result);
        }
コード例 #3
0
ファイル: StartMenuWindow.cs プロジェクト: willcraftia/Blocks
        void UploadDemoContentsCallback(AsyncTaskResult result)
        {
            CloseProgressDialog();

            try
            {
                result.CheckException();

                ShowUploadedDialog();
            }
            catch (Exception e)
            {
                ShowErrorDialog(Strings.UploadDemoBlocksToBoxFailedMessage);
                Console.WriteLine(e.Message);
            }
        }
コード例 #4
0
ファイル: StartMenuWindow.cs プロジェクト: willcraftia/Blocks
        void RestoreSessionCallback(AsyncTaskResult result)
        {
            CloseProgressDialog();

            try
            {
                result.CheckException();

                if (viewModel.BoxSessionEnabled && viewModel.HasValidFolderTree)
                {
                    // 復元できたならば、その BoxSession を用いて Upload を開始します。
                    ShowConfirmUploadDialog();
                }
                else
                {
                    // 設定が存在しない、あるいは、設定にあるフォルダ情報が無効な場合は、
                    // それらを設定するために BoxSetupWizardDialog を表示します。
                    ShowBoxSetupWizardDialog();
                }
            }
            catch (Exception e)
            {
                ShowErrorDialog(Strings.BoxConnectionFailedMessage);
                Console.WriteLine(e.Message);
            }
        }
コード例 #5
0
        void SaveSettingsCallback(AsyncTaskResult result)
        {
            CloseProgressDialog();

            try
            {
                result.CheckException();

                ShowFinishTabItem();
            }
            catch (Exception e)
            {
                HandleWebException(e);
            }
        }
コード例 #6
0
        void PrepareFolderTreeCallback(AsyncTaskResult result)
        {
            CloseProgressDialog();

            try
            {
                result.CheckException();

                ShowSaveSettingsTabItem();
            }
            catch (Exception e)
            {
                HandleWebException(e);
            }
        }
コード例 #7
0
        void GetTicketCallback(AsyncTaskResult result)
        {
            CloseProgressDialog();

            try
            {
                result.CheckException();

                ShowAuthorizationTabItem();
            }
            catch (Exception e)
            {
                HandleWebException(e);
            }
        }
コード例 #8
0
        void AccessAccountCallback(AsyncTaskResult result)
        {
            CloseProgressDialog();

            try
            {
                result.CheckException();

                ShowCreateFolderTabItem();
            }
            catch (Exception e)
            {
                HandleWebException(e);
            }
        }