Beispiel #1
0
 public bool ExecutaEncadeado(Comando pComando, Saidas pSaidas)
 {
     foreach (var comando in pComando.ListaComandos)
     {
         Executa(Busca(int.Parse(comando)), pSaidas);
     }
     return(true);
 }
Beispiel #2
0
        public bool Executa(Comando pComando, Saidas pSaidas)
        {
            try
            {
                switch (pComando.EquipamentosId)
                {
                case 1:
                {
                    pSaidas.Tomada1.Write(pComando.EstadoEquipamento);
                    break;
                }

                case 2:
                {
                    pSaidas.Tomada2.Write(pComando.EstadoEquipamento);
                    break;
                }

                case 3:
                {
                    pSaidas.Tomada3.Write(pComando.EstadoEquipamento);
                    break;
                }

                case 4:
                {
                    pSaidas.Tomada4.Write(pComando.EstadoEquipamento);
                    break;
                }

                case 5:
                {
                    pSaidas.Tomada5.Write(pComando.EstadoEquipamento);
                    break;
                }
                }

                return(true);
            }
            catch (Exception ex)
            {
                //Grava log
                Funcoes.EscreverLog(PathSd, "Erro de exceção ocorrido ao executar comando '" + pComando.Nome + "': " + ex, 1, false);
                return(false);
            }
        }
Beispiel #3
0
        public string PercorreMensagens(ArrayList pMensagens, Saidas pSaidas,
                                        string pToken, string pTokenSecret, Ip pClasseIp)
        {
            try
            {
                //Sai da rotina caso não houver mensagens para tratar
                if (pMensagens == null || pMensagens.Count.Equals(0))
                {
                    return("OK");
                }
                //====================================================

                //Busca comandos cadastrados
                var listaComandos = Busca();
                //==========================

                //Verifica se obteve com sucesso os comandos
                if (listaComandos == null || listaComandos.Count.Equals(0))
                {
                    return("Sem comandos cadastrados");
                }
                //==========================================

                //Passa por todas as mensagens coletadas
                foreach (var mensagem in pMensagens)
                {
                    //Obtem objeto da mensagem
                    var itemMensagem = (Mensagem)mensagem;

                    //Salva id da mensagem executada
                    Parametros.GravaUltimaMsgId(PathSd, itemMensagem.Id);

                    //Verifica se nao deve finalizar a aplicação
                    if (itemMensagem.Texto.IndexOf("finalizar app") >= 0)
                    {
                        Parametros.GravaUltimaMsgId(PathSd, itemMensagem.Id);
                        return("close");
                    }

                    //Passa por cada comando
                    foreach (var listaComando in listaComandos)
                    {
                        var itemcomando = (Comando)listaComando;

                        //Verifica se comando está ativo
                        if (!itemcomando.Ativo)
                        {
                            continue;
                        }

                        //Verifica se encontra o nome do comando detro da mensagem
                        if (itemMensagem.Texto.IndexOf(itemcomando.Nome) >= 0)
                        {
                            //Verifica se há restrição para usuários
                            if (itemcomando.RestricaoUsuarios != string.Empty &&
                                !(itemcomando.RestricaoUsuarios.IndexOf(itemMensagem.EnviadoPor) >= 0))
                            {
                                continue;
                            }

                            //Executa o comando
                            var retorno = itemcomando.TipoComando == TipoComandoEnum.Simples ?
                                          Executa(itemcomando, pSaidas) :
                                          ExecutaEncadeado(itemcomando, pSaidas);

                            //Verifica retorno da execução
                            if (retorno)
                            {
                                //Salva id da mensagem executada
                                //Parametros.GravaUltimaMsgId(PathSd, itemMensagem.Id);

                                //Verifica necessidade de envio de retorno
                                if (itemcomando.EnviaRetorno)
                                {
                                    Mensagem.EnviaMensagem(pToken, pTokenSecret, itemMensagem.EnviadoPor, "Comando_" + itemcomando.Descricao + "_executado_com_sucesso");
                                }
                            }
                            else
                            {
                                //Verifica necessidade de envio de retorno
                                if (itemcomando.EnviaRetorno)
                                {
                                    Mensagem.EnviaMensagem(pToken, pTokenSecret, itemMensagem.EnviadoPor, "Comando_" + itemcomando.Descricao + "_nao_executado_Erro_de_execucao");
                                }
                            }

                            //Proxima mensagem
                            break;
                        } //if comando
                    }     //foreach comando
                }         //foreach mensagem

                //Retorno com sucesso
                return("OK");
            }
            catch (Exception ex)
            {
                //Grava log
                Funcoes.EscreverLog(PathSd, "Erro de exceção ocorrido ao percorrer mensagens: " + ex, 1, false);
                return(ex.Message);
            }
        }