00001 using System;
00002 using System.Collections.Generic;
00003 using System.Text;
00004 using Shared;
00005
00006
00007 namespace Server
00008 {
00012 class ServerConsole
00013 {
00014 Catalogue catalogue;
00015
00020 public ServerConsole(Catalogue catalogue)
00021 {
00022 this.catalogue = catalogue;
00023 }
00024
00028 private void PresentConsoleInterface()
00029 {
00030 Console.Write("\nThe following commands are supported:\n\n");
00031
00032 Console.Write("'QUIT' - Stops the server\n");
00033 Console.Write("'ADDMOD username' - Give an existing user moderator privileges.\n");
00034 Console.Write("'REMOVEMOD username' - Remove moderator privileges from a user.\n");
00035 Console.Write("'LIST' - List all users.\n");
00036 Console.Write("'HELP' - Show this screen.\n");
00037
00038
00039
00040 Console.Write("\n");
00041 }
00042
00046 public void StartConsole()
00047 {
00048 string tmp;
00049 string[] input;
00050
00051 PresentConsoleInterface();
00052
00053 while ((tmp = Console.ReadLine()).ToLower() != "quit")
00054 {
00055 input = tmp.Split(' ');
00056
00057 if (input[0] == "addmod") AddModerator(input[1]);
00058 if (input[0] == "removemod") RemoveModerator(input[1]);
00059 if (input[0] == "help") PresentConsoleInterface();
00060 if (input[0] == "list") ListAllUsers();
00061
00062 }
00063
00064 }
00065
00066 private void ListAllUsers()
00067 {
00068 ISearchable[] result = catalogue.ListItems(Shared.ResultType.Person);
00069 List<PersonInfo> users = new List<PersonInfo>();
00070
00071 for (int i = 0; i < result.Length; i++)
00072 {
00073 if (result[i] is PersonInfo) users.Add((PersonInfo)result[i]);
00074 }
00075
00076 Console.Write("Users in the system:\n\n");
00077
00078 for (int i = 0; i < users.Count; i++)
00079 {
00080 Console.Write("Username: " + users[i].username.ToString() + "\n");
00081 }
00082
00083 }
00084
00085 private void AddModerator(string username)
00086 {
00087
00088
00089 Person p = catalogue.GetUser(username);
00090
00091 if (p != null)
00092 {
00093 p.Moderator = true;
00094 Console.Write("\n" + p.Name + " was succesfully made a moderator.\n");
00095 }
00096 else Console.Write("\nUsername was not found.\n");
00097 }
00098
00099 private void RemoveModerator(string username)
00100 {
00101 Person p = catalogue.GetUser(username);
00102
00103 if (p != null && p.Moderator != true)
00104 {
00105 Console.Write("\n" + p.Name + " is not a moderator.\n");
00106 return;
00107 }
00108
00109 if (p != null)
00110 {
00111 p.Moderator = false;
00112 Console.Write("\n" + p.Name + " is not a moderator anymore.\n");
00113 }
00114 else Console.Write("\nUsername was not found.\n");
00115 }
00116
00117 }
00118 }