public async Task <IActionResult> Cadastrar([FromBody] CreateProdutorCommand command, [FromServices] AuthService authService) { var(success, message, result) = await authService.Register(command); if (!success) { return(BadRequest(new FailViewModel(message))); } return(Ok(result)); }
public async Task <(bool success, string message, AuthenticationResult result)> Register(CreateProdutorCommand source) { var produtorId = Guid.NewGuid(); var usuario = new Usuario() { Email = source.Email, Tipo = source.TipoVinculo, Nome = source.Nome, PhoneNumber = source.Telefone, UserName = source.Email ?? source.Telefone, Produtor = new Produtor { Id = produtorId, NomeEmpresa = source.NomeEmpresa, CadastroCompleto = false } }; var r = await RegisterUser(usuario, source.Senha); if (r.success) { var end = Guid.NewGuid(); _context.EnderecosProdutor.Adicionar(new EnderecoProdutor() { Id = end, ProdutorId = produtorId, Endereco = new Endereco() { Id = Guid.NewGuid(), CidadeId = source.CidadeId, Logradouro = source.Endereco } }); usuario.Produtor.EnderecoId = end; if (source.CidadeId.HasValue) { _context.CidadeAtendidas.Adicionar(new CidadeAtendida() { Id = Guid.NewGuid(), CidadeId = source.CidadeId.Value, ProdutorId = produtorId }); } _context.Produtores.Update(usuario.Produtor); } return(r); }