Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Text.RegularExpressions;
- using System.Threading.Tasks;
- using Microsoft.AspNet.Identity;
- namespace X
- {
- public class UserValidatorLocalizedRo<TUser> : IIdentityValidator<TUser> where TUser : IUser
- {
- public bool AllowOnlyAlphanumericUserNames { get; set; }
- private UserManager<TUser> Manager { get; set; }
- public UserValidatorLocalizedRo(UserManager<TUser> manager)
- {
- if (manager == null)
- throw new ArgumentNullException("manager");
- this.AllowOnlyAlphanumericUserNames = true;
- this.Manager = manager;
- }
- private async Task ValidateUserName(TUser user, List<string> errors)
- {
- if (string.IsNullOrWhiteSpace(user.UserName))
- errors.Add("Nume de utilizator trebuie specificat.");
- else if (this.AllowOnlyAlphanumericUserNames && !Regex.IsMatch(user.UserName, "^[A-Za-z0-9]+$"))
- {
- errors.Add("Numele de utilizator poate contine doar litere si cifre.");
- }
- else
- {
- TUser owner = await this.Manager.FindByNameAsync(user.UserName);
- if (!(owner == null) && owner.Id != user.Id)
- errors.Add("Existฤ deja un cont asociat email-ului introdus");
- }
- }
- public async Task<IdentityResult> ValidateAsync(TUser item)
- {
- if ((object)item == null)
- throw new ArgumentNullException("entity");
- List<string> errors = new List<string>();
- await this.ValidateUserName(item, errors);
- return errors.Count <= 0 ? IdentityResult.Success : IdentityResult.Failed(errors.ToArray());
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement