コード例 #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 }));
        }