Пример #1
0
        public async Task <IActionResult> JoinRoom(ChatRoomJoinViewModel roomJoin)
        {
            var roomDB = await _roomService.GetRoom(roomJoin.ID);

            if (roomDB == null)
            {
                return(RedirectToAction("Index"));
            }
            if (!ModelState.IsValid)
            {
                return(View(roomJoin));
            }
            if (!string.IsNullOrEmpty(roomDB.Password) && string.IsNullOrEmpty(roomJoin.Password))
            {
                return(View(roomJoin));
            }
            if (!BCrypt.Net.BCrypt.Verify(roomJoin.Password, roomDB.Password))
            {
                return(RedirectToAction("Index"));
            }
            await _roomService.AddAccessedUserToRoom(roomDB.ID, HttpContext.GetUserID());

            return(RedirectToAction("Room", new { roomId = roomJoin.ID }));
        }
Пример #2
0
        public async Task <IActionResult> JoinRoom(string roomId)
        {
            var roomDB = await _roomService.GetRoom(roomId);

            if (string.IsNullOrEmpty(roomDB.Password))
            {
                return(RedirectToAction("Room", new { roomId = roomDB.ID }));
            }

            if (roomDB.OwnerID == HttpContext.GetUserID())
            {
                return(RedirectToAction("Room", new { roomId = roomDB.ID }));
            }

            if (roomDB.UsersIDWithAccess.Contains(HttpContext.GetUserID()))
            {
                return(RedirectToAction("Room", new { roomId = roomDB.ID }));
            }
            var room = new ChatRoomJoinViewModel {
                Name = roomDB.Name, ID = roomDB.ID
            };

            return(View(room));
        }