Пример #1
0
        public override async Task <IDisplayResult> UpdateAsync(ContentApprovalPart part, IUpdateModel updater)
        {
            var httpContext = _httpContextAccessor.HttpContext;

            // Have to do Publish Content permissions first
            if (await _authorizationService.AuthorizeAsync(httpContext?.User, OrchardCore.Contents.Permissions.PublishContent, part.ContentItem))
            {
                var viewModel = new ApprovalResponseViewModel();

                await updater.TryUpdateModelAsync(viewModel, Prefix);

                if (httpContext.Request.Form["submit.Publish"] == "submit.Publish" ||
                    httpContext.Request.Form["submit.Publish"] == "submit.PublishAndContinue")
                {
                    part.Status             = Settings.ContentApproved;
                    part.NotificationNeeded = nameof(ApprovalResponseEvent);
                }
                else if (httpContext.Request.Form["submit.Publish"] == "submit.Approved")
                {
                    part.Status             = Settings.ContentApproved;
                    part.Notes              = viewModel.Notes;
                    part.NotificationNeeded = nameof(ApprovalResponseEvent);
                }
                else if (httpContext.Request.Form["submit.Save"] == "submit.NeedsRevised")
                {
                    part.Status             = Settings.ContentNeedsRevised;
                    part.Notes              = viewModel.Notes;
                    part.NotificationNeeded = nameof(ApprovalResponseEvent);
                }
                else if (httpContext.Request.Form["submit.Save"] == "submit.Rejected")
                {
                    part.Status             = Settings.ContentRejected;
                    part.Notes              = viewModel.Notes;
                    part.NotificationNeeded = nameof(ApprovalResponseEvent);
                }
            }
            else if (await _authorizationService.AuthorizeAsync(httpContext?.User, Permissions.RequestApproval, part.ContentItem))
            {
                var viewModel = new ApprovalRequestViewModel();

                await updater.TryUpdateModelAsync(viewModel, Prefix);

                if (httpContext.Request.Form["submit.Save"] == "submit.RequestApproval")
                {
                    part.Status             = Settings.ContentApprovalRequested;
                    part.Notes              = viewModel.Notes;
                    part.NotificationNeeded = nameof(ApprovalRequestEvent);
                }
            }


            return(Edit(part));
        }
Пример #2
0
 private void PopulateApprovalResponseViewModel(ContentApprovalPart part, ApprovalResponseViewModel viewModel)
 {
     viewModel.Status = part.Status;
     viewModel.Notes  = part.Notes;
 }