public static async Task <bool> UserLogoutAsync(IPageDialogService dialogService, LoginManager loginManager, SystemStatusManager systemStatusManager, AppStatus appStatus) { await systemStatusManager.ReadFromFileAsync(); await loginManager.ReadFromFileAsync(); loginManager.SingleItem = new LoginResponseDTO(); await loginManager.WriteToFileAsync(); systemStatusManager.SingleItem.UserID = loginManager.SingleItem.Id; systemStatusManager.SingleItem.Account = loginManager.SingleItem.Account; systemStatusManager.SingleItem.Department = loginManager.SingleItem.Department; systemStatusManager.SingleItem.IsLogin = false; systemStatusManager.SingleItem.LoginedTime = DateTime.Now; systemStatusManager.SingleItem.Token = loginManager.SingleItem.Token; systemStatusManager.SingleItem.RefreshToken = loginManager.SingleItem.RefreshToken; systemStatusManager.SingleItem.TokenExpireMinutes = loginManager.SingleItem.TokenExpireMinutes; systemStatusManager.SingleItem.RefreshTokenExpireDays = loginManager.SingleItem.RefreshTokenExpireDays; systemStatusManager.SingleItem.SetExpireDatetime(); //await systemStatusManager.WriteToFileAsync(); await AppStatusHelper.WriteAndUpdateAppStatus(systemStatusManager, appStatus); return(true); }
public LoginPageViewModel(INavigationService navigationService, IPageDialogService dialogService, LoginManager loginManager, SystemStatusManager systemStatusManager, AppStatus appStatus, RecordCacheHelper recordCacheHelper) { this.navigationService = navigationService; this.dialogService = dialogService; this.loginManager = loginManager; this.systemStatusManager = systemStatusManager; this.appStatus = appStatus; this.recordCacheHelper = recordCacheHelper; LoginCommand = new DelegateCommand(async() => { using (IProgressDialog fooIProgressDialog = UserDialogs.Instance.Loading($"請稍後,更新資料中...", null, null, true, MaskType.Black)) { LoginRequestDTO loginRequestDTO = new LoginRequestDTO() { Account = Account, Password = Password, }; var fooResult = await LoginUpdateTokenHelper.UserLoginAsync(dialogService, loginManager, systemStatusManager, loginRequestDTO, appStatus); if (fooResult == false) { return; } await recordCacheHelper.RefreshAsync(fooIProgressDialog); } //await dialogService.DisplayAlertAsync("Info", "登入成功", "OK"); await navigationService.NavigateAsync("/MDPage/NaviPage/HomePage"); }); }
public static async Task <bool> UserLoginAsync(IPageDialogService dialogService, LoginManager loginManager, SystemStatusManager systemStatusManager, LoginRequestDTO loginRequestDTO, AppStatus appStatus) { var fooResult = await loginManager.PostAsync(loginRequestDTO); if (fooResult.Status != true) { await dialogService.DisplayAlertAsync("發生錯誤", fooResult.Message, "確定"); return(false); } systemStatusManager.SingleItem.UserID = loginManager.SingleItem.Id; systemStatusManager.SingleItem.Account = loginManager.SingleItem.Account; systemStatusManager.SingleItem.Department = loginManager.SingleItem.Department; systemStatusManager.SingleItem.IsLogin = true; systemStatusManager.SingleItem.LoginedTime = DateTime.Now; systemStatusManager.SingleItem.Token = loginManager.SingleItem.Token; systemStatusManager.SingleItem.RefreshToken = loginManager.SingleItem.RefreshToken; systemStatusManager.SingleItem.TokenExpireMinutes = loginManager.SingleItem.TokenExpireMinutes; systemStatusManager.SingleItem.RefreshTokenExpireDays = loginManager.SingleItem.RefreshTokenExpireDays; systemStatusManager.SingleItem.SetExpireDatetime(); //await systemStatusManager.WriteToFileAsync(); await AppStatusHelper.WriteAndUpdateAppStatus(systemStatusManager, appStatus); return(true); }
public static async Task <bool> WriteAndUpdateAppStatus(SystemStatusManager systemStatusManager, AppStatus appStatus) { await systemStatusManager.WriteToFileAsync(); appStatus.SystemStatus = systemStatusManager.SingleItem; return(true); }
public LogoutCleanHelper(IPageDialogService dialogService, DepartmentsManager departmentsManager, SystemEnvironmentsManager systemEnvironmentsManager, SystemStatusManager systemStatusManager, AppStatus appStatus, RefreshTokenManager refreshTokenManager, ExceptionRecordsManager exceptionRecordsManager, LeaveFormsManager leaveFormsManager, CommUserGroupsManager commUserGroupsManager) { this.dialogService = dialogService; this.departmentsManager = departmentsManager; this.systemEnvironmentsManager = systemEnvironmentsManager; this.systemStatusManager = systemStatusManager; this.appStatus = appStatus; this.refreshTokenManager = refreshTokenManager; this.exceptionRecordsManager = exceptionRecordsManager; this.leaveFormsManager = leaveFormsManager; }
public LeaveFormPageViewModel(INavigationService navigationService, IPageDialogService dialogService, LeaveFormsManager leaveFormsManager, LeaveFormTypesManager leaveFormTypesManager, RefreshTokenManager refreshTokenManager, SystemStatusManager systemStatusManager, AppStatus appStatus) { this.navigationService = navigationService; this.dialogService = dialogService; this.leaveFormsManager = leaveFormsManager; this.leaveFormTypesManager = leaveFormTypesManager; this.refreshTokenManager = refreshTokenManager; this.systemStatusManager = systemStatusManager; this.appStatus = appStatus; RefreshCommand = new DelegateCommand(async() => { IsRefreshing = true; await LoadDataAsync(); IsRefreshing = false; }); AddCommand = new DelegateCommand(async() => { LeaveFormModel leaveFormModel = new LeaveFormModel() { BeginTime = DateTime.Today + new TimeSpan(09, 00, 00), EndTime = DateTime.Today + new TimeSpan(18, 00, 00), Id = 0, TotalHours = 8, user = new UserDTO() { Id = appStatus.SystemStatus.UserID }, Description = "請假原因", leaveFormType = new LeaveFormTypeModel() { Id = leaveFormTypesManager.Items[0].Id, Name = leaveFormTypesManager.Items[0].Name }, }; NavigationParameters fooPara = new NavigationParameters(); fooPara.Add("Record", leaveFormModel); await navigationService.NavigateAsync("LeaveFormDetailPage", fooPara); }); ItemTappedCommand = new DelegateCommand(async() => { var leaveFormSelectedItemClone = LeaveFormSelectedItem.Clone(); NavigationParameters fooPara = new NavigationParameters(); fooPara.Add("Record", leaveFormSelectedItemClone); await navigationService.NavigateAsync("LeaveFormDetailPage", fooPara); }); }
public MDPageViewModel(INavigationService navigationService, IPageDialogService dialogService, LoginManager loginManager, SystemStatusManager systemStatusManager, AppStatus appStatus, LogoutCleanHelper logoutCleanHelper) { this.navigationService = navigationService; this.dialogService = dialogService; this.loginManager = loginManager; this.systemStatusManager = systemStatusManager; this.appStatus = appStatus; this.logoutCleanHelper = logoutCleanHelper; HomeCommand = new DelegateCommand(async() => { await navigationService.NavigateAsync("/MDPage/NaviPage/HomePage"); }); SuggestionCommand = new DelegateCommand(async() => { await navigationService.NavigateAsync("/MDPage/NaviPage/SuggestionPage"); }); ExceptionCommand = new DelegateCommand(() => { throw new Exception("發生了一個自訂的例外異常"); }); UserGroupCommand = new DelegateCommand(async() => { await navigationService.NavigateAsync("/MDPage/NaviPage/CommUsePage"); }); LeaveFormCommand = new DelegateCommand(async() => { await navigationService.NavigateAsync("/MDPage/NaviPage/LeaveFormPage"); }); LogoutCommand = new DelegateCommand(async() => { using (IProgressDialog fooIProgressDialog = UserDialogs.Instance.Loading($"請稍後,更新資料中...", null, null, true, MaskType.Black)) { await logoutCleanHelper.LogoutCleanAsync(fooIProgressDialog); var fooResult = await LoginUpdateTokenHelper.UserLogoutAsync(dialogService, loginManager, systemStatusManager, appStatus); if (fooResult == true) { await navigationService.NavigateAsync("/LoginPage"); } } }); }
public SuggestionPageViewModel(INavigationService navigationService, IPageDialogService dialogService, RefreshTokenManager refreshTokenManager, SystemStatusManager systemStatusManager, AppStatus appStatus, SuggestionsManager suggestionsManager) { this.navigationService = navigationService; this.dialogService = dialogService; this.refreshTokenManager = refreshTokenManager; this.systemStatusManager = systemStatusManager; this.appStatus = appStatus; this.suggestionsManager = suggestionsManager; OKCommand = new DelegateCommand(async() => { using (IProgressDialog fooIProgressDialog = UserDialogs.Instance.Loading($"請稍後,更新資料中...", null, null, true, MaskType.Black)) { bool fooRefreshTokenResult = await RefreshTokenHelper.CheckAndRefreshToken(dialogService, refreshTokenManager, systemStatusManager, appStatus); if (fooRefreshTokenResult == false) { return; } var fooResult = await suggestionsManager.PostAsync(new SuggestionRequestDTO() { Subject = SuggestionModel.Subject, Message = SuggestionModel.Message, SubmitTime = DateTime.Now, User = new UserDTO() { Id = appStatus.SystemStatus.UserID }, }); if (fooResult.Status == true) { await dialogService.DisplayAlertAsync("通知", "已經成功提交", "確定"); } else { await dialogService.DisplayAlertAsync("錯誤", $"已經發生例外異常:{fooResult.Message}", "確定"); } } }); }
public ActionResult Index() { if (User.IsInRole("ExternoVerificarFacturas")) { return(RedirectToAction("List", "ExternalInvoice")); } if (User.IsInRole("Facturador")) { return(RedirectToAction("List", "Contract")); } // Barcos var sda = new ShipDataAccess(context); var sman = new ShipManager(); var spman = new ShipPositionManager(); var asprda = new ActiveShipPositionRequestDataAccess(context); List <Ship> barcos = sda.GetAll(); string[] latlong = { "N/A", "N/A" }; int i = 0; foreach (Ship barco in barcos) { ViewData[string.Format("State{0}", i)] = "normal"; //sman.GetShipState(barco); DataCenterDataAccess.ShipPosition LastPos = spman.GetLastShipPosition(barco.IMONum); if (LastPos == null) { latlong[0] = "N/A"; latlong[1] = "N/A"; } else { latlong = spman.GetLatLongOfPoint(LastPos); } ViewData[string.Format("Nombre{0}", i)] = barco.Name.ToString(); ViewData[string.Format("OMIId{0}", i)] = barco.IMONum.ToString(); if (LastPos != null) { string temp = latlong[0].Length > 6 ? latlong[0].Remove(6) : latlong[0]; string temp2 = latlong[1].Length > 6 ? latlong[1].Remove(6) : latlong[1]; ViewData[string.Format("UltimaPosicion{0}", i)] = "Lat: " + temp + " Long: " + temp2; ViewData[string.Format("Fecha{0}", i)] = LastPos.TimeStamp.ToString(); } else { ViewData[string.Format("UltimaPosicion{0}", i)] = "Lat: N/A Long: N/A"; ViewData[string.Format("Fecha{0}", i)] = "N/A"; } i++; } ViewData["total_barcos"] = i; //ViewData["total_barcos"] = 0; //Status int status, aspStatus; TimeSpan since, aspSince; var ssman = new SystemStatusManager(); /* * ssman.getLastStatus(out status, out since); * ssman.GetLastAspStatus(out aspStatus, out aspSince); * * ViewData["IDEStatus"] = status; * ViewData["IDESince"] = since; * ViewData["DDPStatus"] = status; * ViewData["DDPSince"] = since; * ViewData["ASPStatus"] = aspStatus; * ViewData["ASPSince"] = aspSince; * * ViewData["AsprCount"] = asprda.Count(); * * // Tráfico * * var tman = new TrafficManager(); * var ts = tman.GetTrafficStats(); * * ViewData["InMonth"] = ts.InMonth; * ViewData["InWeek"] = ts.InWeek; * ViewData["InDay"] = ts.InDay; * ViewData["OutMonth"] = ts.OutMonth; * ViewData["OutWeek"] = ts.OutWeek; * ViewData["OutDay"] = ts.OutDay; */ return(View()); }
public static async Task <bool> CheckAndRefreshToken(IPageDialogService dialogService, RefreshTokenManager refreshTokenManager, SystemStatusManager systemStatusManager, AppStatus appStatus) { if (appStatus.SystemStatus.TokenExpireDatetime > DateTime.Now) { #region Token 尚在有效期限 return(true); #endregion } else { #region Token 已經失效了,需要更新 var fooResult = await refreshTokenManager.GetAsync(); if (fooResult.Status != true) { await dialogService.DisplayAlertAsync("發生錯誤", fooResult.Message, "確定"); return(false); } systemStatusManager.SingleItem = appStatus.SystemStatus; systemStatusManager.SingleItem.IsLogin = true; systemStatusManager.SingleItem.LoginedTime = DateTime.Now; systemStatusManager.SingleItem.Token = refreshTokenManager.SingleItem.Token; systemStatusManager.SingleItem.RefreshToken = refreshTokenManager.SingleItem.RefreshToken; systemStatusManager.SingleItem.TokenExpireMinutes = refreshTokenManager.SingleItem.TokenExpireMinutes; systemStatusManager.SingleItem.RefreshTokenExpireDays = refreshTokenManager.SingleItem.RefreshTokenExpireDays; systemStatusManager.SingleItem.SetExpireDatetime(); #endregion } //await systemStatusManager.WriteToFileAsync(); await AppStatusHelper.WriteAndUpdateAppStatus(systemStatusManager, appStatus); return(true); }
public LeaveFormDetailPageViewModel(INavigationService navigationService, IPageDialogService dialogService, RefreshTokenManager refreshTokenManager, SystemStatusManager systemStatusManager, AppStatus appStatus, LeaveFormsManager leaveFormsManager, LeaveFormTypesManager leaveFormTypesManager) { this.navigationService = navigationService; this.dialogService = dialogService; this.leaveFormsManager = leaveFormsManager; this.leaveFormTypesManager = leaveFormTypesManager; SaveCommand = new DelegateCommand(async() => { if (IsAddMode == true) { using (IProgressDialog fooIProgressDialog = UserDialogs.Instance.Loading($"請稍後,更新資料中...", null, null, true, MaskType.Black)) { bool fooRefreshTokenResult = await RefreshTokenHelper.CheckAndRefreshToken(dialogService, refreshTokenManager, systemStatusManager, appStatus); if (fooRefreshTokenResult == false) { return; } var fooResult = await leaveFormsManager.PostAsync(new LeaveFormRequestDTO() { id = 0, BeginTime = LeaveFormItemModel.BeginDate + LeaveFormItemModel.BeginTime, EndTime = LeaveFormItemModel.EndDate + LeaveFormItemModel.EndTime, Description = LeaveFormItemModel.Description, TotalHours = LeaveFormItemModel.TotalHours, leaveFormType = new LeaveFormTypeDTO() { Id = LeaveFormTypeSelectedItem.Id } }); } } else { using (IProgressDialog fooIProgressDialog = UserDialogs.Instance.Loading($"請稍後,更新資料中...", null, null, true, MaskType.Black)) { bool fooRefreshTokenResult = await RefreshTokenHelper.CheckAndRefreshToken(dialogService, refreshTokenManager, systemStatusManager, appStatus); if (fooRefreshTokenResult == false) { return; } var fooResult = await leaveFormsManager.PutAsync(LeaveFormSelectedItem.Id, new LeaveFormRequestDTO() { id = LeaveFormSelectedItem.Id, BeginTime = LeaveFormItemModel.BeginDate + LeaveFormItemModel.BeginTime, EndTime = LeaveFormItemModel.EndDate + LeaveFormItemModel.EndTime, Description = LeaveFormItemModel.Description, TotalHours = LeaveFormItemModel.TotalHours, leaveFormType = new LeaveFormTypeDTO() { Id = LeaveFormTypeSelectedItem.Id } }); } } var queryString = "NeedRefresh=true"; var navigationParams = new NavigationParameters(queryString); await navigationService.GoBackAsync(navigationParams); }); DeleteCommand = new DelegateCommand(async() => { using (IProgressDialog fooIProgressDialog = UserDialogs.Instance.Loading($"請稍後,更新資料中...", null, null, true, MaskType.Black)) { bool fooRefreshTokenResult = await RefreshTokenHelper.CheckAndRefreshToken(dialogService, refreshTokenManager, systemStatusManager, appStatus); if (fooRefreshTokenResult == false) { return; } var fooResult = await leaveFormsManager.DeleteAsync(LeaveFormSelectedItem.Id); } var queryString = "NeedRefresh=true"; var navigationParams = new NavigationParameters(queryString); await navigationService.GoBackAsync(navigationParams); }); }