/// <summary> /// Aborta um canal /// </summary> /// <param name="canal"></param> private void _resetCanal(CanalInfo canal) { try { Ativador.AbortChannel(canal.roteador); Ativador.AbortChannel(canal.assinatura); } catch (Exception ex) { logger.Error("_resetCanal():" + ex.Message, ex); } canal.Conectado = false; try { logger.Info("Canal: " + canal.Exchange + "-" + canal.ChannelID); canal.roteador = RoteadorCanalComunic.GetChannel <IRoteadorOrdens>(canal.RoteadorAddress, null); canal.assinatura = RoteadorCanalComunic.GetChannel <IAssinaturasRoteadorOrdensCallback>(canal.AssinaturaAddress, this); canal.roteadorAdm = RoteadorCanalComunic.GetChannel <IRoteadorOrdensAdmin>(canal.RoteadorAdmAddress, null); logger.Info("Canal: " + canal.Exchange + "-" + canal.ChannelID + " assinando eventos de status"); canal.assinatura.AssinarExecucaoOrdens(new AssinarExecucaoOrdemRequest()); canal.assinatura.AssinarStatusConexaoBolsa(new AssinarStatusConexaoBolsaRequest()); } catch (Exception ex) { logger.Error("_resetCanal():" + ex.Message, ex); } }
private void _carregarCanais() { // Carrega a tabela de canais foreach (CanalConfig canal in _config.Canais) { logger.Info("Carregando informação do canal: " + canal.Exchange); logger.Info("Porta ........................: " + canal.ChannelID); logger.Info("EndPointRoteader .............: " + canal.EndPointRoteador); logger.Info("EndPointAssinatura ...........: " + canal.EndPointAssinatura); logger.Info("EndPointRoteadorAdm ..........: " + canal.EndPointRoteadorAdm); CanalInfo info = new CanalInfo(); info.ChannelID = canal.ChannelID; info.Exchange = canal.Exchange; info.RoteadorAddress = canal.EndPointRoteador; info.AssinaturaAddress = canal.EndPointAssinatura; info.RoteadorAdmAddress = canal.EndPointRoteadorAdm; info.assinatura = null; info.roteador = null; info.roteadorAdm = null; _canais.Add(info.Exchange + info.ChannelID, info); } logger.Info("Obtendo instancias de assinatura e envio de ordens"); // Assina cada um dos eventos dos canais foreach (CanalInfo canal in _canais.Values) { try { canal.roteador = RoteadorCanalComunic.GetChannel <IRoteadorOrdens>(canal.RoteadorAddress, null); canal.assinatura = RoteadorCanalComunic.GetChannel <IAssinaturasRoteadorOrdensCallback>(canal.AssinaturaAddress, this); canal.roteadorAdm = RoteadorCanalComunic.GetChannel <IRoteadorOrdensAdmin>(canal.RoteadorAdmAddress, null); canal.assinatura.AssinarExecucaoOrdens(new AssinarExecucaoOrdemRequest()); } catch (EndpointNotFoundException enfex) { logger.Error("Nao pode conectar no canal" + canal.Exchange + "-" + canal.ChannelID + " [" + enfex.Message + "]"); canal.Conectado = false; } } logger.Info(_canais.Count + " canais carregados"); }