Beispiel #1
0
        public async Task <bool> LogoutCleanAsync(IProgressDialog progressDialog)
        {
            APIResult fooAPIResult;

            progressDialog.Title = $"檢查與更新存取權杖";
            bool fooRefreshTokenResult = await RefreshTokenHelper.CheckAndRefreshToken(dialogService, refreshTokenManager, systemStatusManager, appStatus);

            if (fooRefreshTokenResult == false)
            {
                return(false);
            }

            await leaveFormsManager.ReadFromFileAsync();

            leaveFormsManager.Items.Clear();
            await leaveFormsManager.WriteToFileAsync();

            progressDialog.Title = $"回報例外異常資料中";
            await exceptionRecordsManager.ReadFromFileAsync();

            if (exceptionRecordsManager.Items.Count > 0)
            {
                List <ExceptionRecordRequestDTO> fooExceptionRecordRequestDTOList = new List <ExceptionRecordRequestDTO>();
                foreach (var item in exceptionRecordsManager.Items)
                {
                    ExceptionRecordRequestDTO fooExceptionRecordRequestDTO = new ExceptionRecordRequestDTO()
                    {
                        CallStack     = item.CallStack,
                        DeviceModel   = item.DeviceModel,
                        DeviceName    = item.DeviceName,
                        ExceptionTime = item.ExceptionTime,
                        Message       = item.Message,
                        OSType        = item.OSType,
                        OSVersion     = item.OSVersion,
                        User          = new UserDTO()
                        {
                            Id = appStatus.SystemStatus.UserID
                        },
                    };
                    fooExceptionRecordRequestDTOList.Add(fooExceptionRecordRequestDTO);
                }
                fooAPIResult = await exceptionRecordsManager.PostAsync(fooExceptionRecordRequestDTOList);

                if (fooAPIResult.Status != true)
                {
                    await dialogService.DisplayAlertAsync("回報例外異常資料中 發生錯誤", fooAPIResult.Message, "確定");

                    return(false);
                }
            }

            return(true);
        }
        public async void OnNavigatedTo(INavigationParameters parameters)
        {
            var naviMode = parameters.GetNavigationMode();

            if (naviMode == NavigationMode.New)
            {
                await leaveFormTypesManager.ReadFromFileAsync();

                await leaveFormsManager.ReadFromFileAsync();
                await LoadDataAsync(false);
            }
            else
            {
                bool fooNeedRefresh = parameters.GetValue <bool>("NeedRefresh");
                if (fooNeedRefresh == true)
                {
                    await LoadDataAsync();
                }
            }
        }