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