/// <summary> /// Creates the action item information. /// </summary> /// <param name="actionItem">The action item.</param> /// <param name="item">The item.</param> /// <returns>ActionItemInfo.</returns> public ActionItemInfo CreateActionItemInfo(IActionItemEdit actionItem, IDynamicObject item) { if (item == null) return null; var actionManager = DynamicTypeManager.GetActionManager(actionItem.Process); var actionDefinition = actionManager.ActionDefinitions.FirstOrDefault(ad => string.Compare(ad.Guid.ToString(), actionItem.ActionGuid, StringComparison.Ordinal) == 0); if (actionDefinition == null) { return null; } var isNotification = false; var assignmentActionDefinition = actionDefinition as IAssignmentActionDefinition; if (assignmentActionDefinition != null) { isNotification = assignmentActionDefinition.IsNotification; } if (assignmentActionDefinition != null && !assignmentActionDefinition.IsNotification) { if (!actionDefinition.CanExecute(item, null)) return null; } var subject = actionDefinition.GetSubject(item); var message = actionDefinition.GetMessageForDashboard(item); var dueDate = GetDueDate(actionDefinition, item); var actionType = GetActionType(actionDefinition); return new ActionItemInfo( actionItem.Id, actionItem.Process, actionItem.ActionGuid, actionItem.ItemId ?? 0, actionDefinition.Name, subject, message, actionType, actionDefinition.GroupName, dueDate, actionItem.IsActionNew ?? true, isNotification); }
private IEditableRoot GetSourceItem(IActionItemEdit action) { if (!action.ItemId.HasValue) return null; var item = DynamicTypeManager.GetEditableRoot<IEditableRoot>(action.Process, action.ItemId.Value); return item != null && item.Id == action.ItemId.Value ? item : null; }