Exemple #1
0
        /// <summary>
        /// 要進行登出,所以,清空本機快取資料
        /// </summary>
        /// <returns></returns>
        public static async Task CleanRepositories()
        {
            #region 要進行登出,所以,清空本機快取資料
            var fooSystemStatusRepository = new SystemStatusRepository();
            await fooSystemStatusRepository.ReadAsync();

            fooSystemStatusRepository.Item.AccessToken = "";
            await fooSystemStatusRepository.SaveAsync();

            var fooLoginRepository = new LoginRepository();
            fooLoginRepository.Item = new Models.UserLoginResultModel();
            await fooLoginRepository.SaveAsync();

            var fooWorkingLogRepository = new WorkingLogRepository();
            fooWorkingLogRepository.Items = new List <Models.WorkingLog>();
            await fooWorkingLogRepository.SaveAsync();

            var fooLeaveAppFormRepository = new LeaveAppFormRepository();
            fooLeaveAppFormRepository.Items = new List <Models.LeaveAppForm>();
            await fooLeaveAppFormRepository.SaveAsync(MainHelper.LeaveAppFormUserMode);

            await fooLeaveAppFormRepository.SaveAsync(MainHelper.LeaveAppFormManagerMode);

            #endregion
        }
Exemple #2
0
        /// <summary>
        /// 從本地端檔案,讀取快取資料
        /// </summary>
        /// <returns></returns>
        private async Task RefreshCache()
        {
            var fooWorkingLogRepository = new WorkingLogRepository();
            await fooWorkingLogRepository.ReadAsync();

            WorkingLogList.Clear();
            foreach (var item in fooWorkingLogRepository.Items)
            {
                WorkingLogList.Add(item);
            }
        }
Exemple #3
0
        /// <summary>
        /// 進行工作日誌清單更新
        /// </summary>
        /// <returns></returns>
        public async Task RetriveRecords()
        {
            #region 進行工作日誌清單更新
            APIResult fooResult;
            IsRefreshing = true;
            var fooProgressDialogConfig = new ProgressDialogConfig()
            {
                Title           = "請稍後,正在進行工作日誌清單更新中...",
                IsDeterministic = false,
            };
            using (Acr.UserDialogs.UserDialogs.Instance.Progress(fooProgressDialogConfig))
            {
                var fooLoginRepository = new LoginRepository();
                await fooLoginRepository.ReadAsync();

                var fooWorkingLogRepository = new WorkingLogRepository();
                fooResult = await fooWorkingLogRepository.GetByUserIDAsync(fooLoginRepository.Item.MyUser.EmployeeID);

                if (fooResult.Success == false)
                {
                    if (await MainHelper.CheckAccessToken(fooResult) == false)
                    {
                        IsRefreshing = false;
                        return;
                    }

                    try
                    {
                        var fooAlertConfig = new AlertConfig()
                        {
                            Title   = "警告",
                            Message = $"更新資料發生了錯誤 {Environment.NewLine}{fooResult.Message}",
                            OkText  = "確定"
                        };
                        CancellationTokenSource fooCancelSrc = new CancellationTokenSource(10000);
                        await Acr.UserDialogs.UserDialogs.Instance.AlertAsync(fooAlertConfig, fooCancelSrc.Token);
                    }
                    catch (OperationCanceledException)
                    {
                    }
                }
            }
            if (fooResult.Success == true)
            {
                await RefreshCache();
            }
            IsRefreshing = false;
            #endregion
        }