Beispiel #1
0
        public object ComputeFieldValue(IIndexable indexable)
        {
            var indexItem = indexable as SitecoreIndexableItem;

            if (indexItem == null)
            {
                return(null);
            }
            var item = (Sitecore.Data.Items.Item)indexItem.Item;

            if (item == null || item.Template == null)
            {
                return(null);
            }

            if (!item.InheritsTemplate(AssistiveToolsReviewPageItem.TemplateId))
            {
                return(null);
            }

            AssistiveToolsReviewPageItem toolPage = item;

            double offGrade    = GetGradeValue(toolPage.OffGrade);
            double targetGrade = GetGradeValue(toolPage.TargetGrade);
            double onGrade     = GetGradeValue(toolPage.OnGrade);

            double offGradeMultiplier   = GetMultiplierConfigValue(Constants.Settings.GradeLevelOffMultiplier);
            double targetGradeMultipler = GetMultiplierConfigValue(Constants.Settings.GradeLevelTargetMultiplier);
            double onGradeMultiplier    = GetMultiplierConfigValue(Constants.Settings.GradeLevelOnMultiplier);

            return((offGrade * offGradeMultiplier) + (targetGrade * targetGradeMultipler) + (onGrade * onGradeMultiplier));
        }
        protected void BindUserReviews()
        {
            // TODO: don't retrieve all reviews
            var reviews = CSMUserReviewExtensions.GetRecentReviews()
                          .Select(userReview =>
            {
                AssistiveToolsReviewPageItem item = (AssistiveToolsReviewPageItem)Sitecore.Context.Database.GetItem(userReview.CSMItemId);
                var url           = item.GetUrl();
                var grade         = Sitecore.Context.Database.GetItemAs <GradeLevelItem>(userReview.RatedGradeId);
                var comment       = TelligentService.ReadComments(item.BlogId, item.BlogPostId).Where(i => new Guid(i.CommentId).ToString() == userReview.TelligentCommentId.ToString()).FirstOrDefault();
                var processedBody = comment != null && !string.IsNullOrEmpty(comment.Body) && comment.Body.Length > 100 ?
                                    ""
                                    .TakeWhile((c, i) => i < comment.Body.Length && (i < 100 || Char.IsLetter(c))) :
                                    comment.Body;
                var reviewBody = processedBody != null && processedBody.Any() ? new String(processedBody.ToArray()) : string.Empty;

                return(new
                {
                    Title = userReview.ReviewTitle,
                    ReviewText = "<p>" + Sitecore.StringUtil.RemoveTags(reviewBody) + "...<a href=\"" + url + "\">" + DictionaryConstants.ReadMoreLabel + "</a></p>",
                    RatingHtml = GetRatingHTML(userReview.Rating),
                    Url = url,
                    LinkText = (grade != null ? grade.Name.Raw + " & " : string.Empty) +
                               string.Join(" & ", userReview.UserReviewIssues.Select(i => i.ContentTitle.Raw))
                });
            });

            if (reviews.Count() > 0)
            {
                rptrWhatParentsAreSaying.DataSource = reviews;
                rptrWhatParentsAreSaying.DataBind();
            }
            else
            {
                divParentReviews.Visible = false;
            }
        }