public ActionResult ShowMoreMessages(string sendToUserId, int n)
        {
            FacebookDatabaseEntities databaseEntities = new FacebookDatabaseEntities();
            var receiver_id = User.Identity.GetUserId();

            return(View("ShowMessenger", new MessengerViewModel(receiver_id, sendToUserId, n)));
        }
Example #2
0
 public ActionResult deletePost(string post_id, string receiver_id, DeletePostViewModel deletePostViewModel)
 {
     if (ModelState.IsValid)
     {
         var message = new Message()
         {
             sender_id = User.Identity.GetUserId(), receiver_id = receiver_id, content = deletePostViewModel.messageToUser, date = DateTime.Now, type = Convert.ToInt32(MessageTypes.adminWarning)
         };
         FacebookDatabaseEntities databaseEntities = new FacebookDatabaseEntities();
         Post post = new Post()
         {
             post_id = int.Parse(post_id)
         };
         databaseEntities.Posts.Attach(post);
         databaseEntities.Posts.Remove(post);
         databaseEntities.SaveChanges();
         MessageHandler.sendMessage(message);
         return(RedirectToAction("ShowMyProfile", "Profile"));
     }
     else
     {
         var post = databaseEntities.Posts.Find(int.Parse(post_id));
         return(View("DeletePage", new DeletePostViewModel(post)));
     }
 }
Example #3
0
        static public void sendMessage(Message message)
        {
            FacebookDatabaseEntities databaseEntities = new FacebookDatabaseEntities();

            databaseEntities.Messages.Add(message);
            databaseEntities.SaveChanges();
        }
Example #4
0
        public static Boolean isAdmin(String userId)
        {
            FacebookDatabaseEntities databaseEntities = new FacebookDatabaseEntities();
            var user = databaseEntities.AspNetUsers.Find(userId);

            return(user.AspNetRoles.Where(x => x.Name == "Admin").Any());
        }
        public ActionResult ShowMessenger()
        {
            var userId = User.Identity.GetUserId();
            FacebookDatabaseEntities databaseEntities = new FacebookDatabaseEntities();
            var user = databaseEntities.AspNetUsers.Find(userId);

            return(View(new MessengerViewModel(user)));
        }
Example #6
0
        public ActionResult SaveAlbum(CreateAlbumViewModel newAlbum)
        {
            string currentUserId = User.Identity.GetUserId();

            if (ModelState.IsValid)
            {
                FacebookDatabaseEntities db = new FacebookDatabaseEntities();
                newAlbum.saveToDatabase(currentUserId, Server, db);
            }
            char[] idArgument = currentUserId.ToCharArray();
            return(RedirectToAction("Show", "Profile", new { id = currentUserId }));
        }
Example #7
0
        public ActionResult ShowPostFromAlbum(PostViewModel postViewModel)
        {
            var databaseEntities = new FacebookDatabaseEntities();
            var aspNetUser       = databaseEntities.AspNetUsers.Find(postViewModel.userID);
            var posts            = aspNetUser.Posts;
            var thisPost         = posts.Where(x => x.post_id == postViewModel.post_id).FirstOrDefault();

            postViewModel = new PostViewModel(thisPost, "Gallery", User.IsInRole("Admin"));

            // postViewModel = new PostViewModel(postViewModel.)
            return(View("PostPartialView", postViewModel));
        }
        public ActionResult SendMessage(ConversationViewModel conversation)
        {
            FacebookDatabaseEntities databaseEntities = new FacebookDatabaseEntities();
            var currentUserId = User.Identity.GetUserId();
            var message       = new Message()
            {
                sender_id = currentUserId, receiver_id = conversation.sendToUserId, content = conversation.inputText, date = DateTime.Now, type = Convert.ToInt32(MessageTypes.normalMessage)
            };

            MessageHandler.sendMessage(message);

            return(RedirectToAction("ShowChat", "Messenger", new { sendToUserId = conversation.sendToUserId }));
        }
