private void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) { IContainerProvider myContainer = (App.Current as PrismApplication).Container; AppExceptionsService appExceptionsService = myContainer .Resolve <AppExceptionsService>(); AppStatus appStatus = myContainer .Resolve <AppStatus>(); Task.Run(async() => { await appExceptionsService.ReadFromFileAsync(); ExceptionRecordDto fooObject = new ExceptionRecordDto() { CallStack = (e.ExceptionObject as Exception).StackTrace, ExceptionTime = DateTime.Now, Message = (e.ExceptionObject as Exception).Message, DeviceModel = DeviceInfo.Model, DeviceName = DeviceInfo.Name, OSType = DeviceInfo.Platform.ToString(), OSVersion = DeviceInfo.Version.ToString(), }; if (appStatus.SystemStatus.UserID <= 0) { fooObject.MyUserId = null; } else { fooObject.MyUserId = appStatus.SystemStatus.UserID; } appExceptionsService.Items.Add(fooObject); await appExceptionsService.WriteToFileAsync(); }).Wait(); }
public async Task <bool> LogoutCleanAsync(IProgressDialog progressDialog) { APIResult fooAPIResult; progressDialog.Title = $"檢查與更新存取權杖"; bool fooRefreshTokenResult = await RefreshTokenHelper .CheckAndRefreshToken(dialogService, refreshTokenService, systemStatusService, appStatus); if (fooRefreshTokenResult == false) { return(false); } progressDialog.Title = $"回報例外異常資料中"; #region 傳例外異常 await appExceptionsService.ReadFromFileAsync(); if (appExceptionsService.Items.Count > 0) { await appExceptionsService.ReadFromFileAsync(); var fooResult = await exceptionRecordsService.PostAsync(appExceptionsService.Items); if (fooResult.Status == true) { exceptionRecordsService.Items.Clear(); await exceptionRecordsService.WriteToFileAsync(); } else { await dialogService.DisplayAlertAsync("回報例外異常資料中 發生錯誤", fooResult.Message, "確定"); return(false); } } #endregion return(true); }
public async void OnNavigatedTo(INavigationParameters parameters) { #region 確認網路已經連線 //if (await UtilityHelper.CanConnectRemoteHostService() == false) //{ // await dialogService.DisplayAlertAsync("警告", "無網路連線可用 或者 無法連線到遠端主機,請檢查網路狀態與主機服務是否可以使用", "確定"); // return; //} #endregion #region 讀取相關定義資料 using (IProgressDialog fooIProgressDialog = UserDialogs.Instance.Loading($"請稍後,更新資料中...", null, null, true, MaskType.Clear)) { await AppStatusHelper.ReadAndUpdateAppStatus(systemStatusService, appStatus); #region 取得 連絡電話本 fooIProgressDialog.Title = "請稍後,取得 連絡電話本"; await onCallPhoneService.ReadFromFileAsync(); var fooResult = await onCallPhoneService.GetAsync(); if (fooResult.Status == true) { await onCallPhoneService.WriteToFileAsync(); } #endregion #region 取得 請假假別 fooIProgressDialog.Title = "請稍後,取得 請假假別"; await leaveCategoryService.ReadFromFileAsync(); fooResult = await leaveCategoryService.GetAsync(); if (fooResult.Status == true) { await leaveCategoryService.WriteToFileAsync(); } #endregion #region 取得 專案清單 fooIProgressDialog.Title = "請稍後,取得 專案清單"; await projectService.ReadFromFileAsync(); fooResult = await projectService.GetAsync(); if (fooResult.Status == true) { await projectService.WriteToFileAsync(); } #endregion #region 傳例外異常 fooIProgressDialog.Title = "請稍後,上傳例外異常"; await appExceptionsService.ReadFromFileAsync(); if (appExceptionsService.Items.Count > 0) { await appExceptionsService.ReadFromFileAsync(); fooResult = await exceptionRecordsService.PostAsync(appExceptionsService.Items); if (fooResult.Status == true) { appExceptionsService.Items.Clear(); await appExceptionsService.WriteToFileAsync(); } } #endregion } #endregion if (appStatus.SystemStatus.IsLogin == false) { // 使用者尚未成功登入,切換到登入頁面 await navigationService.NavigateAsync("/LoginPage"); return; } #region 使用者已經成功登入了,接下來要更新相關資料 using (IProgressDialog fooIProgressDialog = UserDialogs.Instance.Loading($"請稍後,更新資料中...", null, null, true, MaskType.Clear)) { #region 取得 使用者清單 fooIProgressDialog.Title = "請稍後,取得 使用者清單"; await myUserService.ReadFromFileAsync(); var fooResult = await myUserService.GetAsync(); if (fooResult.Status == true) { await myUserService.WriteToFileAsync(); } #endregion } // 使用者尚已經功登入,切換到首頁頁面 await navigationService.NavigateAsync("/MDPage/NaviPage/HomePage"); #endregion }