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); }
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"); }