/// <summary> /// Post message to room. /// </summary> /// <param name="msg">The message.</param> /// <param name="user">The user id</param> /// <param name="room">The room id</param> /// <param name="db">JodADataContext</param> public static void Post(string msg, Guid user, Guid room, JodADataContext db, string image="") { ChatMessage message = new ChatMessage(); message.Date = DateTime.Now; message.MessageID = Guid.NewGuid(); message.UserID = user; message.RoomID = room; message.Text = msg; if (image != "") message.Image = image; // Submit message to DB db.ChatMessages.InsertOnSubmit(message); db.SubmitChanges(); }
public ActionResult create(ChatRoom model, string returnUrl) { JodADataContext db = new JodADataContext(); if (ModelState.IsValid) { model.UserID = (from p in db.aspnet_Users where p.UserName == User.Identity.Name select p).First().UserId; db.ChatRooms.InsertOnSubmit(model); model.RoomID = Guid.NewGuid(); db.SubmitChanges(); return Redirect(Url.Action(model.Name, "Chat")); } return View(model); }
public ActionResult Profile(FormCollection collection) { JodADataContext db = new JodADataContext(); // Prepare message for submit aspnet_User usr = (from p in db.aspnet_Users where p.UserName == User.Identity.Name select p).First(); aspnet_Membership ma = (from m in db.aspnet_Memberships where m.UserId == usr.UserId select m).First(); ma.Email = collection["Email"]; // Submit message to DB db.SubmitChanges(); JoMAR.Models.Profile user = JoMAR.Models.Profile.GetProfile(User.Identity.Name); user.FirstName = collection["FirstName"]; user.LastName = collection["LastName"]; user.CellPhone = collection["CellPhone"]; user.Save(); return View(user); }
/// <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(); }
/// <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 delete(Guid id, FormCollection collection) { JodADataContext db = new JodADataContext(); ChatRoom deleteChat = (from p in db.ChatRooms where p.RoomID == id select p).First(); aspnet_User user = (from p in db.aspnet_Users where p.UserName == User.Identity.Name select p).First(); if (deleteChat.aspnet_User != user) { Session["jomarmessage"] = "You can't delete a room you don't own."; return Redirect(Url.Action("", "Rooms")); } if (ModelState.IsValid) { db.UserRooms.DeleteAllOnSubmit(deleteChat.UserRooms); db.ChatMessages.DeleteAllOnSubmit(deleteChat.ChatMessages); db.ChatRooms.DeleteOnSubmit(deleteChat); db.SubmitChanges(); return Redirect(Url.Action("", "Rooms")); } return View(deleteChat); }
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); }