public bool Handle(IClientObject client, RequestObject request) { if (request.Module != "history") { return(false); } object[] args = JsonConvert.DeserializeObject <object[]>(request.Args.ToString()); DateTime last; switch (request.Cmd) { case "room": string rstr = args[0] as string; string time = args[1].ToString(); last = DateTime.Parse(time).ToUniversalTime(); ChatMessage[] h = Manager.FindRoom(rstr)?.GetMessageHistoryTo(last); client.SendMessage(ResponseConstructor.GetRoomHistoryResponse(rstr, h)); break; case "private": string user1 = (string)args[0]; string user2 = (string)args[1]; time = args[2].ToString(); last = DateTime.Parse(time).ToUniversalTime(); h = HistoryDataprovider.GetPrivateHistory(user1, user2, last); client.SendMessage(ResponseConstructor.GetPrivateHistoryResponse(user2, h)); break; default: break; } return(true); }
private void BanUser(string username, DateTime?duration) { AuthServerAdminClient.Ban(username, duration); IClientObject user = Manager.FindClient(username); if (user == null || user.ToString() == "") //user not found { return; } LogProvider.AppendRecord(string.Format("[{0}]: banned user {1}", user.Username, username)); user.SendMessage(ResponseConstructor.GetBannedNotification(duration)); user.Role = new BannedUser(user, duration); }
public bool Handle(IClientObject client, RequestObject request) { if (request.Module != "Registration") { return(false); } object[] arg = JsonConvert.DeserializeObject <object[]>(request.Args.ToString()); Person user = new Person(arg[0].ToString(), arg[1].ToString(), arg[2].ToString()); string info = "hooy";// new ApiAuth().api.Reg(user); client.SendMessage(ResponseConstructor.GetErrorNotification(info, "login")); return(true); }
private void UnBanUser(string username) { AuthServerAdminClient.UnBan(username); IClientObject user = Manager.FindClient(username); if (user == null || user.ToString() == "") { return; } user.SendMessage(ResponseConstructor.GetUnBannedNotification(username)); LogProvider.AppendRecord(string.Format("[{0}]: unbanned user {1}", user.Username, username)); user.Role = new User(user); }
protected virtual void HandleActive(IClientObject client, RequestObject request) { RoomObject room = null; room = Manager.FindRoom(request.Args.ToString()); if (room != null) { room.AddListener(this); LogProvider.AppendRecord(string.Format("[{0}]: entered room {1}", client.Username, room.Name)); ChatMessage[] msgs = room.GetMessageHistoryTo(DateTime.Now); if (msgs.Length > 0) { client.SendMessage(ResponseConstructor.GetRoomHistoryResponse(room.Name, msgs)); } } }
public bool Handle(IClientObject client, RequestObject request) { if (request.Module != "Forgot") { return(false); } bool flag = false;//new ApiAuth().api.ForgotPassword(request.Args.ToString()); if (flag == true) { client.SendMessage(ResponseConstructor.GetErrorNotification("Success", "login")); } else { client.SendMessage(ResponseConstructor.GetErrorNotification("Error", "login")); } return(true); }
public bool Handle(IClientObject client, RequestObject request) { if (request.Module != "room") { return(false); } string roomName = (string)request.Args; var room = Manager.FindRoom(roomName); if (request.Cmd == "create") { if (room != null) { client.SendMessage(ResponseConstructor.GetErrorNotification("This room already exists", "room")); LogProvider.AppendRecord(string.Format("[{0}]: tried to create existing room {1}", client.Username, roomName)); } else { Manager.CreateRoom(roomName, client.Username); LogProvider.AppendRecord(string.Format("[{0}]: created new room {1}", client.Username, roomName)); } } else if (request.Cmd == "close") { if (room == null) { client.SendMessage(ResponseConstructor.GetErrorNotification("Can't delete this room as it doesn't exist", "room")); LogProvider.AppendRecord(string.Format("[{0}]: tried to close unexisting room {1}", client.Username, roomName)); } else if (room.Creator != client.Username && client.Role.GetType() != typeof(Admin)) { client.SendMessage(ResponseConstructor.GetErrorNotification("Can't delete room " + roomName + " . No permission.", "room")); LogProvider.AppendRecord(string.Format("[{0}]: tried to close room {1} but had no permission", client.Username, roomName)); } else { Manager.CloseRoom((string)request.Args); LogProvider.AppendRecord(string.Format("[{0}]: closed room {1}", client.Username, roomName)); } } return(true); }
protected void ResolveStatus(IClientObject client) { if (IsAdmin(client.Username)) { client.Role = new Admin(client); client.SendMessage(ResponseConstructor.GetLoginResultNotification("admin", client.Username)); LogProvider.AppendRecord(string.Format("[{0}]: Logged in as admin", client.Username)); } else if (BlackListProvider.RecordExists(client.Username)) { client.Role = new BannedUser(client); client.SendMessage(ResponseConstructor.GetLoginResultNotification("banned", client.Username)); LogProvider.AppendRecord(string.Format("[{0}]: logged as banned user", client.Username)); } else { client.Role = new User(client); client.SendMessage(ResponseConstructor.GetLoginResultNotification("ok", client.Username)); LogProvider.AppendRecord(string.Format("[{0}]: logged in", client.Username)); } Manager.AddClient(client); }
public static void OnClientAdded(string room, string username) { BroadcastAll(ResponseConstructor.GetUserEnteredNotification(room, username)); }
public static void OnRoomDeleted(string room) { BroadcastAll(ResponseConstructor.GetRoomRemovedNotification(room)); }
public static void OnRoomCreated(string room, string creator) { BroadcastAll(ResponseConstructor.GetRoomCreatedNotification(room, creator)); }
public static void OnClientLeft(string room, string username) { BroadcastAll(ResponseConstructor.GetUserLeftNotification(room, username)); }