Esempio n. 1
0
        //
        //GET: /Review/
        public ActionResult Index()
        {
            var userid = (int)Membership.GetUser().ProviderUserKey;

            var user = _db.UserProfiles.Find(userid);

            var reviewCompletions = user.ReviewCompletions.Where(rc => rc.Status == "Current");

            var todoNUmber = Roles.IsUserInRole(user.UserName, "SeniorReviewer")
                ? _db.Records.Count(r => r.DeleteRecord == false &&
                                    r.PaperDocuments.Count(pd => pd.DeletePaperDocument == false) > 0 &&
                                    r.AcceptanceStatus == "Accepted" &&
                                    r.AcceptanceStatus_randomizer == "Pass TC1" &&
                                    r.ReviewCompletions.Count(rc => rc.Status == "Current" && !rc.Reconciliation) == 0
                                    )
                : _db.Records.Count(r => r.ReviewCompletions.Count(rc => rc.Status == "Current" && rc.ComplesionDate != null) == 1 &&
                                    r.ReviewCompletions.Count(rc => rc.Status == "Current" && !rc.Reconciliation) < (int)IICURas.Enums.ReviewComplesionThreshold.MinimumReviewedNum &&
                                    r.ReviewCompletions.Count(rc => rc.Status == "Current" && !rc.Reconciliation && rc.UserID == userid) == 0
                                    );

            var reviewOverviewVm = new ReviewOverviewViewModel
            {
                isSenior       = Roles.IsUserInRole("SeniorReviewer "),
                CompleteNumber = reviewCompletions.Count(rc => rc.Status == "Current" && !rc.Reconciliation && rc.ComplesionDate != null),
                OngoingNumber  = reviewCompletions.Count(rc => rc.Status == "Current" && rc.ComplesionDate == null && !rc.Reconciliation),
                TodoNumber     = todoNUmber,
                OngoingReview  = reviewCompletions.Where(rc => rc.Status == "Current" && rc.ComplesionDate == null && !rc.Reconciliation).Select(rc => new OngoingReviewViewModel()
                {
                    PublicationID      = rc.RecordRecordID,
                    ReviewCompletionID = rc.ReviewCompletionID,
                    LastUpdatedTime    = rc.LastUpdateTime,
                    CompletedNumber    = rc.PaperQualities.Count(pq => pq.Status == "Current" && pq.OptionOptionID != null),
                    TotalNumber        = rc.PaperQualities.Count(pq => pq.Status == "Current"),
                    SpeciesNumber      = rc.LinkRecordUserSpecies.Count(lrus => lrus.Status == "Current"),
                    isSenior           = Roles.IsUserInRole("SeniorReviewer "),
                })
            };

            return(View(reviewOverviewVm));
        }
Esempio n. 2
0
        public ReviewOverviewViewModel GetReviewsForProduct(int id)
        {
            var product = this.Context.Products.Find(id);

            if (product.Reviews.Count == 0)
            {
                return(new ReviewOverviewViewModel {
                    AverageUserRating = 0
                });
            }
            ReviewOverviewViewModel rovm = new ReviewOverviewViewModel
            {
                AverageUserRating = product.Rating,
                NumberOf1Star     = product.Reviews.Count(r => r.Rating == 1),
                NumberOf2Stars    = product.Reviews.Count(r => r.Rating == 2),
                NumberOf3Stars    = product.Reviews.Count(r => r.Rating == 3),
                NumberOf4Stars    = product.Reviews.Count(r => r.Rating == 4),
                NumberOf5Stars    = product.Reviews.Count(r => r.Rating == 5),
            };

            var reviews = product.Reviews.ToList();

            foreach (var review in reviews)
            {
                SimpleReviewViewModel srvm = Mapper.Instance.Map <SimpleReviewViewModel>(review);
                srvm.ReviewerUsername  = review.Reviewer.User.UserName;
                srvm.DaysAgoPublished  = (int)(DateTime.Now - review.PublishDate).TotalDays;
                srvm.PublishDateString = review.PublishDate.ToString("yy-MMM-dd ddd", new CultureInfo("en-US"));
                srvm.ContentParagraphs = review.Content.Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries);
                if (review.Reviewer.User.ProfilePictureFileName != null)
                {
                    srvm.ReviewerImageData = this.GetUserProfilePicture(review.Reviewer.User.ProfilePictureFileName,
                                                                        review.Reviewer.User.UserName);
                }
                rovm.Reviews.Add(srvm);
            }

            return(rovm);
        }
        public ActionResult LoadProductReviews(int id)
        {
            ReviewOverviewViewModel rovm = this._service.GetReviewsForProduct(id);

            return(this.PartialView("_AllProductReviewPartial", rovm));
        }