public async Task <IActionResult> Put(FornecedorEntity model) { try { var fornecedor = await _service.GetFornecedorAsyncById(model.Id); if (fornecedor == null) { return(NotFound()); } var idTelefone = new List <int>(); model.TelefoneFornecedor.ForEach(item => idTelefone.Add(item.Id)); var telefones = fornecedor.TelefoneFornecedor.Where(telefone => !idTelefone.Contains(telefone.Id)).ToArray(); if (telefones.Length > 0) { _service.DeleteRange(telefones); } _mapper.Map(model, fornecedor); var obtemEmpresa = await _empresa.ObterPorIdAsync(model.EmpresaId); var valida = await FornecedorValidation.ValidaFornecedor(model, obtemEmpresa); if (valida.Any()) { throw new ArgumentException(valida); } _service.Update(model); if (await _service.SaveChangesAsync()) { return(Ok(_mapper.Map <FornecedorEntity>(model))); } } catch (ArgumentException ex) { return(StatusCode((int)HttpStatusCode.InternalServerError, ex.Message)); } return(BadRequest()); }