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.cs131
1 files changed, 0 insertions, 131 deletions
diff --git a/ExamTemplate/Web/Controllers/UserController.cs b/ExamTemplate/Web/Controllers/UserController.cs
deleted file mode 100644
index c7183ca..0000000
--- a/ExamTemplate/Web/Controllers/UserController.cs
+++ /dev/null
@@ -1,131 +0,0 @@
-using ExamTemplate.Services;
-using Microsoft.AspNetCore.Mvc;
-using ExamTemplate.Web.Models.User;
-using AutoMapper;
-using ExamTemplate.Services.Models;
-using System.Threading.Tasks;
-
-namespace ExamTemplate.Web.Controllers
-{
- public class UserController : Controller
- {
- private readonly IMapper _autoMapper;
- private readonly UserService _userService;
-
- public UserController(IMapper autoMapper, UserService userService)
- {
- this._autoMapper = autoMapper;
- this._userService = userService;
- }
-
- [HttpGet]
- [Route("/Register")]
- public IActionResult Register()
- {
- return View();
- }
-
- [HttpPost]
- [Route("/Register")]
- public async Task<IActionResult> Register(RegisterUserViewModel registerUserViewModel)
- {
- if (!ModelState.IsValid)
- return View(registerUserViewModel);
-
- RegisterUserServiceModel registerUserServiceModel = this._autoMapper.Map<RegisterUserServiceModel>(registerUserViewModel);
-
- bool result = await this._userService.RegisterUserAsync(registerUserServiceModel);
-
- if (result)
- return RedirectToAction("Index", "Home");
- else
- return View();
- }
-
- [HttpGet]
- [Route("/Login")]
- public IActionResult Login()
- {
- return View();
- }
-
- [HttpPost]
- [Route("/Login")]
- public async Task<IActionResult> Login(LoginUserViewModel loginUserViewModel)
- {
- if (!ModelState.IsValid)
- return View(loginUserViewModel);
-
- LoginUserServiceModel loginUserServiceModel = this._autoMapper.Map<LoginUserServiceModel>(loginUserViewModel);
-
- bool result = await this._userService.LoginUserAsync(loginUserServiceModel);
-
- if (result)
- return RedirectToAction("Index", "Home");
- else
- return View();
- }
-
- [HttpPost]
- public async Task<IActionResult> Logout()
- {
- await this._userService.LogoutAsync();
-
- return RedirectToAction("Login");
- }
-
- [HttpGet]
- [Route("/Profile/{username}")]
- public async Task<IActionResult> Profile(string username)
- {
- 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 (!ModelState.IsValid)
- return View(editUserViewModel);
-
- if (!this._userService.IsSignedIn(HttpContext.User))
- return RedirectToAction("Login");
-
- UserServiceModel loggedInUser = await this._userService.GetUserByClaimsAsync(HttpContext.User);
-
- EditUserServiceModel editUserServiceModel = this._autoMapper.Map<EditUserServiceModel>(editUserViewModel);
- bool result = await this._userService.EditUserAsync(HttpContext.User, editUserServiceModel);
-
- if (result)
- {
- if (loggedInUser.Username != editUserViewModel.Username)
- await this._userService.LogoutAsync();
-
- return RedirectToAction("Profile", new { username = editUserViewModel.Username });
- }
- else
- return RedirectToAction("Profile", new { username = loggedInUser.Username });
- }
- }
-}