aboutsummaryrefslogtreecommitdiff
path: root/Data/Models
diff options
context:
space:
mode:
authortranstrike <transtrike@gmail.com>2020-12-12 18:14:08 +0200
committertranstrike <transtrike@gmail.com>2020-12-12 18:14:08 +0200
commit68836192e1138e2590cbde0c8110507b59ebeed1 (patch)
tree1385c625d5c2b4991044817f7d906433f31f1fd5 /Data/Models
parent64e02c270d2911e85ea82b601e2aa251400fbcd0 (diff)
downloadDevHive-68836192e1138e2590cbde0c8110507b59ebeed1.tar
DevHive-68836192e1138e2590cbde0c8110507b59ebeed1.tar.gz
DevHive-68836192e1138e2590cbde0c8110507b59ebeed1.zip
New ValidationString implementation; Simplified PictureProfile
Diffstat (limited to 'Data/Models')
-rw-r--r--Data/Models/Classes/User.cs57
1 files changed, 18 insertions, 39 deletions
diff --git a/Data/Models/Classes/User.cs b/Data/Models/Classes/User.cs
index 50ceb1e..a3baeff 100644
--- a/Data/Models/Classes/User.cs
+++ b/Data/Models/Classes/User.cs
@@ -3,6 +3,8 @@ using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Microsoft.AspNetCore.Identity;
using System.Collections.Generic;
+using System.Linq;
+using System.Runtime.CompilerServices;
namespace Data.Models.Classes
{
@@ -11,55 +13,46 @@ namespace Data.Models.Classes
{
private string _firstName;
private string _lastName;
- private string _profilePicture;
[Required]
[Range(3, 50)]
[Display(Name = "Username")]
- public override string UserName
+ public override string UserName
{
get => base.UserName;
- set
+ set
{
ValidateString("Username", 3, 50, value, true);
base.UserName = value;
}
}
-
+
[Required]
[Range(3, 30)]
- public string FirstName
+ public string FirstName
{
get => this._firstName;
- set
+ set
{
ValidateString("FirstName", 3, 30, value, false);
this._firstName = value;
}
}
-
+
[Required]
[Range(3, 30)]
- public string LastName
- {
+ public string LastName
+ {
get => this._lastName;
- set
+ set
{
ValidateString("LastName", 3, 30, value, false);
this._lastName = value;
}
}
- public string ProfilePicture
- {
- get => this._profilePicture;
- set
- {
- ValidateURL(value);
- this._profilePicture = value;
- }
- }
-
+ public string ProfilePicture { get; set; }
+
public string Role { get; set; }
// public List<User> Friends { get; set; }
@@ -68,28 +61,14 @@ namespace Data.Models.Classes
/// Throws an argument exception if the given value is not composed only of letters, and if specified, also of digits.
/// Does nothing otherwise.
/// </summary>
- private static void ValidateString(string name, int minLength, int maxLength, string value, bool canBeDigit)
+ private static void ValidateString(string propertyName, int minLength, int maxLength, string value, bool canBeDigit)
{
if (value.Length < minLength || value.Length > maxLength)
- throw new ArgumentException($"{name} length cannot be less than {minLength} and more than {maxLength}.");
+ throw new ArgumentException($"{propertyName} length cannot be less than {minLength} and more than {maxLength}.");
- foreach (char character in value) // more efficient than Linq
- {
- if (!Char.IsLetter(character))
- if (!(Char.IsDigit(character) && canBeDigit))
- throw new ArgumentException($"{name} contains invalid characters.");
- }
- }
-
- /// <summary>
- /// Throws an exception if the absolute url isn't valid.
- /// Does nothing otherwise.
- /// </summary>
- private static void ValidateURL(string urlValue)
- {
- // Throws an error is URL is invalid
- Uri validatedUri;
- Uri.TryCreate(urlValue, UriKind.Absolute, out validatedUri);
+ foreach (char ch in value)
+ if (!Char.IsLetter(ch) && !(Char.IsDigit(ch) && canBeDigit))
+ throw new ArgumentException($"{propertyName} contains invalid characters.");
}
}
}