Example #1
0
        private async Task <ResponseMessage> RegistrarCliente(UsuarioRegistroModel usuarioRegistro)
        {
            var usuario = await userManager.FindByEmailAsync(usuarioRegistro.Email);

            var usuarioRegistrado = new UsuarioRegistradoIntegrationEvent(
                Guid.Parse(usuario.Id), usuarioRegistro.Nome, usuarioRegistro.Email, usuarioRegistro.Cpf);

            try
            {
                return(await messageBus.RequestAsync <UsuarioRegistradoIntegrationEvent, ResponseMessage>(usuarioRegistrado));
            } catch
            {
                await userManager.DeleteAsync(usuario);

                throw;
            }
        }
Example #2
0
        public async Task <ActionResult> Registrar(UsuarioRegistroModel usuarioRegistro)
        {
            if (!ModelState.IsValid)
            {
                return(CustomResponse(ModelState));
            }

            var usuario = new IdentityUser
            {
                UserName       = usuarioRegistro.Email,
                Email          = usuarioRegistro.Email,
                EmailConfirmed = true
            };

            var result = await userManager.CreateAsync(usuario, usuarioRegistro.Senha);

            if (result.Succeeded)
            {
                var clienteResult = await RegistrarCliente(usuarioRegistro);

                if (!clienteResult.ValidationResult.IsValid)
                {
                    await userManager.DeleteAsync(usuario);

                    return(CustomResponse(clienteResult.ValidationResult));
                }

                return(CustomResponse(await GerarJwt(usuarioRegistro.Email)));
            }

            foreach (var erro in result.Errors)
            {
                AddErroProcessamento(erro.Description);
            }

            return(CustomResponse());
        }