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));
        }
Example #2
0
        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);
        }