예제 #1
0
 public bool CheckPrefValidity()
 {
     if (MSTSPath == "" || RoutePaths.Count() <= 0)
     {
         return(false);
     }
     return(true);
 }
예제 #2
0
        public async Task <IEnumerable <BoardDTO> > GetAllBoards()
        {
            var boards = await _cache.GetObjectAsync <IEnumerable <BoardDTO> >(RoutePaths.BoardsRoute());

            if (boards == null)
            {
                boards = await _work.BoardRepository.GetAllBoards();

                await _cache.SetObjectAsync(RoutePaths.BoardsRoute(), boards);
            }
            return(boards);
        }
예제 #3
0
        public async Task <BoardDTO> GetAllThreadsForBoard(string boardName)
        {
            var board = await _cache.GetObjectAsync <BoardDTO>(RoutePaths.ThreadsRoute(boardName));

            if (board == null)
            {
                board = await _work.PostRepository.GetAllThreadsForBoard(boardName);

                await _cache.SetObjectAsync(RoutePaths.ThreadsRoute(boardName), board);
            }
            return(board);
        }
예제 #4
0
        public async Task <BoardDTO> GetAllPostsForThread(string boardName, int threadId)
        {
            var board = await _cache.GetObjectAsync <BoardDTO>(RoutePaths.PostsRoute(boardName, threadId));

            if (board == null)
            {
                board = await _work.PostRepository.GetAllPostsForThread(boardName, threadId);

                await _cache.SetObjectAsync(RoutePaths.PostsRoute(boardName, threadId), board);
            }
            return(board);
        }
예제 #5
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);
        }
예제 #6
0
        public async Task <BoardDTO> PostThread(string boardName, PostDTO thread)
        {
            var post = await _work.PostRepository.PostThread(boardName, thread);

            await _work.SaveChangesAsync();

            var board = await _work.PostRepository.GetAllThreadsForBoard(boardName);

            await _cache.SetObjectAsync(RoutePaths.ThreadsRoute(boardName), board);

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

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

            return(board);
        }
예제 #7
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);
        }
예제 #8
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);
        }