Advertisement
Guest User

Untitled

a guest
Apr 9th, 2014
801
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.80 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text.RegularExpressions;
  4. using System.Threading.Tasks;
  5. using Microsoft.AspNet.Identity;
  6.  
  7. namespace X
  8. {
  9.     public class UserValidatorLocalizedRo<TUser> : IIdentityValidator<TUser> where TUser : IUser
  10.     {
  11.         public bool AllowOnlyAlphanumericUserNames { get; set; }
  12.  
  13.         private UserManager<TUser> Manager { get; set; }
  14.  
  15.         public UserValidatorLocalizedRo(UserManager<TUser> manager)
  16.         {
  17.             if (manager == null)
  18.                 throw new ArgumentNullException("manager");
  19.             this.AllowOnlyAlphanumericUserNames = true;
  20.             this.Manager = manager;
  21.         }
  22.  
  23.         private async Task ValidateUserName(TUser user, List<string> errors)
  24.         {
  25.             if (string.IsNullOrWhiteSpace(user.UserName))
  26.                 errors.Add("Nume de utilizator trebuie specificat.");
  27.             else if (this.AllowOnlyAlphanumericUserNames && !Regex.IsMatch(user.UserName, "^[A-Za-z0-9]+$"))
  28.             {
  29.                 errors.Add("Numele de utilizator poate contine doar litere si cifre.");
  30.             }
  31.             else
  32.             {
  33.                 TUser owner = await this.Manager.FindByNameAsync(user.UserName);
  34.                 if (!(owner == null) && owner.Id != user.Id)
  35.                     errors.Add("Există deja un cont asociat email-ului introdus");
  36.             }
  37.         }
  38.  
  39.         public async Task<IdentityResult> ValidateAsync(TUser item)
  40.         {
  41.             if ((object)item == null)
  42.                 throw new ArgumentNullException("entity");
  43.             List<string> errors = new List<string>();
  44.             await this.ValidateUserName(item, errors);
  45.             return errors.Count <= 0 ? IdentityResult.Success : IdentityResult.Failed(errors.ToArray());
  46.         }
  47.     }
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement