public async Task <ActionResult> Login(LoginViewModel vm) { try { _accountDataService = new AccountDataService(vm.UserId); User user = await _accountDataService.Login(vm.UserId); if (user == null) { LoginViewModel lvm = new LoginViewModel(); lvm.IsError = true; lvm.UserId = string.Empty; lvm.ErrorMessage = "Invalid Pin, Please Try Again!"; return(await Task.Run(() => View("~/Views/Admin/Login.cshtml", lvm))); } else { // Initialize VM with default values // Creates Empty AppAuthToken AdminViewModel _vm = new AdminViewModel().Init(); AppAuthToken _emptyToken = _vm.Token; AppAuthToken _authenticatedToken = new AppAuthToken().CreateAuthenticatedUserToken(_emptyToken, vm.UserId, DateTime.Now); _vm.Token = _authenticatedToken; return(await Task.Run(() => RedirectToAction("Index", _vm))); } } catch (Exception ex) { LogError("Admin", "Login", ex); return(ShowErrorView("Admin", "Login", ex)); } }
public async Task <ActionResult> Logout(AdminViewModel vm) { try { _accountDataService = new AccountDataService(vm.Token.User.UserId); await _accountDataService.Logout(vm.Token.User.UserId); // CAncel AppAuthToken AppAuthToken _oldToken = vm.Token; AppAuthToken _cancelledToken = new AppAuthToken().CancelAuthenticatedUserToken(_oldToken); vm.Token = _cancelledToken; //TODO: Add Data from AdminViewModel.Data to SessionLog Table in SQLite DB // Clear Session Session.Clear(); return(await Task.Run(() => RedirectToAction("Index", vm))); } catch (Exception ex) { LogError("Admin", "Logout", ex); return(ShowErrorView("Admin", "Logout", ex)); } }