public async Task <int> SavePost(int?id)
        {
            if (id == null)
            {
                return(0);
            }
            Post post = await _db.Posts.FindAsync(id);

            if (post == null)
            {
                return(0);
            }
            User currentUser = await _userManager.GetUserAsync(User);

            SavedPost saved = new SavedPost()
            {
                UserId = currentUser.Id,
                PostId = (int)id
            };

            _db.SavedPosts.Add(saved);
            await _db.SaveChangesAsync();

            return(1);
        }
예제 #2
0
        public bool AddSavedPost(SavedPost sp)
        {
            try
            {
                var savedPostExists = _context.SavedPosts.FirstOrDefault(x => x.OrganisationID == sp.OrganisationID && x.PostID == sp.PostID);
                if (savedPostExists != null)
                {
                    return(false);
                }

                SavedPost newSp = new SavedPost();

                newSp.OrganisationID = sp.OrganisationID;
                newSp.PostID         = sp.PostID;

                _context.SavedPosts.Add(newSp);
                _context.SaveChanges();

                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }
예제 #3
0
        private SavedPost Mapper(SqlDataReader reader)
        {
            SavedPost model = new SavedPost();
            int       index = 0;

            model.Id    = reader.GetInt32(index++);
            model.Title = reader.GetString(index++);
            model.Url   = reader.GetString(index++);
            if (!reader.IsDBNull(index))
            {
                model.Notes = reader.GetString(index++);
            }
            else
            {
                index++;
            }
            model.CreatedDate = reader.GetDateTime(index);

            return(model);
        }
예제 #4
0
        public async Task SaveAsync(Guid postId, Guid userId)
        {
            var post = await _postsRepository.GetByIdAsync(postId, p => p
                                                           .Include(e => e.SavedBy));

            var saved = post.SavedBy.SingleOrDefault(u => u.UserId == userId);

            if (saved == null)
            {
                saved = new SavedPost(userId, postId);
                post.SavedBy.Add(saved);
            }
            else
            {
                post.SavedBy.Remove(saved);
            }

            // TODO test to see if it is necessary to use an downvotes repository
            await _postsRepository.UpdateAsync(post);
        }
        public async Task <int> UnsavePost(int?id)
        {
            if (id == null)
            {
                return(0);
            }
            Post post = await _db.Posts.FindAsync(id);

            if (post == null)
            {
                return(0);
            }
            User currentUser = await _userManager.GetUserAsync(User);

            SavedPost saved = _db.SavedPosts.Where(p => p.UserId == currentUser.Id && p.PostId == id).FirstOrDefault();

            _db.SavedPosts.Remove(saved);
            await _db.SaveChangesAsync();

            return(1);
        }
예제 #6
0
        public SavedPost SelectById(int id)
        {
            SavedPost model = new SavedPost();

            using (SqlConnection conn = new SqlConnection(connString))
            {
                conn.Open();
                using (SqlCommand cmd = new SqlCommand("RedditPosts_SelectById", conn))
                {
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.AddWithValue("@Id", id);
                    SqlDataReader reader = cmd.ExecuteReader();

                    if (reader.Read())
                    {
                        model = Mapper(reader);
                    }
                }
                conn.Close();
            }
            return(model);
        }
예제 #7
0
        public List <SavedPost> GetAll(int UserId)
        {
            List <SavedPost> postList = new List <SavedPost>();

            using (SqlConnection conn = new SqlConnection(connString))
            {
                conn.Open();
                using (SqlCommand cmd = new SqlCommand("RedditPosts_SelectAll", conn))
                {
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.AddWithValue("@UserId", UserId);
                    SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
                    while (reader.Read())
                    {
                        SavedPost model = Mapper(reader);
                        postList.Add(model);
                    }
                }

                conn.Close();
            }
            return(postList);
        }
예제 #8
0
 public Task <bool> SavePostForUserAsync(SavedPost savedPost)
 {
     _dbContext.SavedPosts.Add(savedPost);
     return(CommitedResultIsSuccessfulAsync());
 }
예제 #9
0
 public bool AddSavedPost(SavedPost sp)
 {
     return(_IPostsUI.AddSavedPost(sp));
 }