Exemple #1
0
 public MainWindow()
 {
     InitializeComponent();
     nf = new NetworkFacade();
     UpdateCoursesListView();
     UpdateTeacherComboBox();
     UpdateTeacherListView();
 }
Exemple #2
0
        public Form1()
        {
            InitializeComponent();

            bool FoundConfig = ConfigurationManager.LoadCityConfig();

            Logger.Initialize("Log.txt");
            Logger.WarnEnabled  = true;
            Logger.DebugEnabled = true;

            GonzoNet.Logger.OnMessageLogged      += new GonzoNet.MessageLoggedDelegate(Logger_OnMessageLogged);
            CityDataModel.Logger.OnMessageLogged += new CityDataModel.MessageLoggedDelegate(Logger_OnMessageLogged);
            ProtocolAbstractionLibraryD.Logger.OnMessageLogged += new ProtocolAbstractionLibraryD.MessageLoggedDelegate(Logger_OnMessageLogged);

            if (!FoundConfig)
            {
                Logger.LogWarning("Couldn't find a ServerConfig.ini file!");
                //TODO: This doesn't work...
                Application.Exit();
            }

            //This has to happen for the static constructor to be called...
            NetworkFacade m_NetworkFacade = new NetworkFacade();

            var dbConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["MAIN_DB"];

            DataAccess.ConnectionString = dbConnectionString.ConnectionString;

            m_Listener = new Listener();
            //m_Listener.OnReceiveEvent += new OnReceiveDelegate(m_Listener_OnReceiveEvent);

            m_LoginClient = new NetworkClient("127.0.0.1", 2108);
            m_LoginClient.OnNetworkError += new NetworkErrorDelegate(m_LoginClient_OnNetworkError);
            m_LoginClient.OnConnected    += new OnConnectedDelegate(m_LoginClient_OnConnected);
            m_LoginClient.Connect(null);

            //Send a pulse to the LoginServer every second.
            m_PulseTimer           = new System.Timers.Timer(1000);
            m_PulseTimer.AutoReset = true;
            m_PulseTimer.Elapsed  += new ElapsedEventHandler(m_PulseTimer_Elapsed);
            m_PulseTimer.Start();

            m_Listener.Initialize(Settings.BINDING);
        }
