Exemple #1
0
        /// <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();
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        /// <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();
        }
Exemple #5
0
        /// <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;
            }
        }
Exemple #6
0
        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);
        }
Exemple #7
0
        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);
        }