예제 #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));
        }
        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));
        }
예제 #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));
        }
예제 #4
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));
        }