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());
        }
示例#2
0
        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());
        }