示例#1
0
        public async Task <IList <string> > CreateAsync(UsuárioIdentity usuário, string senha)
        {
            var resultado = await _userManager.CreateAsync(usuário, senha);

            if (resultado.Succeeded)
            {
                return(new List <string>());
            }
            else
            {
                var erros = new List <string>();

                foreach (var error in resultado.Errors)
                {
                    switch (error.Code)
                    {
                    case "DuplicateUserName":
                        erros.Add("O nome de usuário escolhido não está disponível. Escolha outro.");
                        break;

                    case "DuplicateEmail":
                        erros.Add("O e-mail escolhido já possui um cadastro.");
                        break;

                    default:
                        erros.Add(error.Description);
                        break;
                    }
                }

                return(erros);
            }
        }
示例#2
0
        /// <summary>
        /// Cadastra um novo usuário no sistema
        /// </summary>
        /// <param name="vm"></param>
        /// <returns>Uma lista de mensagens de erro, caso não seja possível efetuar o cadastro</returns>
        public async Task <IList <string> > CadastrarUsuário(CadastrarUsuárioViewModel vm)
        {
            var erros = new List <string>();

            var appUser = new UsuárioIdentity()
            {
                UserName = vm.Nome
            };

            var resultadoCriação = await _contaIdentityService.CreateAsync(appUser, vm.Senha);

            if (resultadoCriação.Count == 0)
            {
                var usuário = new Usuário {
                    Id = new Guid(appUser.Id), Nome = vm.Nome, CriadoEm = DateTime.Now
                };

                await _usuárioService.AdicionarAsync(usuário);

                await _contaIdentityService.SignInAsync(appUser);
            }
            else
            {
                foreach (var erro in resultadoCriação)
                {
                    erros.Add(erro);
                }
            }

            return(erros);
        }
示例#3
0
 public async Task SignInAsync(UsuárioIdentity usuário)
 => await _signInManager.SignInAsync(usuário, false);