Ejemplo n.º 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);
            }
        }