public async Task <ThreadDetail> GetCategoryThread(string categorySlug, string threadSlug) { var threadDetail = new ThreadDetail(); var threadInfo = await _forumcommentsManager.GetThreadInfo(categorySlug, null, threadSlug); var threadComments = await _forumcommentsManager.GetThreadComments(threadInfo.Id, 0, 1000); threadDetail.ThreadInfo = threadInfo; threadDetail.ThreadComments = threadComments; return(threadDetail); }
public async Task <ThreadDetail> GetSubcategoryThread(string categorySlug, string subcategorySlug, string threadSlug) { var threadDetail = new ThreadDetail(); ThreadInfo threadInfo = await _forumcommentsManager.GetThreadInfo(categorySlug, subcategorySlug, threadSlug); List <ThreadComment> threadComments = await _forumcommentsManager.GetThreadComments(threadInfo.Id); threadDetail.ThreadInfo = threadInfo; threadDetail.ThreadComments = threadComments; return(threadDetail); }
public async Task CreateThreadDetail(CreateThreadDetailDto input) { var header = _operationPoolRepository.Get(input.OperationPoolId); var @threadDetail = input.MapTo <ThreadDetail>(); @threadDetail.TenantId = AbpSession.GetTenantId(); @threadDetail = ThreadDetail.Create(input.ThreadType, input.Remark); header.ThreadDetails.Add(@threadDetail); await CurrentUnitOfWork.SaveChangesAsync(); }
public ThreadDetail GetThread(ClaimsPrincipal user, long id) { var userId = _accountService.GetIdOfUserOrDefault(user); var thread = _context.Thread .Include(n => n.Vorfall).ThenInclude(n => n.Politiker) .SingleOrDefault(n => n.Id == id) ?? throw new ThreadNotFoundException(); var dbParams = new NpgsqlParameter[] { new NpgsqlParameter <long>("id", thread.InitialPostId), new NpgsqlParameter <long>("userId", userId.GetValueOrDefault()) }; Post ConverterFunction(DbDataReader n) => new Post { Id = n.GetInt64(0), Content = n.GetString(1), CreatedOn = n.GetDateTime(2), ParentId = !n.IsDBNull(3) ? n.GetInt64(3) : (long?)null, UserId = n.GetInt64(4), UserName = n.GetString(5), Likes = n.GetInt32(6), Dislikes = n.GetInt32(7), UserLike = !n.IsDBNull(8) ? (LikeType)n.GetInt32(8) : (LikeType?)null }; var posts = this._context.GetData(PostQuery, ConverterFunction, dbParams.ToArray()); var mappedThread = new ThreadDetail { Id = thread.Id, PolitikerId = thread.Vorfall?.PolitikerId, PolitikerName = thread.Vorfall?.Politiker?.TitelName, Titel = thread.Title, VorfallId = thread.VorfallId, VorfallTitel = thread.Vorfall?.Titel, InitialPost = MapPost(posts.Single(n => n.Id == thread.InitialPostId), posts) }; return(mappedThread); }