Esempio n. 1
0
        /// <summary>
        /// Método Dispose
        /// </summary>
        /// <param name="disposing">Parâmetro disposing</param>
        protected virtual void Dispose(bool disposing)
        {
            if (!disposing)
            {
                return;
            }

            // Finalizar instancias
            try
            {
                if ((this.sessaoControle != null) && this.sessaoPrivada)
                {
                    this.sessaoControle.Dispose();
                    this.sessaoControle = null;
                }
            }
            catch (Exception exp)
            {
                Logger.Error(new PointBlankException("[BaseBo] Ocorreu um erro ao finalizar sessão controle", exp));
            }

            try
            {
                if (this.factoryBoLocal != null)
                {
                    this.factoryBoLocal.Dispose();
                    this.factoryBoLocal = null;
                }
            }
            catch (Exception exp)
            {
                Logger.Error(new PointBlankException("[BaseBo] Ocorreu um erro ao finalizar factoryBoLocal", exp));
            }

            try
            {
                if (this.transacaoControle != null)
                {
                    this.transacaoControle.Dispose();
                    this.transacaoControle = null;
                }
            }
            catch (Exception exp)
            {
                Logger.Error(new PointBlankException("[BaseBo] Ocorreu um erro ao finalizar transacaoControle", exp));
            }

            // Liberar a memoria (Testado)
            GC.Collect();
        }
Esempio n. 2
0
        /// <summary>
        /// Método Main
        /// </summary>
        /// <param name="args">Parâmetro args</param>
        public static void Main()
        {
            try
            {
                // Log de inicio
                Console.Title = "Point Blank - Auth";

                // Configurações
                Logger.Info("Carregando arquivo de configurações");
                ConfigFile configFile = new ConfigFile();

                // Inicializar controles do WCF
                WcfNetwork.Inicializar(configFile.CoreHost, configFile.CorePort);

                // Validar Conexão
                try
                {
                    WcfNetwork.ValidarConexao(configFile.CoreHost, configFile.CorePort);
                }
                catch (Exception exp)
                {
                    Logger.Error(exp, "Validar conexão com servidor (Core)", false);
                    return;
                }

                // Criar/Verificar estrutura padrão
                Logger.Info("Verificando necessidade de criação dos servidores");
                FactoryBo.GameServer(bo => bo.CriarEstruturaPadrao(configFile.NetworkHost, configFile.NetworkPort));

                // Teste
                IList <GameServer> listaTmp = FactoryBo.GameServer(bo => bo.ObterRelacaoTodos());

                // Inciar serviços do servidor
                new GameNetwork(configFile.NetworkHost, configFile.NetworkPort, configFile.ShowHex);
            }
            catch (ThreadAbortException)
            {
                Logger.Error("Ocorreu um erro não tratado, todas as conexões serão finalizadas");
                throw;
            }
            catch (Exception exp)
            {
                Logger.Error(exp, "Ocorreu um erro e com isso as conexões serão finalizadas", true);
            }
            finally
            {
                Process.GetCurrentProcess().WaitForExit();
            }
        }
Esempio n. 3
0
 /// <inheritdoc/>
 protected override void RunStartPacket()
 {
     this.SendPacket(new PROTOCOL_SERVER_MESSAGE_CONNECTIONSUCCESS_ACK(this, FactoryBo.GameServer(bo => bo.ObterRelacaoTodos())));
 }