Пример #1
0
        private ActionResult GetIdeaForumView(Entity ideaForum, int?page, string filter = null, string timeSpan = null, string status = "new")
        {
            IdeaStatus           ideaStatus;
            IdeaForumDataAdapter ideaForumDataAdapter;

            if (string.Equals(filter, "new", StringComparison.InvariantCultureIgnoreCase))
            {
                ideaForumDataAdapter = new IdeaForumByNewDataAdapter(ideaForum);
            }
            else if (string.Equals(filter, "hot", StringComparison.InvariantCultureIgnoreCase))
            {
                ideaForumDataAdapter = new IdeaForumByHotDataAdapter(ideaForum);
            }
            else
            {
                ideaForumDataAdapter = new IdeaForumDataAdapter(ideaForum);
            }

            ideaForumDataAdapter.MinDate = timeSpan == "this-year" ? DateTime.UtcNow.AddYears(-1).Date
                                : timeSpan == "this-month" ? DateTime.UtcNow.AddMonths(-1).Date
                                : timeSpan == "this-week" ? DateTime.UtcNow.AddDays(-7).Date
                                : timeSpan == "today" ? DateTime.UtcNow.AddHours(-24)
                                : (DateTime?)null;

            ideaForumDataAdapter.Status = Enum.TryParse(status, true, out ideaStatus) ? (int)ideaStatus : (int?)null;

            var ideaForumViewModel = new IdeaForumViewModel
            {
                IdeaForum = ideaForumDataAdapter.Select(),
                Ideas     = new PaginatedList <IIdea>(page, ideaForumDataAdapter.SelectIdeaCount(), ideaForumDataAdapter.SelectIdeas)
            };

            return(View("IdeaForum", ideaForumViewModel));
        }
Пример #2
0
        private ActionResult GetIdeaForumView(Entity ideaForum, int?page, OrganizationServiceContext context, string filter = null, string timeSpan = null, int?status = 1)
        {
            IIdeaForumDataAdapter ideaForumDataAdapter = IdeaForumDataAdapterFactory.Instance.CreateIdeaForumDataAdapter(ideaForum, filter, timeSpan, status);

            var currentIdeaForum = ideaForumDataAdapter.Select();

            if (currentIdeaForum == null)
            {
                return(RedirectToPageNotFound());
            }

            var ideaForumViewModel = new IdeaForumViewModel
            {
                IdeaForum = currentIdeaForum,
                Ideas     = new PaginatedList <IIdea>(page, ideaForumDataAdapter.SelectIdeaCount(), ideaForumDataAdapter.SelectIdeas)
            };

            foreach (var idea in ideaForumViewModel.Ideas)
            {
                idea.Url = context.GetUrl(idea.Entity);
            }

            // Set label for status displayed in dropdown
            ideaForumViewModel.CurrentStatusLabel = status == null?
                                                    currentIdeaForum.IdeaStatusOptionSetMetadata.Options.Where(o => o.Value == (int?)IdeaStatus.New).FirstOrDefault().Label.GetLocalizedLabelString().ToLower() :
                                                        status == (int?)IdeaStatus.Any ? ResourceManager.GetString("IdeaForum_Any") :
                                                        currentIdeaForum.IdeaStatusOptionSetMetadata.Options.Where(o => o.Value == status).FirstOrDefault().Label.GetLocalizedLabelString().ToLower();

            if (FeatureCheckHelper.IsFeatureEnabled(FeatureNames.TelemetryFeatureUsage))
            {
                PortalFeatureTrace.TraceInstance.LogFeatureUsage(FeatureTraceCategory.Idea, this.HttpContext, "read_idea_forum", ideaForumViewModel.Ideas.Count(), ideaForum.ToEntityReference(), "read");
            }

            // sprinkle these calls in for whichever events we want to trace
            //Log Customer Journey Tracking
            if (FeatureCheckHelper.IsFeatureEnabled(FeatureNames.CustomerJourneyTracking))
            {
                PortalTrackingTrace.TraceInstance.Log(Constants.Forum, ideaForum.Id.ToString(), currentIdeaForum.Title);
            }

            return(View("IdeaForum", ideaForumViewModel));
        }