Exemplo n.º 1
0
        public void run()
        {
            running = true;

            NetHelper.SendNetCommand(client, new NetCommand(session));

            while (running)
            {
                NetCommand input = NetHelper.ReadNetCommand(client);

                switch (input.Type)
                {
                case NetCommand.CommandType.SESSION:

                    break;

                case NetCommand.CommandType.LOGIN:
                    if (!server.CheckPassword(input.DisplayName, input.Password))
                    {
                        NetHelper.SendNetCommand(client, new NetCommand(NetCommand.ResponseType.LOGINWRONG, session));
                        loggedin = false;
                    }
                    else
                    {
                        NetHelper.SendNetCommand(client, new NetCommand(NetCommand.ResponseType.LOGINOK, session));
                        loggedin = true;

                        if (input.IsDoctor)
                        {
                            server.ChangeClientToDoctor(client, this);
                            Console.WriteLine("Doctor connected");
                            running = false;
                        }
                        else
                        {
                            name     = input.DisplayName;
                            loggedin = true;
                            FileHandler.CreateSession(session, name);
                        }
                    }
                    break;

                case NetCommand.CommandType.UITLEG:
                    if (loggedin)
                    {
                        server.SendToDoctor(input);
                    }
                    break;

                case NetCommand.CommandType.PERSONDATA:
                    if (loggedin)
                    {
                        personaldatareceived = true;
                        FileHandler.SavePersonalData(input);
                    }
                    break;

                case NetCommand.CommandType.TESTRESULT:
                    if (loggedin)
                    {
                        FileHandler.SaveTestResult(input);
                    }
                    break;

                case NetCommand.CommandType.DATA:
                    if (loggedin)
                    {
                        metingen.Add(input.Meting);
                        server.SendToDoctor(input);
                    }
                    else
                    {
                        NetHelper.SendNetCommand(client, new NetCommand(NetCommand.ResponseType.NOTLOGGEDIN, session));
                    }

                    break;

                case NetCommand.CommandType.CHAT:
                    if (loggedin)
                    {
                        chat.Add(new ChatMessage(name, input.ChatMessage, false));
                        server.SendToDoctor(input);
                    }
                    else
                    {
                        NetHelper.SendNetCommand(client, new NetCommand(NetCommand.ResponseType.NOTLOGGEDIN, session));
                    }
                    break;

                case NetCommand.CommandType.LOGOUT:
                    loggedin = false;
                    running  = false;
                    Console.WriteLine(name + " logged out");
                    FileHandler.WriteMetingen(session, metingen);
                    FileHandler.WriteChat(session, chat);
                    client.Close();
                    server.SendToDoctor(new NetCommand(session, "De client heeft uitgelogd."));
                    server.RemoveBacklogDisconnectedClient(session);
                    break;

                case NetCommand.CommandType.ERROR:
                    Console.WriteLine("An error occured, assuming client disconnected");
                    loggedin = false;
                    running  = false;
                    Console.WriteLine(name + " logged out due to an error");
                    FileHandler.WriteMetingen(session, metingen);
                    FileHandler.WriteChat(session, chat);
                    client.Close();
                    break;

                default:
                    if (loggedin)
                    {
                        throw new FormatException("Unknown command");
                    }
                    break;
                }
            }

            server.RemoveActiveSession(this);
        }
Exemplo n.º 2
0
 public void AddUser(string name, string password)
 {
     users.Add(name, password);
     FileHandler.SaveUsers(users);
 }