Exemple #1
0
        /// <summary>
        /// Get a List of 100 submissions made by user with id
        /// </summary>
        /// <param name="id">Id of the user</param>
        /// <param name="skipNrOfSubmissions">Nr of submissions to skip (pagination)</param>
        /// <returns>The ViewModel with the user's information and his submissions</returns>
        public UserSubmissionsViewModel Get100UserSubmissionsById(Guid id, int skipNrOfSubmissions)
        {
            User userEntity = _userRepository.GetUserById(id);

            UserSubmissionsViewModel userModel = new UserSubmissionsViewModel
            {
                Name = userEntity.Name,
                Id   = userEntity.Id
            };
            List <SubmissionListViewModel> Submissions = _submissionRepository.Query()
                                                         .Where(sub => sub.Author.Id == id)
                                                         .OrderBy(sub => Math.Abs(sub.Upvotes - sub.Downvotes))
                                                         .Skip(skipNrOfSubmissions)
                                                         .Take(100)
                                                         .Select(subEntity => new SubmissionListViewModel
            {
                Id         = subEntity.Id,
                Title      = subEntity.Title,
                Content    = subEntity.Content,
                AuthorId   = subEntity.Author.Id,
                AuthorName = subEntity.Author.Name,
                Upvotes    = subEntity.Upvotes,
                Downvotes  = subEntity.Downvotes
            }).ToList();

            userModel.Submissions = Submissions;
            return(userModel);
        }
        public Task <PendingSubmission[]> Handle(QueryPending request, CancellationToken cancellationToken)
        {
            var results = submissions.Query()
                          .Where(x => x.Pending)
                          .Select(PendingSubmission.Create)
                          .ToArray();

            return(Task.FromResult(results));
        }
        public Task <SubmissionAudit[]> Handle(QueryAudits request, CancellationToken cancellationToken)
        {
            var results = submissions.Query()
                          .Where(x => !x.Pending)
                          .Select(SubmissionAudit.Create)
                          .ToArray();

            return(Task.FromResult(results));
        }
Exemple #4
0
        public Task <Unit> Handle(ApproveAllSubmissions request, CancellationToken cancellationToken)
        {
            var pending = submissions.Query().Where(x => x.Pending);

            foreach (var submission in pending.ToList())
            {
                submission.ApproveBy(request.ApproverId);
                publisher.PublishAllDomainEvents(submission);
            }

            return(Unit.Task);
        }