public async Task <IActionResult> RegisterAsync([FromBody] RegisterUserEvaluatorCommand registerUser)
        {
            var result = await _mediator.Send(registerUser);

            if (result == null)
            {
                return(await ResponseNotificationsAsync());
            }

            return(await ResponseOkAsync(result));
        }
        public async Task <Token> Handle(RegisterUserEvaluatorCommand request, CancellationToken cancellationToken)
        {
            var identityUser = new MongoIdentityUser(request.Email, request.Email);

            identityUser.AddClaim(new MongoUserClaim("Email", request.Email));
            identityUser.AddClaim(new MongoUserClaim("Type", EUserType.Evaluator.ToString()));

            var result = await _userManager.CreateAsync(identityUser, request.Password);

            if (!result.Succeeded)
            {
                foreach (int er in result.Errors.Select(x => Convert.ToInt32(x.Code)))
                {
                    _notificationContext.PushNotification((ReturnCode)er);
                }
                return(null);
            }

            await _repository.AddAsync <Person>(new Person()
            {
                IdentityUserId     = identityUser.Id,
                Name               = request.Name,
                IsSei              = request.IsSei,
                Email              = request.Email,
                IsSicite           = request.IsSicite,
                AttendedModalities = request.Modalities,
                Institution        = request.Institution,
                Type               = EUserType.Evaluator,
                Approved           = false,
                ArticlesCount      = 0
            });

            await _signInManager.SignInAsync(identityUser, false);

            return(await GerarJwt(identityUser));
        }