Example #1
0
        public Task PrepareModelAsync(ReviewListModel model, IPageable <Review> reviews)
        {
            if (model == null)
            {
                throw new ArgumentNullException(nameof(model));
            }
            if (reviews == null)
            {
                throw new ArgumentNullException(nameof(reviews));
            }

            foreach (var review in reviews)
            {
                var reviewModel = new ReviewModel
                {
                    Review = review
                };
                model.Items.Add(reviewModel);
            }

            model.ApprovedOptions.AddRange(SelectListHelper.GetBoolSelectList("Approved", "Rejected", selectedBool: model.Filter.Approved, defaultText: "All"));
            model.RatingOptions.AddRange(SelectListHelper.GetSelectList(Enumerable.Range(1, 5).Reverse(),
                                                                        (x) => new SelectListItem <int>(text: $"{"star".ToQuantity(x)}", value: x.ToString(), selected: x == model.Filter.Rating), defaultText: "All"));

            model.Page       = reviews.Page;
            model.PageSize   = reviews.PageSize;
            model.PageFrom   = reviews.PageFrom;
            model.PageTo     = reviews.PageTo;
            model.TotalPages = reviews.TotalPages;
            model.TotalItems = reviews.TotalItems;

            return(Task.CompletedTask);
        }
Example #2
0
 private void OnReviewSelected(ReviewListModel review)
 {
     _mediator.Send(new SelectedMessage <FilmWrapper> {
         Id = review.FilmId
     });
     _mediator.Send(new SelectedMessage <ReviewDetailWrapper> {
         Id = review.Id
     });
 }
Example #3
0
        public static ReviewEntity MapToEntity(ReviewListModel model, IEntityFactory entityFactory)
        {
            var entity = (entityFactory ??= new EntityFactory()).Create <ReviewEntity>(model.Id);

            entity.Id         = model.Id;
            entity.Rating     = model.Rating;
            entity.TextReview = model.TextReview;
            entity.FilmId     = model.FilmId;

            return(entity);
        }
Example #4
0
        public async Task <IActionResult> Index(ReviewFilter filter, int page)
        {
            var seller = await HttpContext.GetMemberAsync();

            filter.SellerId = seller.Id;

            var reviews = await _reviewService.GetQuery(filter).ToPageableAsync(page, _appSettings.PageDefaultSize);

            var model = new ReviewListModel
            {
                Filter = filter
            };

            await _appService.PrepareModelAsync(model, reviews);

            return(View(model));
        }
Example #5
0
        //[OutputCache(NoStore = true, Duration = 0, VaryByParam = "*")]
        public ActionResult _ReviewListPartial(string Id)
        {
            // TODO: Validate ID!

            CVGSAppEntities db = new CVGSAppEntities();

            var model = new ReviewListModel();

            model.GameId = Id;

            // add approved reviews for the game
            var reviews                = db.GameReviews.Where(r => r.GameId == Id && r.Approved == true);
            var approvedReviews        = new List <ReviewViewModel>();
            var applicationUserManager = HttpContext.GetOwinContext().GetUserManager <ApplicationUserManager>();

            foreach (var review in reviews)
            {
                approvedReviews.Add(new ReviewViewModel
                {
                    Id         = review.Id,
                    ReviewerId = review.CreatedBy,
                    Reviewer   = applicationUserManager.FindById(review.CreatedBy).UserName,
                    EditedOn   = review.EditedOn,
                    ReviewText = review.ReviewText
                });
            }
            model.ApprovedReviews = approvedReviews.OrderBy(m => m.EditedOn).ToList();

            // add unapproved reviews for the game left by the current user
            var userId            = User.Identity.GetUserId();
            var userName          = User.Identity.GetUserName();
            var unapprovedReviews = db.GameReviews
                                    .Where(r => r.GameId == Id && r.CreatedBy == userId && r.Approved == false)
                                    .Select(r => new ReviewViewModel
            {
                Id         = r.Id,
                ReviewerId = r.Id,
                Reviewer   = userName,
                ReviewText = r.ReviewText,
                EditedOn   = r.EditedOn
            })
                                    .ToList();

            model.UnapprovedReviewsByUser = unapprovedReviews.OrderBy(r => r.EditedOn).ToList();
            return(PartialView(model));
        }
Example #6
0
 private void ReviewSelected(ReviewListModel review) =>
 _mediator.Send(new SelectedMessage <ReviewDetailWrapper> {
     Id = review.Id
 });