示例#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);
        }
示例#2
0
        public UserSubmissionsPage()
        {
            viewModel      = new UserSubmissionsViewModel();
            BindingContext = viewModel;

            InitializeComponent();
        }
        public ActionResult UserSubmissions(Guid id, int skipNrOfSubmissions)
        {
            UserSubmissionsViewModel submissions = this._userService.Get100UserSubmissionsById(id, skipNrOfSubmissions);

            if (User.Identity.IsAuthenticated)
            {
                ViewBag.userName = this._userService.GetUserById(Guid.Parse(User.Identity.GetUserId())).Name;
            }
            ViewBag.skipNrOfSubmission = skipNrOfSubmissions;

            return(View(submissions));
        }