public async Task CriarAsync(SalaDto dto) { try { var identificadorDuplicado = await _salaRepository.ObterAsync(dto.IdentificadorSala); if (identificadorDuplicado != null) { AddNotification("CadastrarSala", MensagemValidacao.Sala.IdentificadorJaExiste); return; } var sala = new Sala(dto.Tipo, dto.IdentificadorSala, dto.Observacao, Convert.ToDecimal(dto.Area.Replace('.', ',')), dto.Andar, dto.CapacidadeAlunos); if (dto.EquipamentoId != null && dto.EquipamentoId.Any()) { var equipamentos = await _equipamentoRepository.ObterAsync(dto.EquipamentoId); if (equipamentos == null || !equipamentos.Any()) { AddNotification("CadastrarSala", MensagemValidacao.Equipamento.NaoExiste); return; } sala.AdicionarSalaEquipamento(equipamentos.Select(e => new SalaEquipamento(sala.Id, e.Id)).ToList()); } await _salaRepository.CriarAsync(sala); } catch (Exception ex) { AddNotification("CadastrarSala", MensagemValidacao.ContacteSuporte); return; } }