public static Models.ValidationResult ValidateUser(Models.CloneDeployUser user, bool isNewUser)
{
var validationResult = new Models.ValidationResult();
if (string.IsNullOrEmpty(user.Name) || !user.Name.All(c => char.IsLetterOrDigit(c) || c == '_'))
{
validationResult.IsValid = false;
validationResult.Message = "User Name Is Not Valid";
return validationResult;
}
if (isNewUser)
{
if (string.IsNullOrEmpty(user.Password))
{
validationResult.IsValid = false;
validationResult.Message = "Password Is Not Valid";
return validationResult;
}
using (var uow = new DAL.UnitOfWork())
{
if (uow.UserRepository.Exists(h => h.Name == user.Name))
{
validationResult.IsValid = false;
validationResult.Message = "This User Already Exists";
return validationResult;
}
}
}
else
{
using (var uow = new DAL.UnitOfWork())
{
var originalUser = uow.UserRepository.GetById(user.Id);
if (originalUser.Name != user.Name)
{
if (uow.UserRepository.Exists(h => h.Name == user.Name))
{
validationResult.IsValid = false;
validationResult.Message = "This User Already Exists";
return validationResult;
}
}
}
}
return validationResult;
}