/// <summary> /// Creates room based on current users input on room creation /// </summary> /// <param name="roomName"></param> /// <param name="desc"></param> /// <param name="passW"></param> public void CreateRoom(String roomName, String desc, String passW) { RoomModel room = new RoomModel(); //create user guid RoomUserModel user = new RoomUserModel(); user.UserGuid = Guid.NewGuid().ToString(); //create random byte for admin key Random rnd = new Random(); byte[] b = new byte[128]; //convert byte to string for easier handling in javascript String convKey = Convert.ToBase64String(b); rnd.NextBytes(b); //where are the banned and current users being used? room.BannedUsers = new ConcurrentDictionary<string, RoomUserModel>(); room.CurrentUsers = new ConcurrentDictionary<string, RoomUserModel>(); room.RoomName = roomName; room.RoomGuid = Guid.NewGuid().ToString(); //need to create loop that checks if created roomguid already exists. while (CollaborationRooms.ContainsKey(room.RoomGuid)) { room.RoomGuid = Guid.NewGuid().ToString(); } //check room description if (!(String.IsNullOrEmpty(desc))) { room.RoomDescription = desc; } else { room.RoomDescription = ""; } //check permissions to see if room is private or public if (String.IsNullOrEmpty(passW)) { room.RoomPublic = true; } else { room.Password = passW; room.RoomPublic = false; } //do we need another check before adding the room? CollaborationRooms.TryAdd(room.RoomGuid, room); //broadcast room guid, user guid, admin key Clients.Caller.broadcastCreateRoomResult(room.RoomGuid, user.UserGuid, convKey); }
//A public chat detail collection //So make a model public CollaborationHub() { //Create a couple of demo rooms if nothing exists in context collection if (CollaborationRooms.Count == 0) { /*ModuleModel testMod1 = new ModuleModel(); testMod1.ModuleId = 1; testMod1.ModuleTypeId = Constants.MODULE_TYPE_CHAT; testMod1.ModuleWidth = 200; testMod1.ModuleHeight = 200; testMod1.ModuleX = 100; testMod1.ModuleY = 100; testMod1.ModuleContent = ""+ "{"+ " \"log\":[\"This is some test chat\", \"And this should come second\", \"Look at all of this chat\"]" + "}";*/ ModuleModel testMod2 = new ModuleModel(); testMod2.ModuleId = 2; testMod2.ModuleTypeId = Constants.MODULE_TYPE_CHAT; testMod2.ModuleWidth = 300; testMod2.ModuleHeight = 300; testMod2.ModuleX = 100; testMod2.ModuleY = 100; testMod2.ModuleContent = "" + "{" + " \"log\":[\"Welcome to the chat room\"]" + "}"; RoomModel room1 = new RoomModel(); room1.BannedUsers = new ConcurrentDictionary<String, RoomUserModel>(); room1.CurrentUsers = new ConcurrentDictionary<String, RoomUserModel>(); room1.RoomName = "General Chat"; room1.RoomGuid = Guid.NewGuid().ToString(); room1.RoomDescription = "Welcome to CollaboratR, from SignalR!"; room1.Modules = new List<ModuleModel>(); room1.Modules.Add(testMod2); RoomModel room2 = new RoomModel(); room2.BannedUsers = new ConcurrentDictionary<String, RoomUserModel>(); room2.CurrentUsers = new ConcurrentDictionary<String, RoomUserModel>(); room2.RoomName = "Private chat"; room2.RoomGuid = Guid.NewGuid().ToString(); room2.RoomDescription = "This is private chat"; room2.Password = "******"; RoomModel room3 = new RoomModel(); room3.BannedUsers = new ConcurrentDictionary<String, RoomUserModel>(); room3.CurrentUsers = new ConcurrentDictionary<String, RoomUserModel>(); room3.RoomName = "Current News"; room3.RoomGuid = Guid.NewGuid().ToString(); room3.RoomDescription = "Come discuss current news and events!"; if (!CollaborationRooms.ContainsKey(room1.RoomGuid)) { CollaborationRooms.TryAdd(room1.RoomGuid, room1); } if (!CollaborationRooms.ContainsKey(room2.RoomGuid)) { CollaborationRooms.TryAdd(room2.RoomGuid, room2); } if (!CollaborationRooms.ContainsKey(room3.RoomGuid)) { CollaborationRooms.TryAdd(room3.RoomGuid, room3); } } /////////////////////////////////////////////////// /////////////////////////////////////////////////// }
public void AddRoom(string userOwner) { string guid = Guid.NewGuid().ToString().Replace("-",""); if (CollaborationRooms[guid] == null) { RoomModel room = new RoomModel(); } }