aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSyndamia <kamen.d.mladenov@protonmail.com>2021-05-07 11:59:29 +0300
committerSyndamia <kamen.d.mladenov@protonmail.com>2021-05-07 11:59:29 +0300
commit8f7dabf274b5e428fc32f19a3c8848eacab01090 (patch)
treeb738b66fa6621ed88b199e820702cae16422f9ba
parentbd2ebdd29e03425a8314a91b64a5943df83b7559 (diff)
downloadit-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
-rw-r--r--ExamTemplate/Web/Controllers/UserController.cs6
-rw-r--r--ExamTemplate/Web/Models/User/LoginUserViewModel.cs7
-rw-r--r--ExamTemplate/Web/Models/User/RegisterUserViewModel.cs13
-rw-r--r--ExamTemplate/Web/Views/User/Login.cshtml4
-rw-r--r--ExamTemplate/Web/Views/User/Register.cshtml8
-rw-r--r--ExamTemplate/Web/wwwroot/css/styles.css5
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 {