public async Task <IActionResult> Put(int EquipamentoId, EquipamentoDto model) { try { var equipamento = await _repo.GetAllEquipamentoAsyncById(EquipamentoId); if (equipamento == null) { return(NotFound()); } _mapper.Map(model, equipamento); _repo.Update(equipamento); if (await _repo.SaveChangesAsync()) { return(Created($"/api/equipamento/{model.Id}", _mapper.Map <EquipamentoDto>(equipamento))); } } catch (System.Exception ex) { return(this.StatusCode(StatusCodes.Status500InternalServerError, $"Banco de dados falhou: {ex.Message}")); } return(BadRequest()); }
public async Task <IActionResult> Put(int ClienteId, ClienteDto model) { try { var cliente = await _repo.GetAllClienteAsyncById(ClienteId); if (cliente == null) { return(NotFound()); } var idEnderecos = new List <int>(); var idTelefones = new List <int>(); model.Enderecos.ForEach(item => idEnderecos.Add(item.Id)); model.Telefones.ForEach(item => idTelefones.Add(item.Id)); var enderecos = cliente.Enderecos.Where( endereco => !idEnderecos.Contains(endereco.Id) ).ToArray(); var telefones = cliente.Telefones.Where( telefone => !idTelefones.Contains(telefone.Id) ).ToArray(); if (enderecos.Length >= 0) { _repo.DeleteRange(enderecos); } if (telefones.Length >= 0) { _repo.DeleteRange(telefones); } _mapper.Map(model, cliente); _repo.Update(cliente); if (await _repo.SaveChangesAsync()) { return(Created($"/api/cliente/{model.Id}", _mapper.Map <ClienteDto>(cliente))); } } catch (System.Exception ex) { return(this.StatusCode(StatusCodes.Status500InternalServerError, $"Banco de dados falhou: {ex.Message}")); } return(BadRequest()); }