public bool Remove(int id) { var _hardwareSalaService = new HardwareDeSalaService(_context); var _minhaSalaService = new SalaParticularService(_context); var _horarioSalaService = new HorarioSalaService(_context); var _planejamentoService = new PlanejamentoService(_context); try { if (_hardwareSalaService.GetByIdSala(id).Count == 0 && _minhaSalaService.GetByIdSala(id).Count == 0 && _horarioSalaService.GetByIdSala(id).Count == 0 && _planejamentoService.GetByIdSala(id).Count == 0) { var x = _context.Sala.Where(s => s.Id == id).FirstOrDefault(); if (x != null) { _context.Remove(x); return(_context.SaveChanges() == 1); } } else { throw new ServiceException("Essa sala nao pode ser removida pois existem outros registros associados a ela!"); } } catch (Exception e) { throw e; } return(false); }
public bool InsertSalaWithHardwares(SalaAuxModel sala, int idUsuario) { using (var transaction = _context.Database.BeginTransaction()) { try { var salaInserida = Insert(new SalaModel { Id = sala.Sala.Id, Titulo = sala.Sala.Titulo, BlocoId = sala.Sala.BlocoId }); if (salaInserida == null) { throw new ServiceException("Houve um problema ao cadastrar sala, tente novamente em alguns minutos!"); } var _monitoramentoService = new MonitoramentoService(_context); _monitoramentoService.Insert(new MonitoramentoModel { Luzes = false, ArCondicionado = false, SalaId = salaInserida.Id }); if (sala.HardwaresSala.Count > 0) { var _hardwareDeSalaService = new HardwareDeSalaService(_context); foreach (var item in sala.HardwaresSala) { if (_hardwareDeSalaService.GetByMAC(item.MAC, idUsuario) != null) { throw new ServiceException("Já existe um dispositivos com o endereço MAC " + item.MAC + " informado, corrija e tente novamente!"); } if (item.TipoHardwareId.Id == TipoHardwareModel.CONTROLADOR_DE_SALA && _hardwareDeSalaService.GetByIp(item.Ip, idUsuario) != null) { throw new ServiceException("Já existe um dispositivos com o endereço IP " + item.Ip + " informado, corrija e tente novamente!"); } _hardwareDeSalaService.Insert(new HardwareDeSalaModel { MAC = item.MAC, SalaId = salaInserida.Id, TipoHardwareId = item.TipoHardwareId.Id, Ip = item.Ip }, idUsuario); } transaction.Commit(); return(true); } } catch (Exception) { transaction.Rollback(); throw; } } return(true); }
private bool EnviarComandosMonitoramento(MonitoramentoModel solicitacao) { var _hardwareDeSalaService = new HardwareDeSalaService(_context); var modelDesatualizado = GetById(solicitacao.Id); bool comandoEnviadoComSucesso = true; /* * Verifica qual o equipamento foi 'monitorado' para ligar/desligar */ if (solicitacao.ArCondicionado != modelDesatualizado.ArCondicionado) { var _codigosInfravermelhoService = new CodigoInfravermelhoService(_context); var _equipamentoServiceService = new EquipamentoService(_context); var idOperacao = solicitacao.ArCondicionado ? OperacaoModel.OPERACAO_LIGAR : OperacaoModel.OPERACAO_DESLIGAR; var equipamento = _equipamentoServiceService.GetByIdSalaAndTipoEquipamento(solicitacao.SalaId, EquipamentoModel.TIPO_CONDICIONADOR); var codigosInfravermelho = _codigosInfravermelhoService.GetByIdOperacaoAndIdEquipamento(equipamento.Id, idOperacao); var hardwareDeSala = _hardwareDeSalaService.GetByIdSalaAndTipoHardware(solicitacao.SalaId, TipoHardwareModel.CONTROLADOR_DE_SALA).FirstOrDefault(); if (codigosInfravermelho == null) { throw new ServiceException("Houve um problema e o monitoramento não pode ser finalizado, por favor tente novamente mais tarde!"); } var mensagem = "CONDICIONADOR;" + codigosInfravermelho.Codigo + ";"; try { var clienteSocket = new ClienteSocketService(hardwareDeSala.Ip); clienteSocket.AbrirConexao(); var status = clienteSocket.EnviarComando(mensagem); clienteSocket.FecharConexao(); solicitacao.ArCondicionado = status.Contains("AC-ON"); comandoEnviadoComSucesso = status != null; } catch (Exception e) { Console.WriteLine(e.Message); return(false); } } else if (solicitacao.Luzes != modelDesatualizado.Luzes) { var hardwareDeSala = _hardwareDeSalaService.GetByIdSalaAndTipoHardware(solicitacao.SalaId, TipoHardwareModel.CONTROLADOR_DE_SALA).FirstOrDefault(); var mensagem = "LUZES;" + solicitacao.Luzes + ";"; try { var clienteSocket = new ClienteSocketService(hardwareDeSala.Ip); clienteSocket.AbrirConexao(); var status = clienteSocket.EnviarComando(mensagem); clienteSocket.FecharConexao(); solicitacao.Luzes = status.Contains("L-ON"); comandoEnviadoComSucesso = status != null; } catch (Exception e) { Console.WriteLine(e.Message); return(false); } } return(comandoEnviadoComSucesso); }