aboutsummaryrefslogtreecommitdiff
path: root/ExamTemplate/Web/Controllers/UserController.cs
diff options
context:
space:
mode:
Diffstat (limited to 'ExamTemplate/Web/Controllers/UserController.cs')
-rw-r--r--ExamTemplate/Web/Controllers/UserController.cs38
1 files changed, 36 insertions, 2 deletions
diff --git a/ExamTemplate/Web/Controllers/UserController.cs b/ExamTemplate/Web/Controllers/UserController.cs
index 4a9cf31..2e5978b 100644
--- a/ExamTemplate/Web/Controllers/UserController.cs
+++ b/ExamTemplate/Web/Controllers/UserController.cs
@@ -81,13 +81,47 @@ namespace ExamTemplate.Web.Controllers
UserServiceModel userServiceModel = await this._userService.GetUserByUsernameAsync(username);
if (userServiceModel == default(UserServiceModel))
- {
return RedirectToAction("Login");
- }
UserViewModel userViewModel = this._autoMapper.Map<UserViewModel>(userServiceModel);
return View(userViewModel);
}
+
+ [HttpGet]
+ [Route("/EditProfile")]
+ public async Task<IActionResult> EditProfile()
+ {
+ UserServiceModel userServiceModel = await this._userService.GetUserByClaimsAsync(this.HttpContext.User);
+
+ if (userServiceModel == default(UserServiceModel))
+ return RedirectToAction("Login");
+
+ EditUserViewModel editUserViewModel = this._autoMapper.Map<EditUserViewModel>(userServiceModel);
+
+ return View(editUserViewModel);
+ }
+
+ [HttpPost]
+ [Route("/EditProfile")]
+ public async Task<IActionResult> EditProfile(EditUserViewModel editUserViewModel)
+ {
+ if (!this._userService.IsSignedIn(HttpContext.User))
+ return RedirectToAction("Login");
+
+ EditUserServiceModel editUserServiceModel = this._autoMapper.Map<EditUserServiceModel>(editUserViewModel);
+ bool result = await this._userService.EditUserAsync(HttpContext.User, editUserServiceModel);
+
+ if (result)
+ {
+ await this._userService.LogoutAsync();
+ return RedirectToAction("Profile", new { username = editUserViewModel.Username });
+ }
+ else
+ {
+ UserServiceModel userServiceModel = await this._userService.GetUserByClaimsAsync(HttpContext.User);
+ return RedirectToAction("Profile", new { username = userServiceModel.Username });
+ }
+ }
}
}