Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
        //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);
                }

            }
            ///////////////////////////////////////////////////
            ///////////////////////////////////////////////////
        }
Ejemplo n.º 3
0
 public void AddRoom(string userOwner)
 {
     string guid = Guid.NewGuid().ToString().Replace("-","");
     if (CollaborationRooms[guid] == null)
     {
         RoomModel room = new RoomModel();
     }
 }