diff options
| author | Syndamia <kamen.d.mladenov@protonmail.com> | 2021-05-07 11:59:29 +0300 |
|---|---|---|
| committer | Syndamia <kamen.d.mladenov@protonmail.com> | 2021-05-07 11:59:29 +0300 |
| commit | 8f7dabf274b5e428fc32f19a3c8848eacab01090 (patch) | |
| tree | b738b66fa6621ed88b199e820702cae16422f9ba /ExamTemplate/Web | |
| parent | bd2ebdd29e03425a8314a91b64a5943df83b7559 (diff) | |
| download | it-kariera-exam-template-8f7dabf274b5e428fc32f19a3c8848eacab01090.tar it-kariera-exam-template-8f7dabf274b5e428fc32f19a3c8848eacab01090.tar.gz it-kariera-exam-template-8f7dabf274b5e428fc32f19a3c8848eacab01090.zip | |
Added view model validation for register and login
Diffstat (limited to 'ExamTemplate/Web')
| -rw-r--r-- | ExamTemplate/Web/Controllers/UserController.cs | 6 | ||||
| -rw-r--r-- | ExamTemplate/Web/Models/User/LoginUserViewModel.cs | 7 | ||||
| -rw-r--r-- | ExamTemplate/Web/Models/User/RegisterUserViewModel.cs | 13 | ||||
| -rw-r--r-- | ExamTemplate/Web/Views/User/Login.cshtml | 4 | ||||
| -rw-r--r-- | ExamTemplate/Web/Views/User/Register.cshtml | 8 | ||||
| -rw-r--r-- | ExamTemplate/Web/wwwroot/css/styles.css | 5 |
6 files changed, 43 insertions, 0 deletions
diff --git a/ExamTemplate/Web/Controllers/UserController.cs b/ExamTemplate/Web/Controllers/UserController.cs index 4a22de7..622a616 100644 --- a/ExamTemplate/Web/Controllers/UserController.cs +++ b/ExamTemplate/Web/Controllers/UserController.cs @@ -29,6 +29,9 @@ namespace ExamTemplate.Web.Controllers [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); @@ -50,6 +53,9 @@ namespace ExamTemplate.Web.Controllers [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); diff --git a/ExamTemplate/Web/Models/User/LoginUserViewModel.cs b/ExamTemplate/Web/Models/User/LoginUserViewModel.cs index 6430183..dd917cf 100644 --- a/ExamTemplate/Web/Models/User/LoginUserViewModel.cs +++ b/ExamTemplate/Web/Models/User/LoginUserViewModel.cs @@ -1,8 +1,15 @@ +using System.ComponentModel.DataAnnotations; + namespace ExamTemplate.Web.Models.User { public class LoginUserViewModel { + [Required] + [MinLength(1)] public string Username { get; set; } + + [Required] + [MinLength(1)] public string Password { get; set; } } } diff --git a/ExamTemplate/Web/Models/User/RegisterUserViewModel.cs b/ExamTemplate/Web/Models/User/RegisterUserViewModel.cs index 5764bdd..7a4a937 100644 --- a/ExamTemplate/Web/Models/User/RegisterUserViewModel.cs +++ b/ExamTemplate/Web/Models/User/RegisterUserViewModel.cs @@ -1,10 +1,23 @@ +using System.ComponentModel.DataAnnotations; + namespace ExamTemplate.Web.Models.User { public class RegisterUserViewModel { + [Required] + [MinLength(1)] public string FirstName { get; set; } + + [Required] + [MinLength(1)] public string LastName { get; set; } + + [Required] + [MinLength(1)] public string Username { get; set; } + + [Required] + [MinLength(1)] public string Password { get; set; } } } diff --git a/ExamTemplate/Web/Views/User/Login.cshtml b/ExamTemplate/Web/Views/User/Login.cshtml index 8df3013..b57dbbf 100644 --- a/ExamTemplate/Web/Views/User/Login.cshtml +++ b/ExamTemplate/Web/Views/User/Login.cshtml @@ -5,6 +5,10 @@ <form asp-controller="User" asp-action="Login" method="post"> <input type="text" asp-for="Username" placeholder="Username"> + <span asp-validation-for="Username" class="form-error"></span> + <input type="password" asp-for="Password" placeholder="Password"> + <span asp-validation-for="Password" class="form-error"></span> + <input type="submit"> </form> diff --git a/ExamTemplate/Web/Views/User/Register.cshtml b/ExamTemplate/Web/Views/User/Register.cshtml index 39e39f2..3b7f6d9 100644 --- a/ExamTemplate/Web/Views/User/Register.cshtml +++ b/ExamTemplate/Web/Views/User/Register.cshtml @@ -5,8 +5,16 @@ <form asp-controller="User" asp-action="Register" method="post"> <input type="text" asp-for="FirstName" placeholder="FirstName"> + <span asp-validation-for="FirstName" class="form-error"></span> + <input type="text" asp-for="LastName" placeholder="LastName"> + <span asp-validation-for="LastName" class="form-error"></span> + <input type="text" asp-for="Username" placeholder="Username"> + <span asp-validation-for="Username" class="form-error"></span> + <input type="password" asp-for="Password" placeholder="Password"> + <span asp-validation-for="Password" class="form-error"></span> + <input type="submit"> </form> diff --git a/ExamTemplate/Web/wwwroot/css/styles.css b/ExamTemplate/Web/wwwroot/css/styles.css index e01dcf0..bc93d42 100644 --- a/ExamTemplate/Web/wwwroot/css/styles.css +++ b/ExamTemplate/Web/wwwroot/css/styles.css @@ -116,6 +116,11 @@ input[type="submit"] { background-color: black; } +.form-error { + font-size: 0.8em; + color: red; +} + /* Other general stuff */ .flex-spacer { |
