private static void OnAfterDataUpdated(object sender, DataEventArgs dataEventArgs) { if (GetProcessControllersCounter() > 0) { return; } if (dataEventArgs.Data is IPublishControlled) { IPublishProcessController controller = GetProcessController <IPublishProcessController>(dataEventArgs.Data.DataSourceId.InterfaceType); if (controller != null) { bool callAuxilaries = controller.OnAfterDataUpdated(dataEventArgs.Data); if (callAuxilaries) { IEnumerable <IPublishControlledAuxiliary> publishControlledAuxiliaries = GetPublishControlledAuxiliaries(dataEventArgs.DataType); foreach (IPublishControlledAuxiliary publishControlledAuxiliary in publishControlledAuxiliaries) { publishControlledAuxiliary.OnAfterDataUpdated(dataEventArgs.Data); } } } } }
/// <exclude /> public static void ValidateTransition(IData data, string status) { if (data == null) { throw new ArgumentNullException("data"); } IPublishProcessController controller = GetProcessController <IPublishProcessController>(data.DataSourceId.InterfaceType); if (controller == null) { throw new ArgumentException(string.Format("The type '{0}' is not registred process controller", data.DataSourceId.InterfaceType)); } controller.ValidateTransition(data, status); }
/// <exclude /> public static IDictionary <string, string> GetValidTransitions(IData data) { if (data == null) { throw new ArgumentNullException("data"); } IPublishProcessController controller = GetProcessController <IPublishProcessController>(data.DataSourceId.InterfaceType); if (controller == null) { throw new ArgumentException(string.Format("The type '{0}' is not registred process controller", data.DataSourceId.InterfaceType)); } return(controller.GetValidTransitions(data)); }