From 68836192e1138e2590cbde0c8110507b59ebeed1 Mon Sep 17 00:00:00 2001 From: transtrike Date: Sat, 12 Dec 2020 18:14:08 +0200 Subject: New ValidationString implementation; Simplified PictureProfile --- Data/Models/Classes/User.cs | 57 ++++++++++++++------------------------------- 1 file changed, 18 insertions(+), 39 deletions(-) (limited to 'Data/Models/Classes/User.cs') 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 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. /// - 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."); - } - } - - /// - /// Throws an exception if the absolute url isn't valid. - /// Does nothing otherwise. - /// - 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."); } } } -- cgit v1.2.3