public frmMain()
 {
     InitializeComponent();
     Server = new AServer();
     Server.OnClientConnect    += new AServer.ClientConnectDelegate(UpdateClientCountCallback);
     Server.OnClientDisconnect += new AServer.ClientDisconnectDelegate(UpdateClientCountCallback);
 }
        public void TestInitialize()
        {
            #region Arrange

            //Server
            _aserv = new AServer {
                AServerId = 1, ServerName = "Fodbold", BufferSize = 2048, ServerPort = 100
            };

            //Alex
            _clientOne = new Client {
                ClientPort = 100
            };

            //Morten
            _clientTwo = new Client {
                ClientPort = 100
            };

            //Lasse
            _clientThree = new Client {
                ClientPort = 100
            };

            #endregion
        }
 /// <summary>
 ///     Denne metode står for at oprette serveren
 /// </summary>
 /// <param name="serverName">Serverens navn</param>
 /// <param name="serverPort">Serverens port</param>
 /// <param name="bufferSize">Serverens buffer størrelse</param>
 public void OpretServer(string serverName, int serverPort, int bufferSize)
 {
     //Her kaldes databasens context
     using (BetBudContext db = new BetBudContext()) {
         //Objektet objekt initialiseres og forskellige variabler assignes til Aserverens properties
         ChatServer = new AServer {
             ServerName = serverName, ServerPort = serverPort, BufferSize = bufferSize
         };
         //I dette kald åbnes contexten og chatserver objektet indsættes og dens state sættes til at være indsat, dette medfører at entity indsætter objektet til at være tilføjet i den cachede version af databasen
         db.Entry(ChatServer).State = EntityState.Added;
         //Her gemmes den cachede version af databasen ned til den rigtige version.
         db.SaveChanges();
     }
 }
        /// <summary>
        ///     Denne metode står for at slette serveren
        /// </summary>
        /// <param name="serverId">Serverens id</param>
        public void DeleteServer(int serverId)
        {
            //Contexten kaldes i et using statement således den disposes senere
            using (BetBudContext db = new BetBudContext()) {
                //Der oprettes en server instans og iden sættes fra parameter listen
                AServer aServ = new AServer {
                    AServerId = serverId
                };

                //Der laves en statement hvor objektet bliver sat til at blive slettet
                db.Entry(aServ).State = EntityState.Deleted;
                //Ændringerne gemmes i databasen
                db.SaveChanges();
            }
        }
        /// <summary>
        ///     Denne metode står for at opdatere serverens information
        /// </summary>
        /// <param name="serverId">Serverens id nummer</param>
        /// <param name="serverName">Serverens navn</param>
        /// <param name="serverPort">Serverens port</param>
        /// <param name="bufferSize">Serverens buffer størrelse</param>
        public void UpdateServer(int serverId, string serverName, int serverPort, int bufferSize)
        {
            //Contexten åbnes i et using statement således at forbindelsen automatisk bliver deposed sernere
            using (BetBudContext db = new BetBudContext()) {
                //Der kaldes en metode som finder en specifik server som skal opdateres, den assignes til lokal variablen server
                AServer server = FindSpecificAServer(serverId);

                //De forskellige opdateringer som der ønskes bliver assignet på objektet.
                server.ServerName = serverName;
                server.ServerPort = serverPort;
                server.BufferSize = bufferSize;

                //Contexten opretter en entry med objektet server hvor den ændrer serverens stadie til at være opdateret.
                db.Entry(server).State = EntityState.Modified;
                //Contexten gemmer statementen.
                db.SaveChanges();
            }
        }
        public void StopServerTest()
        {
            //Arrrange
            AServer aserv = new AServer();

            // Act
            aserv.StartServer();

            //Arrange
            Assert.IsNotNull(aserv.ServerSocket);

            // Act
            aserv.StopServer();

            //Assert
            Assert.IsNull(aserv.ServerSocket);
            //Assert.IsEmpty(aserv.ClientSocket);
        }
        static void Main(string[] args)
        {
            AServer serv = new AServer()
            {
                ServerPort = 105
            };

            Client cli = new Client()
            {
                ClientPort = 105
            };

            Console.Title = "Server";
            serv.StartServer();

            Thread.Sleep(50);
            cli.ConnectToServer();

            Thread.Sleep(50);
            cli.SendResponse("Potato");

            Console.ReadLine();
            serv.StopServer();
        }