Esempio n. 1
0
        public ActionResult AlertRemove(Guid id)
        {
            var context = PortalCrmConfigurationManager.CreateServiceContext();

            var issue = context.CreateQuery("adx_issue").FirstOrDefault(adxIssue => adxIssue.GetAttributeValue <Guid>("adx_issueid") == id);

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

            var issueDataAdapter = new IssueDataAdapter(issue);
            var user             = PortalCrmConfigurationManager.CreatePortalContext().User;

            if (user == null)
            {
                return(new EmptyResult());
            }

            issueDataAdapter.DeleteAlert(user.ToEntityReference());

            var issueViewModel = new IssueViewModel
            {
                Issue = issueDataAdapter.Select(),
                CurrentUserHasAlert = issueDataAdapter.HasAlert()
            };

            return(PartialView("Tracking", issueViewModel));
        }
Esempio n. 2
0
        private bool TryAddComment(IssueDataAdapter issueDataAdapter, string authorName, string authorEmail, string content)
        {
            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(content))
            {
                ModelState.AddModelError("content", ResourceManager.GetString("Comment_Required_Error"));
            }

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

            issueDataAdapter.CreateComment(content, authorName, authorEmail);

            return(true);
        }
Esempio n. 3
0
        public ActionResult CommentCreate(Guid id, string authorName, string authorEmail, string copy)
        {
            var context = PortalCrmConfigurationManager.CreateServiceContext();

            var issue = context.CreateQuery("adx_issue").FirstOrDefault(adxIssue => adxIssue.GetAttributeValue <Guid>("adx_issueid") == id);

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

            var issueDataAdapter = new IssueDataAdapter(issue)
            {
                ChronologicalComments = true
            };

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

            TryAddComment(issueDataAdapter, authorName, authorEmail, sanitizedCopy);

            var comments = FeatureCheckHelper.IsFeatureEnabled(FeatureNames.Feedback)
                                ? new PaginatedList <IComment>(PaginatedList.Page.Last, issueDataAdapter.SelectCommentCount(), issueDataAdapter.SelectComments)
                                : null;

            var commentsViewModel = new IssueCommentsViewModel
            {
                Issue    = issueDataAdapter.Select(),
                Comments = comments
            };

            return(PartialView("Comments", commentsViewModel));
        }
        private ActionResult GetIssueView(Entity adxIssueForum, Entity adxIssue, int?page)
        {
            var issueDataAdapter = new IssueDataAdapter(adxIssue)
            {
                ChronologicalComments = true
            };

            var issue = issueDataAdapter.Select();

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

            var issueViewModel = new IssueViewModel
            {
                IssueForum = new IssueForumDataAdapter(adxIssueForum).Select(),
                Issue      = issue,
                Comments   = new IssueCommentsViewModel {
                    Comments = comments, Issue = issue
                },
                CurrentUserHasAlert = issueDataAdapter.HasAlert()
            };

            return(View("Issue", issueViewModel));
        }
Esempio n. 5
0
        private bool TryAddComment(IssueDataAdapter issueDataAdapter, string authorName, string authorEmail, string content)
        {
            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(content))
            {
                ModelState.AddModelError("content", "Comment is required.");
            }

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

            issueDataAdapter.CreateComment(content, authorName, authorEmail);

            return(true);
        }
Esempio n. 6
0
        public ActionResult CommentCreate(Guid id, string authorName, string authorEmail, string copy)
        {
            var context = PortalCrmConfigurationManager.CreateServiceContext();

            var issue = context.CreateQuery("adx_issue").FirstOrDefault(adxIssue => adxIssue.GetAttributeValue <Guid>("adx_issueid") == id);

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

            var issueDataAdapter = new IssueDataAdapter(issue)
            {
                ChronologicalComments = true
            };

            TryAddComment(issueDataAdapter, authorName, authorEmail, copy);

            var commentsViewModel = new IssueCommentsViewModel
            {
                Issue    = issueDataAdapter.Select(),
                Comments = new PaginatedList <IComment>(PaginatedList.Page.Last, issueDataAdapter.SelectCommentCount(), issueDataAdapter.SelectComments)
            };

            return(PartialView("Comments", commentsViewModel));
        }