aboutsummaryrefslogtreecommitdiff
path: root/src/Web/DevHive.Web.Models/User
diff options
context:
space:
mode:
authorKamen Mladenov <kamen.d.mladenov@protonmail.com>2021-04-09 19:51:35 +0300
committerGitHub <noreply@github.com>2021-04-09 19:51:35 +0300
commit233f38915ba0079079233eff55434ef349c05c45 (patch)
tree6c5f69017865bcab87355e910c87339453da1406 /src/Web/DevHive.Web.Models/User
parentf4a70c6430db923af9fa9958a11c2d6612cb52cc (diff)
parenta992357efcf1bc1ece81b95ecee5e05a0b73bfdc (diff)
downloadDevHive-0.2.tar
DevHive-0.2.tar.gz
DevHive-0.2.zip
Merge pull request #28 from Team-Kaleidoscope/devHEADv0.2mainheroku/main
Second stage: Complete
Diffstat (limited to 'src/Web/DevHive.Web.Models/User')
-rw-r--r--src/Web/DevHive.Web.Models/User/BaseUserWebModel.cs34
-rw-r--r--src/Web/DevHive.Web.Models/User/LoginWebModel.cs20
-rw-r--r--src/Web/DevHive.Web.Models/User/RegisterWebModel.cs14
-rw-r--r--src/Web/DevHive.Web.Models/User/TokenWebModel.cs12
-rw-r--r--src/Web/DevHive.Web.Models/User/UpdateUserWebModel.cs34
-rw-r--r--src/Web/DevHive.Web.Models/User/UserWebModel.cs33
-rw-r--r--src/Web/DevHive.Web.Models/User/UsernameWebModel.cs15
7 files changed, 162 insertions, 0 deletions
diff --git a/src/Web/DevHive.Web.Models/User/BaseUserWebModel.cs b/src/Web/DevHive.Web.Models/User/BaseUserWebModel.cs
new file mode 100644
index 0000000..5fdb757
--- /dev/null
+++ b/src/Web/DevHive.Web.Models/User/BaseUserWebModel.cs
@@ -0,0 +1,34 @@
+using System.ComponentModel.DataAnnotations;
+using System.Diagnostics.CodeAnalysis;
+using DevHive.Web.Models.Attributes;
+
+namespace DevHive.Web.Models.User
+{
+ public class BaseUserWebModel
+ {
+ [NotNull]
+ [Required]
+ [MinLength(3)]
+ [MaxLength(50)]
+ public string UserName { get; set; }
+
+ [NotNull]
+ [Required]
+ [EmailAddress]
+ public string Email { get; set; }
+
+ [NotNull]
+ [Required]
+ [MinLength(3)]
+ [MaxLength(30)]
+ [OnlyLetters(ErrorMessage = "First name can only contain letters!")]
+ public string FirstName { get; set; }
+
+ [NotNull]
+ [Required]
+ [MinLength(3)]
+ [MaxLength(30)]
+ [OnlyLetters(ErrorMessage = "Last name can only contain letters!")]
+ public string LastName { get; set; }
+ }
+}
diff --git a/src/Web/DevHive.Web.Models/User/LoginWebModel.cs b/src/Web/DevHive.Web.Models/User/LoginWebModel.cs
new file mode 100644
index 0000000..7d4e93a
--- /dev/null
+++ b/src/Web/DevHive.Web.Models/User/LoginWebModel.cs
@@ -0,0 +1,20 @@
+using System.ComponentModel.DataAnnotations;
+using System.Diagnostics.CodeAnalysis;
+using DevHive.Web.Models.Attributes;
+
+namespace DevHive.Web.Models.User
+{
+ public class LoginWebModel
+ {
+ [NotNull]
+ [Required]
+ [MinLength(3)]
+ [MaxLength(50)]
+ public string UserName { get; set; }
+
+ [NotNull]
+ [Required]
+ [GoodPassword]
+ public string Password { get; set; }
+ }
+}
diff --git a/src/Web/DevHive.Web.Models/User/RegisterWebModel.cs b/src/Web/DevHive.Web.Models/User/RegisterWebModel.cs
new file mode 100644
index 0000000..999ff00
--- /dev/null
+++ b/src/Web/DevHive.Web.Models/User/RegisterWebModel.cs
@@ -0,0 +1,14 @@
+using System.ComponentModel.DataAnnotations;
+using System.Diagnostics.CodeAnalysis;
+using DevHive.Web.Models.Attributes;
+
+namespace DevHive.Web.Models.User
+{
+ public class RegisterWebModel : BaseUserWebModel
+ {
+ [NotNull]
+ [Required]
+ [GoodPassword]
+ public string Password { get; set; }
+ }
+}
diff --git a/src/Web/DevHive.Web.Models/User/TokenWebModel.cs b/src/Web/DevHive.Web.Models/User/TokenWebModel.cs
new file mode 100644
index 0000000..7f3361d
--- /dev/null
+++ b/src/Web/DevHive.Web.Models/User/TokenWebModel.cs
@@ -0,0 +1,12 @@
+namespace DevHive.Web.Models.User
+{
+ public class TokenWebModel
+ {
+ public TokenWebModel(string token)
+ {
+ this.Token = token;
+ }
+
+ public string Token { get; set; }
+ }
+}
diff --git a/src/Web/DevHive.Web.Models/User/UpdateUserWebModel.cs b/src/Web/DevHive.Web.Models/User/UpdateUserWebModel.cs
new file mode 100644
index 0000000..f74927e
--- /dev/null
+++ b/src/Web/DevHive.Web.Models/User/UpdateUserWebModel.cs
@@ -0,0 +1,34 @@
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.Diagnostics.CodeAnalysis;
+using DevHive.Web.Models.Attributes;
+using DevHive.Web.Models.Role;
+using DevHive.Web.Models.Language;
+using DevHive.Web.Models.Technology;
+
+namespace DevHive.Web.Models.User
+{
+ public class UpdateUserWebModel : BaseUserWebModel
+ {
+ [NotNull]
+ [Required]
+ [GoodPassword]
+ public string Password { get; set; }
+
+ [NotNull]
+ [Required]
+ public HashSet<UsernameWebModel> Friends { get; set; }
+
+ [NotNull]
+ [Required]
+ public HashSet<UpdateRoleWebModel> Roles { get; set; }
+
+ [NotNull]
+ [Required]
+ public HashSet<UpdateLanguageWebModel> Languages { get; set; }
+
+ [NotNull]
+ [Required]
+ public HashSet<UpdateTechnologyWebModel> Technologies { get; set; }
+ }
+}
diff --git a/src/Web/DevHive.Web.Models/User/UserWebModel.cs b/src/Web/DevHive.Web.Models/User/UserWebModel.cs
new file mode 100644
index 0000000..37141d0
--- /dev/null
+++ b/src/Web/DevHive.Web.Models/User/UserWebModel.cs
@@ -0,0 +1,33 @@
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.Diagnostics.CodeAnalysis;
+using DevHive.Common.Models.Misc;
+using DevHive.Web.Models.Role;
+using DevHive.Web.Models.Language;
+using DevHive.Web.Models.Technology;
+
+namespace DevHive.Web.Models.User
+{
+ public class UserWebModel : BaseUserWebModel
+ {
+ public string ProfilePictureURL { get; set; }
+
+ [NotNull]
+ [Required]
+ public HashSet<RoleWebModel> Roles { get; set; } = new();
+
+ [NotNull]
+ [Required]
+ public HashSet<UsernameWebModel> Friends { get; set; } = new();
+
+ [NotNull]
+ [Required]
+ public HashSet<LanguageWebModel> Languages { get; set; } = new();
+
+ [NotNull]
+ [Required]
+ public HashSet<TechnologyWebModel> Technologies { get; set; } = new();
+
+ public List<IdModel> Posts { get; set; } = new();
+ }
+}
diff --git a/src/Web/DevHive.Web.Models/User/UsernameWebModel.cs b/src/Web/DevHive.Web.Models/User/UsernameWebModel.cs
new file mode 100644
index 0000000..638cb15
--- /dev/null
+++ b/src/Web/DevHive.Web.Models/User/UsernameWebModel.cs
@@ -0,0 +1,15 @@
+using System.ComponentModel.DataAnnotations;
+using System.Diagnostics.CodeAnalysis;
+using DevHive.Web.Models.Attributes;
+
+namespace DevHive.Web.Models.User
+{
+ public class UsernameWebModel
+ {
+ [NotNull]
+ [Required]
+ [MinLength(3)]
+ [MaxLength(50)]
+ public string UserName { get; set; }
+ }
+}