void stmclient_OnDisconnect(string Desc) { logger.Info("OnDisconnect(): " + Desc); string body = ""; string subject = System.Environment.MachineName + " STM: Desconectado da bolsa"; body += System.Environment.MachineName + " Conector STM: "; body += "\r\n"; body += "Desconectado da BOLSA: " + DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"); body += "\r\n"; body += "Desc: " + Desc + "\r\n"; Gradual.OMS.Library.Utilities.EnviarEmail(subject, body); stmclient = null; }
void stmclient_OnError(int error, string msg, string description) { logger.ErrorFormat("stmclient_OnError({0},{1},{2})", error, msg, description); string body = ""; string subject = System.Environment.MachineName + " STM: Desconectado da bolsa"; body += System.Environment.MachineName + " Conector STM: "; body += "\r\n"; body += "Desconectado da BOLSA: " + DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"); body += "\r\n"; body += "Erro: " + error.ToString() + "\r\n"; body += "Msg : " + msg + "\r\n"; body += "Desc: " + description + "\r\n"; Gradual.OMS.Library.Utilities.EnviarEmail(subject, body); stmclient.Disconnect(); stmclient = null; }
public void Run() { try { int lastTrial = 600; logger.Info("Iniciando conexao com STM"); byte[] senhaDecoded = Convert.FromBase64String(ConfigurationManager.AppSettings["STMPasswd"].ToString()); byte[] userDecoded = Convert.FromBase64String(ConfigurationManager.AppSettings["STMUser"].ToString()); while (_bKeepRunning) { if (stmclient == null && lastTrial > 600) { logger.Info("Tentando conectar com STM"); stmclient = new STMCom.TSTMCom(); stmclient.Cas_Funcionario = Encoding.UTF8.GetString(userDecoded); stmclient.Cas_Usuario = "227"; stmclient.Cas_Senha = Encoding.UTF8.GetString(senhaDecoded); stmclient.Compressed = true; //stmclient.Filter = "<AN >+;<ANF >+;"; // 0123456 stmclient.Ack = true; // Caso efetue troca de senha if (ConfigurationManager.AppSettings["STMNewPasswd"] != null) { string novasenha = ConfigurationManager.AppSettings["STMNewPasswd"].ToString(); byte[] novasenhaDecoded = Convert.FromBase64String(novasenha); logger.Info("Efetuando troca de senha [" + Encoding.UTF8.GetString(senhaDecoded) + "] -> [" + Encoding.UTF8.GetString(novasenhaDecoded) + "]"); stmclient.Cas_NovaSenha = Encoding.UTF8.GetString(novasenhaDecoded); // Remove a nova senha, no arquivo de configuracao inclusive Configuration stmconfig = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); stmconfig.AppSettings.Settings.Remove("STMNewPasswd"); stmconfig.AppSettings.Settings.Remove("STMPasswd"); stmconfig.AppSettings.Settings.Add("STMPasswd", novasenha); stmconfig.Save(ConfigurationSaveMode.Modified); ConfigurationManager.RefreshSection("appSettings"); } stmclient.OnAcceptStart += new STMCom.ISTMComEvents_OnAcceptStartEventHandler(stmclient_OnAcceptStart); stmclient.OnConnect += new STMCom.ISTMComEvents_OnConnectEventHandler(stmclient_OnConnect); stmclient.OnDisconnect += new STMCom.ISTMComEvents_OnDisconnectEventHandler(stmclient_OnDisconnect); stmclient.OnError += new STMCom.ISTMComEvents_OnErrorEventHandler(stmclient_OnError); stmclient.OnStarted += new STMCom.ISTMComEvents_OnStartedEventHandler(stmclient_OnStarted); stmclient.OnReceiveData += new STMCom.ISTMComEvents_OnReceiveDataEventHandler(stmclient_OnReceiveData); logger.Info("Chamando connect()"); bool bConnect = stmclient.Connect(); if (!bConnect) { logger.Error("Connect voltou false"); stmclient = null; } lastTrial = 0; } else { lastTrial++; } Thread.Sleep(100); } if (stmclient != null) { stmclient.Disconnect(); } } catch (Exception ex) { logger.Error("Run(): " + ex.Message, ex); } }