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);
        }
Example #3
0
        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();
        }
Example #4
0
        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);
        }