Exemple #1
0
        /// <summary>
        /// Método Web Service para obter status de um dispositivo
        /// Caso não informado identificador do dispositivo, é retornado para o Piso respectivo
        /// </summary>
        public bool StatusDispositivos(string Piso, string IdentificadorDispositivo, out Dictionary <string, string> DispositivosStatus, out string Mensagem)
        {
            Mensagem           = string.Empty;
            DispositivosStatus = new Dictionary <string, string>();

            try
            {
                // Recebido Identificador específico para o Dispositivo
                if (!string.IsNullOrEmpty(IdentificadorDispositivo))
                {
                    if (cdStatusDispositivos.ContainsKey(IdentificadorDispositivo))
                    {
                        DispositivosStatus.Add(IdentificadorDispositivo, cdStatusDispositivos[IdentificadorDispositivo]);
                    }

                    return(true);
                }

                List <Biblioteca.Modelo.Dispositivo> lstDisp = null;

                using (Dados.GerenciadorDB mngDB = new Dados.GerenciadorDB(false))
                {
                    controlBase <Biblioteca.Modelo.Dispositivo> ctrlDisp = new controlBase <Biblioteca.Modelo.Dispositivo>();

                    if (string.IsNullOrEmpty(Piso))
                    {
                        lstDisp = ctrlDisp.LoadTodos(mngDB);
                    }
                    else
                    {
                        lstDisp = ctrlDisp.LoadFiltro(mngDB, l => l.Piso == Piso);
                    }
                }

                // Filtra dispositivos conectados
                var Disps = from Biblioteca.Modelo.Dispositivo objAux in lstDisp
                            where cdStatusDispositivos.ContainsKey(objAux.Codigo)
                            select objAux;

                DispositivosStatus = new Dictionary <string, string>(Disps.ToDictionary(i => i.Codigo, i => cdStatusDispositivos[i.Codigo]));
                return(true);
            }
            catch (Exception exc)
            {
                try
                {
                    Mensagem = string.Format("Não foi possível verificar o(s) valor(es) do(s) dispositivo(s) solicitado(s). Erro: {0}", exc.Message);
                    controlLog.Insere(Biblioteca.Modelo.Log.LogTipo.Erro, Mensagem, exc);
                }
                catch
                {
                    // Vish
                }

                return(false);
            }
        }
Exemple #2
0
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        static void Main()
        {
            bool bLoga = false;

            #region Validações
            // Faz um teste inicial de Conexão com o Banco de Dados
            if (!Util.TestaArquivoConexao())
            {
                return;
            }

            // Carrega configurador geral do sistema
            List <Biblioteca.Modelo.ConfiguracaoGeral> lstConfig = null;
            using (Dados.GerenciadorDB mngBD = new Dados.GerenciadorDB(false))
            {
                Biblioteca.Controle.controlBase <Biblioteca.Modelo.ConfiguracaoGeral> ctrlGeral = new Biblioteca.Controle.controlBase <Biblioteca.Modelo.ConfiguracaoGeral>();
                lstConfig = ctrlGeral.LoadTodos(mngBD);
            }

            // Não configurado sistema
            if (lstConfig == null || lstConfig.Count == 0)
            {
                Biblioteca.Controle.controlLog.Insere(Biblioteca.Modelo.Log.LogTipo.Erro,
                                                      "Erro ao iniciar o Serviço do Gerenciador. Não foi possível carregar os dados da tabela: ConfiguracaoGeral do sistema.");
                return;
            }

            // Deve existir apenas um item
            Service._configuradorGeral = lstConfig.First();
            #endregion

            #region Debug
            // Permite executar Serviço em Debug
            if (System.Diagnostics.Debugger.IsAttached)
            {
                RodaComoServico();
            }
            #endregion

            // Aqui é execução do Serviço
            ServiceBase[] ServicesToRun;
            ServicesToRun = new ServiceBase[]
            {
                new Service(bLoga)
            };

            ServiceBase.Run(ServicesToRun);
        }