Exemple #3
0
        static void Main(string[] args)
        {
            bool FoundConfig = ConfigurationManager.LoadCityConfig();

            Logger.Initialize("Log.txt");
            Logger.WarnEnabled  = true;
            Logger.DebugEnabled = true;

            GonzoNet.Logger.OnMessageLogged      += new GonzoNet.MessageLoggedDelegate(Logger_OnMessageLogged);
            CityDataModel.Logger.OnMessageLogged += new CityDataModel.MessageLoggedDelegate(Logger_OnMessageLogged);
            ProtocolAbstractionLibraryD.Logger.OnMessageLogged += new ProtocolAbstractionLibraryD.MessageLoggedDelegate(Logger_OnMessageLogged);

            if (!FoundConfig)
            {
                Console.WriteLine("Couldn't find a ServerConfig.ini file!");
                Console.ReadLine();
                Environment.Exit(0);
            }

            //This has to happen for the static constructor to be called...
            NetworkFacade m_NetworkFacade = new NetworkFacade();

            var dbConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["MAIN_DB"];

            DataAccess.ConnectionString = dbConnectionString.ConnectionString;

            NetworkFacade.NetworkListener = new Listener(EncryptionMode.AESCrypto);
            //Remove a player from the current session when it disconnects.
            NetworkFacade.NetworkListener.OnDisconnected += new OnDisconnectedDelegate(NetworkFacade.CurrentSession.RemovePlayer);

            m_LoginClient = new NetworkClient("127.0.0.1", 2108, EncryptionMode.AESCrypto, true);
            m_LoginClient.OnNetworkError += new NetworkErrorDelegate(m_LoginClient_OnNetworkError);
            m_LoginClient.OnConnected    += new OnConnectedDelegate(m_LoginClient_OnConnected);
            m_LoginClient.Connect(null);

            //Adds all houses from DB to the current session.
            using (DataAccess db = DataAccess.Get())
            {
                IQueryable <Character> Chars = db.Characters.GetAllCharsWithHouses();

                var CharsWithHouses = Chars.Where(x => x.HouseHouse != null);

                foreach (Character Char in CharsWithHouses)
                {
                    NetworkFacade.CurrentSession.AddHouse(Char, Char.HouseHouse);
                }
            }

            NetworkFacade.NetworkListener.Initialize(Settings.BINDING);
            m_NancyHost = new NancyHost(new Uri("http://173.248.136.133:8888/city/"));
            m_NancyHost.Start();

            try
            {
                NetworkFacade.CurrentTerrain.Initialize("East Jerome");
                NetworkFacade.CurrentTerrain.LoadContent();
                NetworkFacade.CurrentTerrain.GenerateCityMesh();
            }
            catch (Exception e)
            {
                Console.WriteLine("Couldn't load elevation data!");
                Console.WriteLine(e.ToString());
                Console.ReadLine();
                Environment.Exit(0);
            }


            m_VM = new VM.VM();
            m_VM.Init();

            while (true)
            {
                m_VM.Update();
                Thread.Sleep(1000);
            }
        }
        public void BeginReceiveTest()
        {
            AutoResetEvent resetEvent = new AutoResetEvent( false );

            NetworkFacade facadeUnderTest = null;

            // Set up the "server"
            TcpListener server = new TcpListener( Dns.GetHostEntry( "localhost" ).AddressList[0], 4001 );
            server.Start();

            // When the client connects, set up the object under test
            server.BeginAcceptTcpClient(
                ar =>
                {
                    TcpListener s = ar.AsyncState as TcpListener;
                    TcpClient serversClientSocket = s.EndAcceptTcpClient( ar );
                    facadeUnderTest = new NetworkFacade( serversClientSocket.Client );
                    resetEvent.Set();
                }
                ,
                server );

            //
            // Setup complete...
            //

            // Connect to the above "server"
            TcpClient client = new TcpClient( "localhost", 4001 );

            // Wait for client connect
            Assert.That( resetEvent.WaitOne( 30000 ), Is.True );

            // Wait to receive data from client. Once received, release the reset event
            byte[] buffer = new byte[]
                            {
                                0x04, 0x05, 0x06
                            };
            facadeUnderTest.BeginReceive( ( ok, data, facade ) =>
                                          {
                                              Assert.That( facade, Is.SameAs( facadeUnderTest ) );
                                              Assert.That( ok,
                                                           Is.True,
                                                           "The 'success' flag was not set in the callback even though the data was sent" );
                                              Assert.That( data[0], Is.EqualTo( 0x04 ) );
                                              Assert.That( data.Length, Is.EqualTo( 3 ) );
                                              resetEvent.Set();
                                          } );

            client.GetStream().Write( buffer, 0, buffer.Length );

            // Wait for the class under test to receive data
            Assert.That( resetEvent.WaitOne( 5000 ), Is.True );
        }
        public void VerifyDisconnectBehaviorOnReceive()
        {
            bool wasEventRaised = false;

            AutoResetEvent resetEvent = new AutoResetEvent(false);

            NetworkFacade facadeUnderTest = null;

            // Set up the "server"
            TcpListener server = new TcpListener(Dns.GetHostEntry("localhost").AddressList[0], 4003);
            server.Start();

            TcpClient serversClientSocket = null;

            // When the client connects, set up the object under test
            server.BeginAcceptTcpClient(
                ar =>
                {
                    TcpListener s = ar.AsyncState as TcpListener;
                    serversClientSocket = s.EndAcceptTcpClient(ar);
                    facadeUnderTest = new NetworkFacade(serversClientSocket.Client);
                    resetEvent.Set();
                }
                ,
                server);

            //
            // Setup complete...
            //

            // Connect to the above "server" from a web client
            TcpClient client = new TcpClient("localhost", 4003);

            // Wait for client connect
            Assert.That(resetEvent.WaitOne(30000), Is.True);

            resetEvent.Reset();

            facadeUnderTest.ConnectionClosed += ( object sender, System.EventArgs e ) =>
                                                {
                                                    wasEventRaised = true;
                                                    resetEvent.Set();
                                                };

            facadeUnderTest.BeginReceive((s,d,n) => Assert.That(s, Is.False));

            // After the client connects, close the connection and check for the event
            serversClientSocket.Client.Close();

            Assert.That(resetEvent.WaitOne(30000), Is.True);

            Assert.That(wasEventRaised);
        }
        public void BeginCloseTest()
        {
            AutoResetEvent resetEvent = new AutoResetEvent( false );

            NetworkFacade facadeUnderTest = null;

            // Set up the "server"
            TcpListener server = new TcpListener( Dns.GetHostEntry( "localhost" ).AddressList[0], 4002 );
            server.Start();

            // When the client connects, set up the object under test
            server.BeginAcceptTcpClient(
                ar =>
                {
                    TcpListener s = ar.AsyncState as TcpListener;
                    TcpClient serversClientSocket = s.EndAcceptTcpClient( ar );
                    facadeUnderTest = new NetworkFacade( serversClientSocket.Client );
                    resetEvent.Set();
                }
                ,
                server );

            //
            // Setup complete...
            //

            // Connect to the above "server"
            TcpClient client = new TcpClient( "localhost", 4002 );

            // Wait for client connect
            Assert.That( resetEvent.WaitOne( 30000 ), Is.True );
            Assert.That( client.Connected, Is.True );

            // Release the event when the connection is closed. This event is raised before the callback
            // is invoked.
            bool eventRaised = false;
            facadeUnderTest.ConnectionClosed += ( object sender, System.EventArgs e ) => eventRaised = true;

            // Reset the event so we'll block
            resetEvent.Reset();

            // Close connection
            facadeUnderTest.BeginClose((b, f) =>
                                        {
                                            // Delegate invoked when closed
                                            Assert.That( f, Is.SameAs( facadeUnderTest ) );
                                            Assert.That( b, Is.True );
                                            resetEvent.Set();
                                        } );

            // Wait for close
            Assert.That( resetEvent.WaitOne( 30000 ), Is.True );

            Assert.That(eventRaised);

            NetworkStream stream = client.GetStream();
            stream.Write( new byte[]
                          {
                              0x04, 0x05
                          },
                          0,
                          2 );

            byte[] buffer = new byte[300];
            Assert.Throws<IOException>( () => stream.Read( buffer, 0, buffer.Length ) );
        }
        public void BeginSendTest()
        {
            AutoResetEvent resetEvent = new AutoResetEvent( false );

            NetworkFacade facadeUnderTest = null;

            // Set up the "server"
            TcpListener server = new TcpListener( Dns.GetHostEntry( "localhost" ).AddressList[0], 4000 );
            server.Start();

            // When the client connects, set up the object under test
            server.BeginAcceptTcpClient(
                ar =>
                {
                    TcpListener s = ar.AsyncState as TcpListener;
                    TcpClient serversClientSocket = s.EndAcceptTcpClient( ar );
                    facadeUnderTest = new NetworkFacade( serversClientSocket.Client );
                    resetEvent.Set();
                }
                ,
                server );

            //
            // Setup complete...
            //

            // Connect to the above "server"
            TcpClient client = new TcpClient( "localhost", 4000 );

            // Wait for client connect
            Assert.That( resetEvent.WaitOne( 30000 ), Is.True );

            // Server socket sends to client socket once the client connects
            byte[] buffer = new byte[]
                            {
                                0x04, 0x05, 0x06
                            };
            facadeUnderTest.BeginSend( buffer,
                                       ( s, f ) =>
                                       {
                                           Assert.That( f, Is.SameAs( facadeUnderTest ) );
                                           Assert.That( s,
                                                        Is.True,
                                                        "The 'success' flag was not set in the callback even though the data was sent" );
                                           resetEvent.Set();
                                       } );

            // Wait for the class under test to send data
            Assert.That( resetEvent.WaitOne( 5000 ), Is.True );

            byte[] bufferFromClient = new byte[100];
            int dataRead = client.GetStream().Read( bufferFromClient, 0, bufferFromClient.Length );

            Assert.That( dataRead, Is.EqualTo( 3 ) );
            Assert.That( bufferFromClient[0], Is.EqualTo( 0x04 ) );
            Assert.That( bufferFromClient[1], Is.EqualTo( 0x05 ) );
            Assert.That( bufferFromClient[2], Is.EqualTo( 0x06 ) );
        }
Exemple #8
0
        //ChannelFactory<IStudentService> channelFactory = new ChannelFactory<IStudentService>("StudentServiceEndpoint");
        //IStudentService proxy;

        public StudentGUI()
        {
            //proxy = channelFactory.CreateChannel();
            InitializeComponent();
            nf = new NetworkFacade();
        }