/// <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); } }