diff options
| author | Syndamia <kamen.d.mladenov@protonmail.com> | 2021-05-06 22:29:54 +0300 |
|---|---|---|
| committer | Syndamia <kamen.d.mladenov@protonmail.com> | 2021-05-06 22:29:54 +0300 |
| commit | cabbcc1ef8f3ab711371eec6a65c255e61de413a (patch) | |
| tree | 68613d777304ccd80e4e33f452dfef7b10f12206 /ExamTemplate/Web | |
| parent | 57cc5682a0efe2b790015f77fe9d2e2a0bb6ed87 (diff) | |
| download | it-kariera-exam-template-cabbcc1ef8f3ab711371eec6a65c255e61de413a.tar it-kariera-exam-template-cabbcc1ef8f3ab711371eec6a65c255e61de413a.tar.gz it-kariera-exam-template-cabbcc1ef8f3ab711371eec6a65c255e61de413a.zip | |
Impllemented user login and updated navbar
Diffstat (limited to 'ExamTemplate/Web')
| -rw-r--r-- | ExamTemplate/Web/Configurations/UserMappings.cs | 1 | ||||
| -rw-r--r-- | ExamTemplate/Web/Controllers/UserController.cs | 21 | ||||
| -rw-r--r-- | ExamTemplate/Web/Models/User/LoginUserViewModel.cs | 8 | ||||
| -rw-r--r-- | ExamTemplate/Web/Views/Shared/_Navbar.cshtml | 18 | ||||
| -rw-r--r-- | ExamTemplate/Web/Views/User/Login.cshtml | 10 | ||||
| -rw-r--r-- | ExamTemplate/Web/Views/_ViewImports.cshtml | 5 |
6 files changed, 59 insertions, 4 deletions
diff --git a/ExamTemplate/Web/Configurations/UserMappings.cs b/ExamTemplate/Web/Configurations/UserMappings.cs index d1a5523..37476ed 100644 --- a/ExamTemplate/Web/Configurations/UserMappings.cs +++ b/ExamTemplate/Web/Configurations/UserMappings.cs @@ -9,6 +9,7 @@ namespace ExamTemplate.Services.Configurations public UserMappings() { CreateMap<RegisterUserViewModel, RegisterUserServiceModel>(); + CreateMap<LoginUserViewModel, LoginUserServiceModel>(); } } } diff --git a/ExamTemplate/Web/Controllers/UserController.cs b/ExamTemplate/Web/Controllers/UserController.cs index cd472de..f4b6edf 100644 --- a/ExamTemplate/Web/Controllers/UserController.cs +++ b/ExamTemplate/Web/Controllers/UserController.cs @@ -38,5 +38,26 @@ namespace ExamTemplate.Web.Controllers else return View(); } + + [HttpGet] + [Route("/Login")] + public IActionResult Login() + { + return View(); + } + + [HttpPost] + [Route("/Login")] + public async Task<IActionResult> Login(LoginUserViewModel loginUserViewModel) + { + LoginUserServiceModel loginUserServiceModel = this._autoMapper.Map<LoginUserServiceModel>(loginUserViewModel); + + bool result = await this._userService.LoginUserAsync(loginUserServiceModel); + + if (result) + return RedirectToAction("Index", "Home"); + else + return View(); + } } } diff --git a/ExamTemplate/Web/Models/User/LoginUserViewModel.cs b/ExamTemplate/Web/Models/User/LoginUserViewModel.cs new file mode 100644 index 0000000..6430183 --- /dev/null +++ b/ExamTemplate/Web/Models/User/LoginUserViewModel.cs @@ -0,0 +1,8 @@ +namespace ExamTemplate.Web.Models.User +{ + public class LoginUserViewModel + { + public string Username { get; set; } + public string Password { get; set; } + } +} diff --git a/ExamTemplate/Web/Views/Shared/_Navbar.cshtml b/ExamTemplate/Web/Views/Shared/_Navbar.cshtml index f81d082..f60b799 100644 --- a/ExamTemplate/Web/Views/Shared/_Navbar.cshtml +++ b/ExamTemplate/Web/Views/Shared/_Navbar.cshtml @@ -1,14 +1,28 @@ +@using Microsoft.AspNetCore.Identity + +@inject SignInManager<User> SignInManager +@inject UserManager<User> UserManager + <nav class="navbar border-bottom box-shadow"> <div class="middle-content-container navbar-contents"> <section> <b> <a asp-controller="Home" asp-action="Index">Web</a> </b> + <a asp-controller="Home" asp-action="Index">Home</a> + <a asp-controller="Home" asp-action="Privacy">Privacy</a> </section> <div class="flex-spacer"></div> <section> - <a asp-controller="Home" asp-action="Index">Home</a> - <a asp-controller="Home" asp-action="Privacy">Privacy</a> + @if (SignInManager.IsSignedIn(User)) + { + <a asp-controller="User" asp-action="">@UserManager.GetUserName(User)</a> + } + else + { + <a asp-controller="User" asp-action="Login">Login</a> + <a asp-controller="User" asp-action="Register">Register</a> + } </section> </div> </nav> diff --git a/ExamTemplate/Web/Views/User/Login.cshtml b/ExamTemplate/Web/Views/User/Login.cshtml new file mode 100644 index 0000000..8df3013 --- /dev/null +++ b/ExamTemplate/Web/Views/User/Login.cshtml @@ -0,0 +1,10 @@ +@model ExamTemplate.Web.Models.User.LoginUserViewModel +@{ + ViewData["Title"] = "Login"; +} + +<form asp-controller="User" asp-action="Login" method="post"> + <input type="text" asp-for="Username" placeholder="Username"> + <input type="password" asp-for="Password" placeholder="Password"> + <input type="submit"> +</form> diff --git a/ExamTemplate/Web/Views/_ViewImports.cshtml b/ExamTemplate/Web/Views/_ViewImports.cshtml index bf79573..fcc5117 100644 --- a/ExamTemplate/Web/Views/_ViewImports.cshtml +++ b/ExamTemplate/Web/Views/_ViewImports.cshtml @@ -1,3 +1,4 @@ -@using Web
-@using Web.Models
+@using ExamTemplate.Web
+@using ExamTemplate.Web.Models
+@using ExamTemplate.Data.Models
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
|
