public override void Validate(DynamicsPluginConfiguration configuration, DynamicsPluginServices services) { if (_mode.HasValue && services.Context.Mode != (int)_mode.Value) { Fail($"The plugin '{configuration.PluginType.Name}' must be invoked using mode '{_mode.ToString()}' but was invoked using mode '{Enum.ToObject(typeof(ExecutionMode), services.Context.Mode)}' instead."); } }
public override void Validate(DynamicsPluginConfiguration configuration, DynamicsPluginServices services) { if (services.Context.InitiatingUserId != _initiatingUserId) { Fail($"The plugin '{configuration.PluginType.Name}' must be executed as user '{_initiatingUserId}' but was executed as user '{services.Context.InitiatingUserId}'."); } }
public override void Validate(DynamicsPluginConfiguration configuration, DynamicsPluginServices services) { if (!services.Context.IsInTransaction) { Fail($"The plugin '{configuration.PluginType.Name}' must be registered as a step inside the database transaction."); } }
public override void Validate(DynamicsPluginConfiguration configuration, DynamicsPluginServices services) { var contextStage = (PluginStage)Enum.ToObject(typeof(PluginStage), services.Context.Stage); if (_stage.HasValue) { switch (contextStage) { case PluginStage.PreValidation: if ((_stage.Value & PluginStage.PreValidation) != PluginStage.PreValidation) { Fail($"The plugin '{configuration.PluginType.Name}' cannot be invoked in '{contextStage}'."); } break; case PluginStage.PreOperation: if ((_stage.Value & PluginStage.PreOperation) != PluginStage.PreOperation) { Fail($"The plugin '{configuration.PluginType.Name}' cannot be invoked in '{contextStage}'."); } break; case PluginStage.PostOperation: if ((_stage.Value & PluginStage.PostOperation) != PluginStage.PostOperation) { Fail($"The plugin '{configuration.PluginType.Name}' cannot be invoked in '{contextStage}'."); } break; } } }
public override void Validate(DynamicsPluginConfiguration configuration, DynamicsPluginServices services) { if (!string.IsNullOrEmpty(_messageName)) { if (string.Compare(services.Context.MessageName, _messageName, true) != 0) { Fail($"The plugin '{configuration.PluginType.Name}' must be registered on the message '{_messageName}'."); } } }
public override void Validate(DynamicsPluginConfiguration configuration, DynamicsPluginServices services) { if (!string.IsNullOrEmpty(_imageName)) { if (!services.Context.PostEntityImages.ContainsKey(_imageName)) { Fail($"The plugin '{configuration.PluginType.Name}' must contain a post-entity image named '{_imageName}' to be invoked."); } } }
public override void Validate(DynamicsPluginConfiguration configuration, DynamicsPluginServices services) { if (!string.IsNullOrEmpty(_entityName)) { if (((_pluginEntityType & PluginEntityType.Primary) == PluginEntityType.Primary) && string.Compare(services.Context.PrimaryEntityName, _entityName, true) != 0) { Fail($"The plugin '{configuration.PluginType.Name}' must be registered on the entity '{_entityName}' as the primary entity."); } if (((_pluginEntityType & PluginEntityType.Secondary) == PluginEntityType.Secondary) && string.Compare(services.Context.SecondaryEntityName, _entityName, true) != 0) { Fail($"The plugin '{configuration.PluginType.Name}' must be registered on the entity '{_entityName}' as the secondary entity."); } } }
public override void Validate(DynamicsPluginConfiguration configuration, DynamicsPluginServices services) { if (((_configurationType & PluginConfigurationType.Unsecure) == PluginConfigurationType.Unsecure) && string.IsNullOrEmpty(configuration.UnsecureConfiguration)) { Fail($"The plugin '{configuration.PluginType.Name}' must be registered with an unsecure configuration. You must re-register the plugin with this configuration before you can execute it."); } if (((_configurationType & PluginConfigurationType.Secure) == PluginConfigurationType.Secure) && string.IsNullOrEmpty(configuration.SecureConfiguration)) { Fail($"The plugin '{configuration.PluginType.Name}' must be registered with a secure configuration. You must re-register the plugin with this configuration before you can execute it."); } if (_configurationType == PluginConfigurationType.Both && (string.IsNullOrEmpty(configuration.UnsecureConfiguration) || string.IsNullOrEmpty(configuration.SecureConfiguration))) { Fail($"The plugin '{configuration.PluginType.Name}' must be registered with both an unsecure and a secure configuration. You must re-register the plugin with this configuration before you can execute it."); } }
public override void Validate(DynamicsPluginConfiguration configuration, DynamicsPluginServices services) { if ((services.Context.InputParameters == null || !services.Context.InputParameters.Contains("Target")) && _targetType != PluginContextTargetType.None) { Fail($"The plugin '{configuration.PluginType.Name}' must contain an input parameter named 'Target' to be invoked."); } if (services.Context.InputParameters != null && services.Context.InputParameters.Contains("Target")) { if (_targetType == PluginContextTargetType.None) { Fail($"The plugin '{configuration.PluginType.Name}' contains an input parameter named 'Target' but it should not."); } var targetIsEntity = services.Context.InputParameters["Target"] is Entity; var targetIsEntityReference = services.Context.InputParameters["Target"] is EntityReference; if (!targetIsEntity && _targetType == PluginContextTargetType.Entity) { Fail($"The plugin '{configuration.PluginType.Name}' contains an input parameter named 'Target' but it's type is not 'Entity'."); } if (!targetIsEntityReference && _targetType == PluginContextTargetType.EntityReference) { Fail($"The plugin '{configuration.PluginType.Name}' contains an input parameter named 'Target' but it's type is not 'EntityReference'."); } if (!(targetIsEntity || targetIsEntityReference) && _targetType == (PluginContextTargetType.Entity | PluginContextTargetType.EntityReference)) { Fail($"The plugin '{configuration.PluginType.Name}' contains an input parameter named 'Target' but it's type is not 'Entity' or 'EntityReference'."); } } }
public abstract void Validate(DynamicsPluginConfiguration configuration, DynamicsPluginServices services);
internal DynamicsPlugin(Type type, string unsecure = null, string secure = null) { Configuration = new DynamicsPluginConfiguration(type, unsecure, secure); }