aboutsummaryrefslogtreecommitdiff
path: root/src/Web/DevHive.Web.Models/Identity/User
diff options
context:
space:
mode:
Diffstat (limited to 'src/Web/DevHive.Web.Models/Identity/User')
-rw-r--r--src/Web/DevHive.Web.Models/Identity/User/BaseUserWebModel.cs34
-rw-r--r--src/Web/DevHive.Web.Models/Identity/User/LoginWebModel.cs20
-rw-r--r--src/Web/DevHive.Web.Models/Identity/User/ProfilePictureWebModel.cs7
-rw-r--r--src/Web/DevHive.Web.Models/Identity/User/RegisterWebModel.cs14
-rw-r--r--src/Web/DevHive.Web.Models/Identity/User/TokenWebModel.cs12
-rw-r--r--src/Web/DevHive.Web.Models/Identity/User/UpdateProfilePictureWebModel.cs9
-rw-r--r--src/Web/DevHive.Web.Models/Identity/User/UpdateUserWebModel.cs34
-rw-r--r--src/Web/DevHive.Web.Models/Identity/User/UserWebModel.cs33
-rw-r--r--src/Web/DevHive.Web.Models/Identity/User/UsernameWebModel.cs15
9 files changed, 178 insertions, 0 deletions
diff --git a/src/Web/DevHive.Web.Models/Identity/User/BaseUserWebModel.cs b/src/Web/DevHive.Web.Models/Identity/User/BaseUserWebModel.cs
new file mode 100644
index 0000000..297e1a5
--- /dev/null
+++ b/src/Web/DevHive.Web.Models/Identity/User/BaseUserWebModel.cs
@@ -0,0 +1,34 @@
+using System.ComponentModel.DataAnnotations;
+using System.Diagnostics.CodeAnalysis;
+using DevHive.Web.Attributes;
+
+namespace DevHive.Web.Models.Identity.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/Identity/User/LoginWebModel.cs b/src/Web/DevHive.Web.Models/Identity/User/LoginWebModel.cs
new file mode 100644
index 0000000..ccd806f
--- /dev/null
+++ b/src/Web/DevHive.Web.Models/Identity/User/LoginWebModel.cs
@@ -0,0 +1,20 @@
+using System.ComponentModel.DataAnnotations;
+using System.Diagnostics.CodeAnalysis;
+using DevHive.Web.Attributes;
+
+namespace DevHive.Web.Models.Identity.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/Identity/User/ProfilePictureWebModel.cs b/src/Web/DevHive.Web.Models/Identity/User/ProfilePictureWebModel.cs
new file mode 100644
index 0000000..91c9487
--- /dev/null
+++ b/src/Web/DevHive.Web.Models/Identity/User/ProfilePictureWebModel.cs
@@ -0,0 +1,7 @@
+namespace DevHive.Web.Models.Identity.User
+{
+ public class ProfilePictureWebModel
+ {
+ public string ProfilePictureURL { get; set; }
+ }
+}
diff --git a/src/Web/DevHive.Web.Models/Identity/User/RegisterWebModel.cs b/src/Web/DevHive.Web.Models/Identity/User/RegisterWebModel.cs
new file mode 100644
index 0000000..0fc7ec6
--- /dev/null
+++ b/src/Web/DevHive.Web.Models/Identity/User/RegisterWebModel.cs
@@ -0,0 +1,14 @@
+using System.ComponentModel.DataAnnotations;
+using System.Diagnostics.CodeAnalysis;
+using DevHive.Web.Attributes;
+
+namespace DevHive.Web.Models.Identity.User
+{
+ public class RegisterWebModel : BaseUserWebModel
+ {
+ [NotNull]
+ [Required]
+ [GoodPassword]
+ public string Password { get; set; }
+ }
+}
diff --git a/src/Web/DevHive.Web.Models/Identity/User/TokenWebModel.cs b/src/Web/DevHive.Web.Models/Identity/User/TokenWebModel.cs
new file mode 100644
index 0000000..154b64b
--- /dev/null
+++ b/src/Web/DevHive.Web.Models/Identity/User/TokenWebModel.cs
@@ -0,0 +1,12 @@
+namespace DevHive.Web.Models.Identity.User
+{
+ public class TokenWebModel
+ {
+ public TokenWebModel(string token)
+ {
+ this.Token = token;
+ }
+
+ public string Token { get; set; }
+ }
+} \ No newline at end of file
diff --git a/src/Web/DevHive.Web.Models/Identity/User/UpdateProfilePictureWebModel.cs b/src/Web/DevHive.Web.Models/Identity/User/UpdateProfilePictureWebModel.cs
new file mode 100644
index 0000000..6efe968
--- /dev/null
+++ b/src/Web/DevHive.Web.Models/Identity/User/UpdateProfilePictureWebModel.cs
@@ -0,0 +1,9 @@
+using Microsoft.AspNetCore.Http;
+
+namespace DevHive.Web.Models.Identity.User
+{
+ public class UpdateProfilePictureWebModel
+ {
+ public IFormFile Picture { get; set; }
+ }
+}
diff --git a/src/Web/DevHive.Web.Models/Identity/User/UpdateUserWebModel.cs b/src/Web/DevHive.Web.Models/Identity/User/UpdateUserWebModel.cs
new file mode 100644
index 0000000..62901f6
--- /dev/null
+++ b/src/Web/DevHive.Web.Models/Identity/User/UpdateUserWebModel.cs
@@ -0,0 +1,34 @@
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.Diagnostics.CodeAnalysis;
+using DevHive.Web.Attributes;
+using DevHive.Web.Models.Identity.Role;
+using DevHive.Web.Models.Language;
+using DevHive.Web.Models.Technology;
+
+namespace DevHive.Web.Models.Identity.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/Identity/User/UserWebModel.cs b/src/Web/DevHive.Web.Models/Identity/User/UserWebModel.cs
new file mode 100644
index 0000000..7ab8cca
--- /dev/null
+++ b/src/Web/DevHive.Web.Models/Identity/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.Identity.Role;
+using DevHive.Web.Models.Language;
+using DevHive.Web.Models.Technology;
+
+namespace DevHive.Web.Models.Identity.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/Identity/User/UsernameWebModel.cs b/src/Web/DevHive.Web.Models/Identity/User/UsernameWebModel.cs
new file mode 100644
index 0000000..c533bba
--- /dev/null
+++ b/src/Web/DevHive.Web.Models/Identity/User/UsernameWebModel.cs
@@ -0,0 +1,15 @@
+using System.ComponentModel.DataAnnotations;
+using System.Diagnostics.CodeAnalysis;
+using DevHive.Web.Attributes;
+
+namespace DevHive.Web.Models.Identity.User
+{
+ public class UsernameWebModel
+ {
+ [NotNull]
+ [Required]
+ [MinLength(3)]
+ [MaxLength(50)]
+ public string UserName { get; set; }
+ }
+}