public bool Insert(EquipamentoViewModel entity) { try { ICodigoInfravermelhoService codigoInfravermelhoService = new CodigoInfravermelhoService(_context); var equip = SetEntity(entity.EquipamentoModel); _context.Add(equip); int inserted = _context.SaveChanges(); _context.Entry(equip).Reload(); int id = equip.Id; var codigosEntity = new List <CodigoInfravermelhoModel>(); if (inserted == 1) { entity.Codigos.ForEach(c => codigosEntity.Add(new CodigoInfravermelhoModel { Codigo = c.Codigo, IdEquipamento = equip.Id, IdOperacao = c.IdOperacao })); codigoInfravermelhoService.AddAll(codigosEntity); } return(Convert.ToBoolean(inserted)); } catch (Exception e) { throw e; } }
public bool Remove(int id) { using (var transaction = _context.Database.BeginTransaction()) { try { var equipamento = _context.Equipamento.Where(e => e.Id == id).FirstOrDefault(); var codigoService = new CodigoInfravermelhoService(_context); var codigos = codigoService.GetAllByEquipamento(id); if (codigos != null) { codigoService.RemoveAll(codigos); } if (equipamento != null) { _context.Equipamento.Remove(equipamento); var save = _context.SaveChanges() == 1 ? true : false; transaction.Commit(); return(save); } else { throw new ServiceException("Algo deu errado, tente novamente em alguns minutos."); } } catch (Exception e) { transaction.Rollback(); throw e; } } }
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); }