Example #9
0
        public ActionResult ShowAlbum(AlbumViewModel albumViewModel)
        {
            var databaseEntities           = new FacebookDatabaseEntities();
            var aspNetUser                 = databaseEntities.AspNetUsers.Find(albumViewModel.userID);
            var posts                      = aspNetUser.Posts;
            List <PostViewModel> userPosts = new List <PostViewModel>();

            foreach (var post in posts)
            {
                userPosts.Add(new PostViewModel(post, "Profile", User.IsInRole("Admin")));
            }
            albumViewModel = new AlbumViewModel(albumViewModel.albumName, albumViewModel.appLocation, albumViewModel.albumID, userPosts, albumViewModel.userID);
            return(View("PhotoGalleryPartialView", albumViewModel));
        }
Example #10
0
        public ActionResult RequestToJoinSelectedGroup(GroupsViewModel groupsViewModel)
        {
            FacebookDatabaseEntities databaseEntities = new FacebookDatabaseEntities();
            var currentUserId = User.Identity.GetUserId();
            var selectedGroup = databaseEntities.Groups.Find(groupsViewModel.selectedGroup.group_id);
            var message       = new Message()
            {
                sender_id = currentUserId, receiver_id = selectedGroup.administrator, content = selectedGroup.group_id.ToString(), date = DateTime.Now, type = Convert.ToInt32(MessageTypes.groupRequest)
            };

            MessageHandler.sendMessage(message);

            return(RedirectToAction("Show", "Groups", selectedGroup.group_id));
        }
Example #11
0
        public ActionResult SendFriendRequest(string senderID, string receiverID)
        {
            FacebookDatabaseEntities db       = new FacebookDatabaseEntities();
            Message newFriendRequestAsMessage = new Message()
            {
                sender_id = senderID, receiver_id = receiverID, date = DateTime.Now, type = (int)MessageTypes.friendRequest, content = "Please add me as a friend."
            };

            //newFriendRequestAsMessage.AspNetUser = db.AspNetUsers.Find(senderID);
            //newFriendRequestAsMessage.AspNetUser1 = db.AspNetUsers.Find(receiverID);
            //newFriendRequestAsMessage.date = DateTime.Now;
            //newFriendRequestAsMessage.type = (int)MessageTypes.friendRequest;

            MessageHandler.sendMessage(newFriendRequestAsMessage);
            return(RedirectToAction("Show", "Profile", new { id = receiverID }));
        }
        public ActionResult AcceptFriendRequest(string senderID)
        {
            FacebookDatabaseEntities databaseEntities = new FacebookDatabaseEntities();
            var user = databaseEntities.AspNetUsers.Find(senderID);
            var me   = databaseEntities.AspNetUsers.Find(User.Identity.GetUserId());

            user.AspNetUsers.Add(me);
            me.AspNetUsers.Add(user);

            var message = databaseEntities.Messages.Where(x => x.sender_id == user.Id && x.receiver_id == me.Id && x.type == (int)MessageTypes.friendRequest).FirstOrDefault();

            message.type    = Convert.ToInt32(MessageTypes.normalMessage);
            message.content = "Friend request accepted";

            databaseEntities.SaveChanges();
            return(RedirectToAction("ShowChat", "Messenger", new { sendToUserId = senderID }));
        }
Example #13
0
        static public void addUserToGroup(string user_id, int group_id, int message_id)
        {
            FacebookDatabaseEntities databaseEntities = new FacebookDatabaseEntities();
            var user = databaseEntities.AspNetUsers.Find(user_id);

            databaseEntities.Groups.Find(group_id).AspNetUsers.Add(user);

            var message = databaseEntities.Messages.Find(message_id);

            message.type    = Convert.ToInt32(MessageTypes.normalMessage);
            message.content = "Group request accepted";

            var aux = message.sender_id;

            message.sender_id   = message.receiver_id;
            message.receiver_id = aux;

            databaseEntities.SaveChanges();
        }
