示例#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 bool TryAddIdea(IdeaForumDataAdapter ideaForumDataAdapter, string title, string authorName, string authorEmail, string copy)
        {
            if (!Request.IsAuthenticated)
            {
                if (string.IsNullOrWhiteSpace(authorName))
                {
                    ModelState.AddModelError("authorName", "Your name is required.");
                }

                if (string.IsNullOrWhiteSpace(authorEmail))
                {
                    ModelState.AddModelError("authorEmail", "Email is required; it will not be displayed.");
                }
            }

            if (string.IsNullOrWhiteSpace(title))
            {
                ModelState.AddModelError("title", "Idea is required.");
            }

            if (!ModelState.IsValid)
            {
                return(false);
            }

            ideaForumDataAdapter.CreateIdea(title, copy, authorName, authorEmail);

            return(true);
        }
        public ActionResult Create(Guid id, string title, string authorName, string authorEmail, string copy)
        {
            var context = PortalCrmConfigurationManager.CreateServiceContext();

            var ideaForum = context.CreateQuery("adx_ideaforum").FirstOrDefault(ideaforum => ideaforum.GetAttributeValue <Guid>("adx_ideaforumid") == id);

            if (ideaForum == null || !Authorized(context, ideaForum))
            {
                return(new EmptyResult());
            }

            var ideaForumDataAdapter = new IdeaForumDataAdapter(ideaForum);

            var sanitizedCopy = SafeHtml.SafeHtmSanitizer.GetSafeHtml(copy ?? string.Empty);

            TryAddIdea(ideaForumDataAdapter, title, authorName, authorEmail, sanitizedCopy);

            var currentIdeaForum = ideaForumDataAdapter.Select();

            if (currentIdeaForum == null)
            {
                throw new InvalidOperationException(string.Format("Can't find {0} having ID {1}.", "adx_ideaforum", ideaForum.Id));
            }
            return(PartialView("CreateIdea", currentIdeaForum));
        }
        private bool TryAddIdea(IdeaForumDataAdapter ideaForumDataAdapter, string title, string authorName, string authorEmail, string copy)
        {
            if (!Request.IsAuthenticated)
            {
                if (string.IsNullOrWhiteSpace(authorName))
                {
                    ModelState.AddModelError("authorName", ResourceManager.GetString("Name_Required_Error"));
                }

                if (string.IsNullOrWhiteSpace(authorEmail))
                {
                    ModelState.AddModelError("authorEmail", ResourceManager.GetString("Email_Required_Error"));
                }
            }

            if (string.IsNullOrWhiteSpace(title))
            {
                ModelState.AddModelError("title", ResourceManager.GetString("Idea_Is_Required_Error"));
            }

            if (!ModelState.IsValid)
            {
                return(false);
            }

            ideaForumDataAdapter.CreateIdea(title, copy, authorName, authorEmail);

            return(true);
        }
示例#5
0
        public ActionResult Create(Guid id, string title, string authorName, string authorEmail, string copy)
        {
            var context = PortalCrmConfigurationManager.CreateServiceContext();

            var ideaForum = context.CreateQuery("adx_ideaforum").FirstOrDefault(ideaforum => ideaforum.GetAttributeValue <Guid>("adx_ideaforumid") == id);

            if (ideaForum == null || !Authorized(context, ideaForum))
            {
                return(new EmptyResult());
            }

            var ideaForumDataAdapter = new IdeaForumDataAdapter(ideaForum);

            TryAddIdea(ideaForumDataAdapter, title, authorName, authorEmail, copy);

            return(PartialView("CreateIdea", ideaForumDataAdapter.Select()));
        }
示例#6
0
        private ActionResult GetIdeaView(Entity adxIdeaForum, Entity adxIdea, int?page)
        {
            var ideaDataAdapter = new IdeaDataAdapter(adxIdea)
            {
                ChronologicalComments = true
            };

            var idea     = ideaDataAdapter.Select();
            var comments = FeatureCheckHelper.IsFeatureEnabled(FeatureNames.Feedback)
                                ? new PaginatedList <IComment>(page, ideaDataAdapter.SelectCommentCount(), ideaDataAdapter.SelectComments)
                                : null;

            var currentIdeaForum = new IdeaForumDataAdapter(adxIdeaForum).Select();

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

            var ideaViewModel = new IdeaViewModel
            {
                IdeaForum = currentIdeaForum,
                Idea      = idea,
                Comments  = new IdeaCommentsViewModel {
                    Comments = comments, Idea = idea
                }
            };

            if (FeatureCheckHelper.IsFeatureEnabled(FeatureNames.TelemetryFeatureUsage))
            {
                PortalFeatureTrace.TraceInstance.LogFeatureUsage(FeatureTraceCategory.Idea, this.HttpContext, "read_idea", 1, idea.Entity.ToEntityReference(), "read");
                PortalFeatureTrace.TraceInstance.LogFeatureUsage(FeatureTraceCategory.Idea, this.HttpContext, "read_comment_idea", idea.CommentCount, idea.Entity.ToEntityReference(), "read");
            }

            return(View("Idea", ideaViewModel));
        }