From 8f7dabf274b5e428fc32f19a3c8848eacab01090 Mon Sep 17 00:00:00 2001 From: Syndamia Date: Fri, 7 May 2021 11:59:29 +0300 Subject: Added view model validation for register and login --- ExamTemplate/Web/Controllers/UserController.cs | 6 ++++++ ExamTemplate/Web/Models/User/LoginUserViewModel.cs | 7 +++++++ ExamTemplate/Web/Models/User/RegisterUserViewModel.cs | 13 +++++++++++++ ExamTemplate/Web/Views/User/Login.cshtml | 4 ++++ ExamTemplate/Web/Views/User/Register.cshtml | 8 ++++++++ ExamTemplate/Web/wwwroot/css/styles.css | 5 +++++ 6 files changed, 43 insertions(+) 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 Register(RegisterUserViewModel registerUserViewModel) { + if (!ModelState.IsValid) + return View(registerUserViewModel); + RegisterUserServiceModel registerUserServiceModel = this._autoMapper.Map(registerUserViewModel); bool result = await this._userService.RegisterUserAsync(registerUserServiceModel); @@ -50,6 +53,9 @@ namespace ExamTemplate.Web.Controllers [Route("/Login")] public async Task Login(LoginUserViewModel loginUserViewModel) { + if (!ModelState.IsValid) + return View(loginUserViewModel); + LoginUserServiceModel loginUserServiceModel = this._autoMapper.Map(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 @@
+ + + +
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 @@
+ + + + + + + +
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 { -- cgit v1.2.3