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)); }
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)); }