예제 #1
0
        public async Task <BoardDTO> DeletePost(string boardName, int postId)
        {
            var post = await _work.PostRepository.DeletePost(boardName, postId);

            await _work.SaveChangesAsync();

            await _cache.RemoveAsync(RoutePaths.SinglePost(boardName, postId));

            var board = await _work.PostRepository.GetAllPostsForThread(boardName, post.Thread.IdEffective);

            await _cache.SetObjectAsync(RoutePaths.PostsRoute(board.NameShort, board.CurrentThread.Id), board);

            return(board);
        }
예제 #2
0
        public async Task <BoardLinkDTO> GetLinkForPost(string boardName, int postId)
        {
            var board = await _cache.GetObjectAsync <BoardLinkDTO>(RoutePaths.SinglePost(boardName, postId));

            if (board == null)
            {
                board = await _work.PostRepository.GetPost(boardName, postId);

                if (board?.Post == null)
                {
                    return(null);
                }

                await _cache.SetObjectAsync(RoutePaths.SinglePost(boardName, postId), board);
            }

            return(board);
        }
예제 #3
0
        public async Task <BoardDTO> DeleteImage(string boardName, int postId)
        {
            var post = await _work.PostRepository.DeleteImage(boardName, postId);

            await _work.SaveChangesAsync();

            if (string.IsNullOrEmpty(post.CurrentThread.Content))
            {
                return(await DeletePost(boardName, postId));
            }
            await _cache.SetObjectAsync(RoutePaths.SinglePost(boardName, postId), post);

            var board = await _work.PostRepository.GetAllPostsForThread(boardName, post.CurrentThread.ThreadId.Value);

            await _cache.SetObjectAsync(RoutePaths.PostsRoute(board.NameShort, board.CurrentThread.Id), board);

            return(board);
        }