public async Task <ActionResult <FornecedorModel> > PutFornecedorPessoaFisica(FornecedorPessoaFisicaModel model, int fornecedorId) { try { var fornecedor = await _fornecedorService.GetFornecedorByIdAsync(fornecedorId); if (fornecedor == null) { return(NotFound("Fornecedor não encontrado")); } _mapper.Map(model, fornecedor); if (await _fornecedorService.SaveChangesAsync()) { return(_mapper.Map <FornecedorModel>(fornecedor)); } else { return(BadRequest("Falha ao atualizar fornecedor")); } } catch (Exception ex) { return(this.StatusCode(StatusCodes.Status500InternalServerError, $"Falha no banco de dados - {ex.ToString()}")); } }
public async Task <ActionResult <FornecedorPessoaFisicaModel> > PostPessoaFisica(FornecedorPessoaFisicaModel model, int empresaId) { try { var empresa = await _empresaService.GetEmpresaByIdAsync(empresaId); if (empresa == null) { return(NotFound("Empresa não encontrada")); } var fornecedor = _mapper.Map <Fornecedor>(model); if (_fornecedorService.FornecedorExistsOnEmpresa(fornecedor.CPFCNPJ, empresaId)) { return(BadRequest("CPF já cadastrado na empresa selecionada")); } var today = DateTime.Today; var idadeFornecedor = today.Year - fornecedor.DataNascimento.Value.Year; if (empresa.UF == "PR" && idadeFornecedor < 18) { return(BadRequest("Não é permitido cadastro de fornecedor menor de idade em empresa do PR")); } empresa.Fornecedors.Add(fornecedor); if (await _fornecedorService.SaveChangesAsync()) { return(Created($"api/empresas/{fornecedor.FornecedorId}/fornecedores/{fornecedor.FornecedorId}", _mapper.Map <FornecedorPessoaFisicaModel>(fornecedor))); } else { return(BadRequest("Falha ao adicionar um novo fornecedor")); } } catch (Exception ex) { return(this.StatusCode(StatusCodes.Status500InternalServerError, $"Falha no banco de dados - {ex.ToString()}")); } }