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)); }
private void PopulateApprovalResponseViewModel(ContentApprovalPart part, ApprovalResponseViewModel viewModel) { viewModel.Status = part.Status; viewModel.Notes = part.Notes; }