Example #14
0
        static public FriendshipStatus GetFriendRequestStatus(string myID, string hisID)
        {
            //todo search in db to see if there is a friendreauest from you to the person or reverse
            FacebookDatabaseEntities db = new FacebookDatabaseEntities();
            Message friendRequestFromMe = db.Messages.Where(x => x.sender_id == myID && x.receiver_id == hisID && x.type == (int)MessageTypes.friendRequest).FirstOrDefault();
            Message friendRequestToMe   = db.Messages.Where(x => x.sender_id == hisID && x.receiver_id == myID && x.type == (int)MessageTypes.friendRequest).FirstOrDefault();

            if (friendRequestFromMe != null)
            {
                return(FriendshipStatus.pendingSentByMe);
            }
            else if (friendRequestToMe != null)
            {
                return(FriendshipStatus.pendingSentByHim);
            }
            else
            {
                return(FriendshipStatus.notSent);
            }
        }
Example #15
0
        public ActionResult Show(string id)
        {
            var databaseEntities = new FacebookDatabaseEntities();

            if (databaseEntities.AspNetUsers.Find(id) == null)
            {
                return(View("Profile", null));
            }

            var iAmaVisitor = true;

            if (User.Identity.GetUserId() == id)
            {
                iAmaVisitor = false;
            }
            var isAdmin = false;

            if (User.Identity.GetUserId() != null)
            {
                isAdmin = RoleHandler.isAdmin(User.Identity.GetUserId());
            }

            var     loggedUser = databaseEntities.AspNetUsers.Find(User.Identity.GetUserId());
            Profile profile    = databaseEntities.Profiles.Find(id);

            if (profile == null)
            {
                return(View("AddProfile", new ProfileViewModel()));
            }
            else
            {
                //TO-DO: add properties to ProfileViewModel like : albums, posts and personal informations and show them into view.
                var aspNetUser = databaseEntities.AspNetUsers.Find(id);
                var posts      = aspNetUser.Posts;
                List <PostViewModel> userPosts = new List <PostViewModel>();
                foreach (var post in posts)
                {
                    userPosts.Add(new PostViewModel(post, "Profile", isAdmin));
                }
                List <Album>          albums     = databaseEntities.Albums.Where(x => x.user_id == id).ToList();
                List <AlbumViewModel> userAlbums = new List <AlbumViewModel>();
                foreach (Album album in albums)
                {
                    userAlbums.Add(new AlbumViewModel(album.name, "Profile", album.album_id, userPosts, id));
                }

                List <AspNetUser> friends         = aspNetUser.AspNetUsers.ToList();
                List <Profile>    profiles        = databaseEntities.Profiles.ToList();
                List <Profile>    friendsProfiles = (from aspUser in friends
                                                     join friendProfile in profiles on aspUser.Id equals friendProfile.Id
                                                     select friendProfile).ToList();
                List <FriendViewModel> friendsList = new List <FriendViewModel>();
                foreach (Profile friend in friendsProfiles)
                {
                    friendsList.Add(new FriendViewModel(friend.Id, friend.Albums.Where(x => x.name == "ProfileAlbum").FirstOrDefault().Pictures.OrderByDescending(x => x.date).FirstOrDefault().path, friend.firstname + friend.lastname));
                }
                var profileViewModel = new ProfileViewModel(profile, userAlbums, userPosts, friendsList);
                profileViewModel.iAmaVisitor = iAmaVisitor;
                profileViewModel.isAdmin     = isAdmin;
                if (iAmaVisitor)
                {
                    var myID = User.Identity.GetUserId();
                    profileViewModel.profileVisitorID = myID;
                    if (friendsProfiles.Select(x => x.Id).ToList().Contains(myID))
                    {
                        profileViewModel.relationshipStatus = FriendshipStatus.friends;
                    }
                    else
                    {
                        profileViewModel.relationshipStatus = MessageHandler.GetFriendRequestStatus(User.Identity.GetUserId(), id);
                    }
                }

                if (profile.privacy == 1)
                {
                    if (profile.AspNetUser.Id != User.Identity.GetUserId() && !aspNetUser.AspNetUsers.Where(x => x.Id == User.Identity.GetUserId()).Any())
                    {
                        profileViewModel.privacy = true;
                    }
                }

                return(View("Profile", profileViewModel));
            }
        }