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; } }
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()); }