Esempio n. 1
0
        private bool CheckAuth()
        {
            bool auth = HttpContext.Request.Cookies.ContainsKey("name") && HttpContext.Request.Cookies.ContainsKey("room");

            if (auth)
            {
                string userName = HttpContext.Request.Cookies["name"];
                string roomName = HttpContext.Request.Cookies["room"];

                if (roomService.ContainsRoom(roomName))
                {
                    Room room = roomService.GetRoom(roomName);

                    if (room.IsFull() || (room.ContainsParticipant(userName) && room.GetParticipants()[userName].Ip != HttpContext.Connection.RemoteIpAddress.ToString()))
                    {
                        auth = false;
                    }
                }
                else
                {
                    roomService.AddRoom(roomName);
                }
            }

            return(auth);
        }
Esempio n. 2
0
        public string Auth(User user)
        {
            if (user.Room.Length == 0)
            {
                user.Name = user.Name.Length == 0 ? GenerateRandomName(9) : user.Name;
                user.Room = roomService.FindFreeRoom(user.Name);
            }
            else
            {
                if (roomService.ContainsRoom(user.Room))
                {
                    Room room = roomService.GetRoom(user.Room);

                    if (room.IsFull())
                    {
                        return("Room is full");
                    }
                    if (user.Name.Length != 0)
                    {
                        if (room.ContainsParticipant(user.Name))
                        {
                            return("This name is already taken");
                        }
                    }
                    else
                    {
                        do
                        {
                            user.Name = GenerateRandomName(9);
                        }while (room.ContainsParticipant(user.Name));
                    }
                }
                else
                {
                    roomService.AddRoom(user.Room);
                }
            }

            Response.Cookies.Append("name", user.Name);
            Response.Cookies.Append("room", user.Room);

            return("ok");
        }