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); }
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); }
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); }
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); }