Beispiel #1
0
        //Adds new Report to Reports Table
        public Task <Reports> AddReportPost(int postId, int userId, string comment)
        {
            FilterDefinition <Reports> filter = GetPostIdFilter(postId);

            Report[] reportArray = new Report[] { new Report()
                                                  {
                                                      UserId  = userId,
                                                      Comment = comment
                                                  } };
            Reports reports = new Reports()
            {
                PostId       = postId,
                ReportsArray = reportArray,
                IsResolved   = false
            };

            bool isEntityPresent = db.Reports.CheckAndCreateEntityBool(reports, filter);

            if (isEntityPresent)
            {
                Report[] initialReports = db.Reports.Find(filter).FirstOrDefault().ReportsArray;

                Task <Reports> updateTask = MongoArrayUtils <Reports> .AddToArrayWithCount <Report>(db.Reports, filter, REPORTS_ARRAY, reportArray, initialReports, COUNT);

                return(updateTask);
            }
            return(null);
        }
        //Remove Bookmarks from Bookmarks Table
        public Task <Bookmarks> RemoveBookmarks(int userId, params int[] postIds)
        {
            FilterDefinition <Bookmarks> filter     = GetUserIdFilter(userId);
            Task <Bookmarks>             removeTask = MongoArrayUtils <Bookmarks> .RemoveFromArray <int>(db.Bookmarks, filter, POST_IDS, postIds);

            return(removeTask);
        }
Beispiel #3
0
        //Returns array
        public IEnumerable <int> GetLikesInRange(int postId, int count, int skip = 0)
        {
            FilterDefinition <Likes> filter = GetPostIdFilter(postId);

            IEnumerable <int> array = MongoArrayUtils <Likes> .ArrayIntSplice(db.Likes, USER_IDS, filter, count, skip);

            return(array);
        }
Beispiel #4
0
        //Remove a user's like from a post
        public Task <Likes> RemoveLike(int postId, params int[] userIds)
        {
            FilterDefinition <Likes> filter = GetPostIdFilter(postId);

            Task <Likes> task = MongoArrayUtils <Likes> .RemoveFromArray(db.Likes, filter, USER_IDS, userIds);

            return(task);
        }
        public IEnumerable <int> GetBookmarksInRange(int userId, int count = 10, int skip = 0)
        {
            FilterDefinition <Bookmarks> filter = GetUserIdFilter(userId);

            IEnumerable <int> array = MongoArrayUtils <Bookmarks> .ArrayIntSplice(db.Bookmarks, POST_IDS, filter, count, skip);

            return(array);
        }
        //returns a collection of bookmarks for a user
        public Task <Bookmarks> UpdateBookmark(int userId, int oldPostId, int newPostId)
        {
            FilterDefinition <Bookmarks> filter = GetUserIdFilter(userId);

            Task <Bookmarks> task = MongoArrayUtils <Bookmarks> .UpdateInArray <int>(db.Bookmarks, filter, POST_IDS, oldPostId, newPostId);

            return(task);
        }
Beispiel #7
0
        //returns a collection of PostID's that contain tag
        public IEnumerable <int> GetPostsByTag(string tagText, int count = 10, int skip = 0)
        {
            FilterDefinition <Tags> filter = GetTagTextFilter(tagText);

            IEnumerable <int> array = MongoArrayUtils <Tags> .ArrayIntSplice(db.Tags, POST_IDS, filter, count, skip);

            return(array);
        }
Beispiel #8
0
        //Removes tag from Tags table
        public Task <Tags> RemoveTag(string tagText, int postId)
        {
            FilterDefinition <Tags> filter = GetTagTextFilter(tagText);

            Task <Tags> task = MongoArrayUtils <Tags> .RemoveFromArray <int>(db.Tags, filter, POST_IDS, new int[] { postId });

            return(task);
        }
Beispiel #9
0
        //Retrieves a collection of Reported Posts
        public IEnumerable <int> GetReportedPosts(int skip = 0, int count = 10)
        {
            FilterDefinition <Reports> filter = Builders <Reports> .Filter.Eq(IS_RESOLVED, false);

            IEnumerable <int> array = MongoArrayUtils <Reports> .ArrayIntSplice(db.Reports, REPORTS_ARRAY, filter, count, skip);

            return(array);
        }
        //Add bookmarks to Bookmarks Table
        public Task <Bookmarks> AddBookmarks(int userId, params int[] postIds)
        {
            Bookmarks bookmark = new Bookmarks()
            {
                UserId  = userId,
                PostIds = postIds
            };
            FilterDefinition <Bookmarks> filter = GetUserIdFilter(userId);

            bool isEntityPresent = db.Bookmarks.CheckAndCreateEntityBool(bookmark, filter);

            if (isEntityPresent)
            {
                int[] initialValues = db.Bookmarks.Find(filter).FirstOrDefault().PostIds;

                Task <Bookmarks> updateTask = MongoArrayUtils <Bookmarks> .AddToArrayWithCount(db.Bookmarks, filter, POST_IDS, postIds, initialValues, COUNT);
            }
            return(null);
        }
Beispiel #11
0
        //Adds a new tag to Tags Table
        private Task <Tags> AddTag(string tagText, params int[] postIds)
        {
            Tags tag = new Tags()
            {
                Tag     = tagText,
                PostIds = postIds
            };
            FilterDefinition <Tags> filter = GetTagTextFilter(tagText);

            bool isEntityPresent = db.Tags.CheckAndCreateEntityBool(tag, filter);

            if (isEntityPresent)
            {
                Task <Tags> task = MongoArrayUtils <Tags> .AddToArray <int>(db.Tags, filter, POST_IDS, postIds);

                return(task);
            }
            return(null);
        }
Beispiel #12
0
        //Add a user's like to a Post
        public Task <Likes> AddLike(int postId, params int[] userIds)
        {
            Likes like = new Likes()
            {
                PostId  = postId,
                UserIds = userIds
            };
            FilterDefinition <Likes> filter = GetPostIdFilter(postId);

            //Checks to see if an instance of Like is available
            bool isEntityPresent = db.Likes.CheckAndCreateEntityBool(like, filter);

            if (isEntityPresent)
            {
                Task <Likes> task = MongoArrayUtils <Likes> .AddToArray <int>(db.Likes, filter, USER_IDS, userIds);

                int likesCount = db.Posts.FirstOrDefault(e => e.PostId == postId).LikesCount;
                postRepo.UpdatePostLikesCount(postId);
                return(task);
            }
            return(null);
        }