private Room CreateRoom(User sender, User reciver) { var senderUserRoom = new UserRoom { User = sender }; var reciverUserRoom = new UserRoom { User = reciver }; var room = new Room { Id = Guid.NewGuid(), RoomUsers = new List <UserRoom>() { senderUserRoom, reciverUserRoom } }; _context.Rooms.Add(room); return(room); }
public void Delete(UserRoom userRoom) { if (userRoom != null) { _context.UserRooms.Remove(userRoom); _context.SaveChanges(); } }
public IActionResult LeaveRoom() { int roomid = (int)HttpContext.Session.GetInt32("RoomID"); int userid = (int)HttpContext.Session.GetInt32("Userid"); UserRoom delete = _context.UserRooms.Where(ur => ur.RoomID == roomid && ur.UserID == userid).FirstOrDefault(); _context.UserRooms.Remove(delete); _context.SaveChanges(); return(RedirectToAction("Dashboard", "Users")); }
public bool AddToRoom(UserRoom userRoom) { int membercount = _db.UserRooms.Count(x => x.Guid == userRoom.Guid); if (membercount > 50) { return(false); } _db.UserRooms.Add(userRoom); return(Save()); }
/// <summary> /// Find a private room for two users. /// </summary> /// <param name="user1">First user's Profile</param> /// <param name="user2">Second user's Profile</param> /// <param name="db">JodADataContext</param> /// <returns></returns> public static ChatRoom Private(Profile user1, Profile user2, JodADataContext db) { // Possible names of private rooms between these users. String A = user1.CellPhone + user2.CellPhone; String B = user2.CellPhone + user1.CellPhone; // No rooms with oneself if (A == B) return null; // Select rooms where name is A or B and the room is private, not public and with only two users List<ChatRoom> rooms = (from r in db.ChatRooms where (r.Name == A || r.Name == B && r.isPrivate && !r.isPublic && r.UserRooms.Count == 2) select r).ToList(); ChatRoom newRoom; // Return private room, create if necessary if (rooms.Count == 0) { // Prepare new private room newRoom = new ChatRoom(); newRoom.UserID = user1.UserId; newRoom.RoomID = Guid.NewGuid(); newRoom.isPrivate = true; newRoom.Name = A; // Insert new room db.ChatRooms.InsertOnSubmit(newRoom); // Join user 1 to room UserRoom nr = new UserRoom(); nr.UserID = user1.UserId; nr.RoomID = newRoom.RoomID; // Join user 2 to room UserRoom nr2 = new UserRoom(); nr2.UserID = user2.UserId; nr2.RoomID = newRoom.RoomID; // Insert user_room relationsships db.UserRooms.InsertOnSubmit(nr); db.UserRooms.InsertOnSubmit(nr2); // Submit changes to DB db.SubmitChanges(); return newRoom; } else return rooms.First(); }
internal override IPromise <Nothing> Process(PlayerHandle sender, ChatManager server) { var room = new UserRoom { Identifier = this.identifier, OwnerId = sender.Id, OwnerName = sender.Name, Name = this.userRoomService.CleanupName(this.name), Type = this.type, Access = this.accessType, SlowmodeInterval = this.config.LocalChatIntermessageInterval, }; return(this.userRoomService.OpenRoom(room)); }
public IActionResult AddRemove([FromBody] GuidDto addremoveDto) { if (!ModelState.IsValid || addremoveDto == null) { return(BadRequest(ModelState)); } var identity = HttpContext.User.Identity as ClaimsIdentity; IEnumerable <Claim> claim = identity.Claims; var idClaim = claim.Where(x => x.Type == ClaimTypes.Name) .FirstOrDefault().Value; if (_roomRepo.RoomExists(addremoveDto.Guid)) { UserRoom objUserRoom = new UserRoom(); objUserRoom.Guid = addremoveDto.Guid; objUserRoom.Id = Convert.ToInt32(idClaim); if (_roomRepo.MemberExists(objUserRoom)) { if (_roomRepo.DeleteFromRoom(objUserRoom)) { return(StatusCode(201)); } else { return(BadRequest()); } } else { if (_roomRepo.AddToRoom(objUserRoom)) { return(StatusCode(201)); } else { return(BadRequest()); } } } else { return(BadRequest()); } }
public IActionResult JoinRoom(string RoomKey) { // Get user ID int userid = (int)HttpContext.Session.GetInt32("Userid"); string username = HttpContext.Session.GetString("Username"); // Check if the code introduced actually matches with any room Room room = _context.Rooms.Where(r => r.RoomKey.Equals(RoomKey)).FirstOrDefault(); if (room != null) { List <UserRoom> userRoom = _context.UserRooms.Where(ur => ur.UserID == userid && ur.RoomID == room.RoomID).ToList(); if (userRoom.Count() == 0) { HttpContext.Session.SetInt32("RoomID", room.RoomID); HttpContext.Session.SetString("RoomName", room.Nome); // Create new UserRoom and save it on db UserRoom ur = new UserRoom { UserID = userid, RoomID = room.RoomID, UserTypeID = 3 }; _context.UserRooms.Add(ur); _context.SaveChanges(); // Update ViewBag and trigger the room view ViewBag.RoomName = room.Nome; ViewBag.UserName = username; ViewBag.UserID = userid; ViewBag.Room_key = room.RoomKey; return(RedirectToAction("EnterRoom", new { id = room.RoomID })); } } // If it exists and the user doesnt belongs there add the user to the room TempData["Message"] = " Oops, código de acesso incorrecto !"; return(RedirectToAction("Dashboard", "Users", null)); }
public UserRoom Create(User user, Room room, bool owner) { var userRoom = new UserRoom() { User = user, Room = room, Owner = owner }; if (!_context.UserRooms.Any(x => x.UserId == user.Id && x.RoomId == room.Id)) { _context.UserRooms.Add(userRoom); _context.SaveChanges(); } else { throw new ApplicationException(Properties.resultMessages.UserRoomExists); } return(userRoom); }
/// <summary> /// Is the given user a member in this room? /// </summary> /// <param name="user">user id</param> /// <param name="db">JodADataContext</param> /// <returns>true/false</returns> public bool IsMember(Guid user, JodADataContext db) { // See if user is a member already foreach (aspnet_User u in Users) if (u.UserId == user) return true; if (Private) // Private room return false; else { UserRoom r = new UserRoom(); r.UserID = user; r.RoomID = RoomID; db.UserRooms.InsertOnSubmit(r); db.SubmitChanges(); return true; } }
public ActionResult Private(FormCollection collection) { JodADataContext db = new JodADataContext(); aspnet_User newMember = (from p in db.aspnet_Users where p.UserId.ToString() == collection["SelectedValue"] select p).First(); ChatRoom room = (from p in db.ChatRooms where p.RoomID.ToString() == collection["item.RoomID"] select p).First(); aspnet_User user = (from p in db.aspnet_Users where p.UserName == User.Identity.Name select p).First(); if (room.UserID != user.UserId) { Session["jomarmessage"] = "You can't add users to a room you don't own."; return Redirect(Url.Action("Private", "Rooms")); } List<Guid> mmm = new List<Guid>(); foreach (var s in room.UserRooms) mmm.Add(s.UserID); if (!mmm.Contains(newMember.UserId)) { UserRoom ur = new UserRoom(); ur.RoomID = room.RoomID; ur.UserID = newMember.UserId; db.UserRooms.InsertOnSubmit(ur); db.SubmitChanges(); } Models.MyRoom model = new Models.MyRoom(user, db); return View(model); }