public async Task EditarAsync(SalaDto dto) { if (dto.Id == null) { AddNotification("EditarSala", MensagemValidacao.CampoInvalido); return; } var salaEditar = await _salaRepository.ObterAsync(dto.Id.Value); if (salaEditar == null) { AddNotification("EditarSala", MensagemValidacao.Sala.NaoExiste); return; } var identificadorDuplicado = await _salaRepository.ObterAsync(dto.IdentificadorSala); if (identificadorDuplicado != null && identificadorDuplicado.Id != salaEditar.Id) { AddNotification("EditarSala", MensagemValidacao.Sala.IdentificadorJaExiste); return; } salaEditar.Editar(dto.Tipo, dto.IdentificadorSala, dto.Observacao, Convert.ToDecimal(dto.Area.Replace('.', ',')), dto.Andar, dto.CapacidadeAlunos, dto.Ativo); if (dto.EquipamentoId != null && dto.EquipamentoId.Any()) { var equipamentos = await _equipamentoRepository.ObterAsync(dto.EquipamentoId); if (!equipamentos.Any()) { AddNotification("EditarSala", MensagemValidacao.Equipamento.NaoExiste); return; } if (salaEditar.SalaEquipamentos != null && salaEditar.SalaEquipamentos.Any()) { await _salaRepository.DeletarSalaEquipamentosAsync(salaEditar.SalaEquipamentos); } await _salaRepository.CriarSalaEquipamentosAsync(equipamentos.Select(e => new SalaEquipamento(salaEditar.Id, e.Id)).ToList()); } else if (salaEditar.SalaEquipamentos != null && salaEditar.SalaEquipamentos.Any()) { await _salaRepository.DeletarSalaEquipamentosAsync(salaEditar.SalaEquipamentos); } await _salaRepository.EditatAsync(salaEditar); }