Хочу провалидировать с помощью своего собственного аттрибута форму.
Вот код:
public sealed class UniqueUserNameAttribute : ValidationAttribute
{
public override bool IsValid(object value)
{
string userName = value.ToString();
var task = Task.Factory.StartNew(async () =>
{
var user = await Managment.UserManager.FindByNameAsync(userName);
return user;
});
task.Wait();
var taskUser = task.Result;
var validResult = Task.Factory.StartNew(() =>
{
var resUser = taskUser.Result;
if (resUser != null)
{
ErrorMessage = $"Name {userName} is already used";
return false;
}
return true;
});
validResult.Wait();
var isValid = validResult.Result;
return isValid;
}
}
но по каким-то причинам у меня вылетает исключение типа
AggregateException: One or more errors occurred. (One or more errors occurred. (Object reference not set to an instance of an object.))
System.Threading.Tasks.Task.Wait(int millisecondsTimeout, CancellationToken cancellationToken)
NullReferenceException: Object reference not set to an instance of an object.
csharpcourse.Areas.UniqueUserNameAttribute+<>c__DisplayClass0_0+<<IsValid>b__0>d.MoveNext() in UniqueUserNameAttribute.cs, line 16
Место в котором вылетает исключение:
validResult.Wait()
Использую в моделе так:
[UniqueUserName]
public string UserName { get; set; }
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости