private static string getWorkflowInfo(Item itemElement) { System.Text.StringBuilder sb = new System.Text.StringBuilder(); Sitecore.Workflows.IWorkflow iw = itemElement.State.GetWorkflow(); if (iw != null) { sb.Append(iw.Appearance.DisplayName); } Sitecore.Workflows.WorkflowState ws = itemElement.State.GetWorkflowState(); if (ws != null) { sb.AppendFormat(" ({0})", ws.DisplayName); } if (iw != null) { IEnumerable <WorkflowEvent> events = iw.GetHistory(itemElement).OrderByDescending(e => e.Date); IEnumerator <WorkflowEvent> enumerator = events.GetEnumerator(); if (enumerator.MoveNext()) { TimeSpan span = DateTime.Now.Subtract(enumerator.Current.Date); sb.AppendFormat(" for {0} days {1} hours {2} minutes", span.Days, span.Hours, span.Minutes); } } return(sb.ToString()); }
/// <summary>Gets the icon.</summary> /// <param name="item">The item.</param> /// <returns>The icon.</returns> protected override GutterIconDescriptor GetIconDescriptor(Item item) { Assert.ArgumentNotNull((object)item, nameof(item)); string str1 = item[FieldIDs.Workflow]; string str2 = item[FieldIDs.WorkflowState]; if (!Settings.Workflows.Enabled || !item.Access.CanWrite()) { return((GutterIconDescriptor)null); } if (string.IsNullOrEmpty(str1) || string.IsNullOrEmpty(str2)) { return((GutterIconDescriptor)null); } IWorkflowProvider workflowProvider = item.Database.WorkflowProvider; if (workflowProvider == null) { return((GutterIconDescriptor)null); } IWorkflow workflow = workflowProvider.GetWorkflow(item); if (workflow == null) { return((GutterIconDescriptor)null); } Sitecore.Workflows.WorkflowState state = workflow.GetState(item); if (state == null) { return((GutterIconDescriptor)null); } if (state.FinalState) { return((GutterIconDescriptor)null); } GutterIconDescriptor gutterIconDescriptor = new GutterIconDescriptor(); gutterIconDescriptor.Icon = state.Icon; gutterIconDescriptor.Tooltip = state.DisplayName; WorkflowCommand[] workflowCommandArray = WorkflowFilterer.FilterVisibleCommands(workflow.GetCommands(item), item); if (workflowCommandArray != null && workflowCommandArray.Length != 0) { //Modify the event subscribed to the gutterIconDescriptor to call custom command, found at ExtendedShowWorkflowCommands.cs gutterIconDescriptor.Click = "ss:extendedshowworkflowcommands(id=" + (object)item.ID + ",language=" + (object)item.Language + ",version=" + (object)item.Version + ",database=" + item.Database.Name + ")"; } return(gutterIconDescriptor); }