public void UpdateWorkflowState(ContentWorkflowState state) { DataProvider.Instance().UpdateContentWorkflowState(state.StateID, state.StateName, state.Order, state.IsActive, state.SendEmail, state.SendMessage, state.IsDisposalState, state.OnCompleteMessageSubject, state.OnCompleteMessageBody, state.OnDiscardMessageSubject, state.OnDiscardMessageBody); }
public void AddWorkflowState(ContentWorkflowState state) { var id = DataProvider.Instance().AddContentWorkflowState(state.WorkflowID, state.StateName, state.Order, state.IsActive, state.SendEmail, state.SendMessage, state.IsDisposalState, state.OnCompleteMessageSubject, state.OnCompleteMessageBody, state.OnDiscardMessageSubject, state.OnDiscardMessageBody); state.StateID = id; }
public string ReplaceNotificationTokens(string text, ContentWorkflow workflow, ContentItem item, ContentWorkflowState state, int portalID, int userID, string comment = "") { var user = UserController.GetUserById(portalID, userID); var datetime = DateTime.Now; var result = text.Replace("[USER]", user != null ? user.DisplayName : ""); result = result.Replace("[DATE]", datetime.ToString("d-MMM-yyyy hh:mm") + datetime.ToString("tt").ToLowerInvariant()); result = result.Replace("[STATE]", state != null ? state.StateName : ""); result = result.Replace("[WORKFLOW]", workflow != null ? workflow.WorkflowName : ""); result = result.Replace("[CONTENT]", item != null ? item.ContentTitle : ""); result = result.Replace("[COMMENT]", !String.IsNullOrEmpty(comment) ? comment : ""); return(result); }
private void SendNotification(PortalSettings settings, ContentWorkflow workflow, ContentItem item, ContentWorkflowState state, string subject, string body, string comment, int destinationStateID, int actionUserID, string source, string[] parameters) { var permissions = GetWorkflowStatePermissionByState(destinationStateID); var users = GetUsersFromPermissions(settings, permissions); var roles = GetRolesFromPermissions(settings, permissions); var replacedSubject = ReplaceNotificationTokens(subject, workflow, item, GetWorkflowStateByID(destinationStateID), settings.PortalId, actionUserID); var replacedBody = ReplaceNotificationTokens(body, workflow, item, GetWorkflowStateByID(destinationStateID), settings.PortalId, actionUserID); SendNotification(state.SendEmail, state.SendMessage, settings, roles, users, replacedSubject, replacedBody, comment, actionUserID, source, parameters); }