Beispiel #1
0
        public async Task <IActionResult> Registro([FromBody] RegistroViewModel registroViewModel)
        {
            if (registroViewModel == null)
            {
                return(Response());
            }

            if (!ModelState.IsValid)
            {
                return(Response());
            }

            Usuario usuario = new Usuario()
            {
                UserName = registroViewModel.Login, Email = registroViewModel.Login
            };

            var         guidContaTipoUsuario = Guid.Parse("42c251fc-5e4b-4aee-9e92-f0159a2a6e65");
            Colaborador colaborador          = new Colaborador(registroViewModel.Nome, guidContaTipoUsuario, registroViewModel.Sobrenome,
                                                               null, null, registroViewModel.Login, registroViewModel.Telefone, registroViewModel.TelefoneAdicional, registroViewModel.Documento,
                                                               registroViewModel.TipoDocumento);

            var resultIdentity = await _userManager.CreateAsync(usuario, registroViewModel.Senha);

            AddErrosIdentity(resultIdentity);

            if (!resultIdentity.Succeeded)
            {
                return(Response());
            }

            colaborador.SetId(Guid.Parse(usuario.Id));
            _colaboradorRepository.Criar(colaborador);

            var resultCommit = Commit();

            if (!resultCommit)
            {
                var usuarioCriado = await _userManager.FindByIdAsync(usuario.Id);

                await _userManager.DeleteAsync(usuarioCriado);
            }

            var tokenObject = _tokenService.GetTokenUser(usuario);

            return(Response(tokenObject));
        }