public EventSubscription CreateEventSubscription( string scope, string eventSubscriptionName, string endpoint, string endpointType, string subjectBeginsWith, string subjectEndsWith, bool isSubjectCaseSensitive, string[] includedEventTypes, string[] labels) { EventSubscription eventSubscription = new EventSubscription(); EventSubscriptionDestination destination = null; const string WebHookEventSubscriptionDestination = "webhook"; const string EventHubEventSubscriptionDestination = "eventhub"; if (string.IsNullOrEmpty(endpointType) || string.Equals(endpointType, WebHookEventSubscriptionDestination, StringComparison.OrdinalIgnoreCase)) { destination = new WebHookEventSubscriptionDestination() { EndpointUrl = endpoint }; } else if (string.Equals(endpointType, EventHubEventSubscriptionDestination, StringComparison.OrdinalIgnoreCase)) { destination = new EventHubEventSubscriptionDestination() { ResourceId = endpoint }; } else { throw new ArgumentNullException(nameof(endpointType), "EndpointType should be WebHook or EventHub"); } if (includedEventTypes == null) { includedEventTypes = new string[1]; includedEventTypes[0] = "All"; } var filter = new EventSubscriptionFilter() { SubjectBeginsWith = subjectBeginsWith, SubjectEndsWith = subjectEndsWith, IsSubjectCaseSensitive = isSubjectCaseSensitive, IncludedEventTypes = new List <string>(includedEventTypes) }; eventSubscription.Destination = destination; eventSubscription.Filter = filter; if (labels != null) { eventSubscription.Labels = new List <string>(labels); } return(this.Client.EventSubscriptions.Create(scope, eventSubscriptionName, eventSubscription)); }
public async Task <EventSubscription> SubscribeEvent( string credentialsAzureSubscriptionId, string credentialsTenantId, string credentialsClientId, string credentialsClientSecret, string scope, string eventSubscriptionName, string id, string name, string subscriptionType, string topic, string provisioningState, List <string> labels, string eventDeliverySchema, int maxDeliveryAttempts, int eventTimeToLiveInMinutes, double expirationTimeInHours, string endpointUrl, int?maxEventsPerBatch) { await Task.Delay(0); try { EventGridManagementClient managementClient = new EventGridManagementClient(credentials: new CustomLoginCredentials(credentialsTenantId, credentialsClientId, credentialsClientSecret)); managementClient.SubscriptionId = credentialsAzureSubscriptionId; EventSubscriptionFilter filter = null; DateTime? expirationTime = DateTime.UtcNow.AddHours(expirationTimeInHours); RetryPolicy retryPolicy = new RetryPolicy(maxDeliveryAttempts: maxDeliveryAttempts, eventTimeToLiveInMinutes: eventTimeToLiveInMinutes); DeadLetterDestination deadLetterDestination = null; WebHookEventSubscriptionDestination destination = new WebHookEventSubscriptionDestination(endpointUrl: endpointUrl, maxEventsPerBatch: maxEventsPerBatch); EventSubscription eventSubscriptionInfo = new EventSubscription( id: id, name: name, type: subscriptionType, topic: topic, provisioningState: provisioningState, destination: destination, filter: filter, labels: labels, expirationTimeUtc: expirationTime, eventDeliverySchema: eventDeliverySchema, retryPolicy: retryPolicy, deadLetterDestination: deadLetterDestination); EventSubscription createdSubscription = await managementClient.EventSubscriptions.CreateOrUpdateAsync( scope : scope, eventSubscriptionName : eventSubscriptionName, eventSubscriptionInfo : eventSubscriptionInfo); return(createdSubscription); } catch (Exception ex) { _logger?.LogError($"Unknown Exception. Type: {ex.GetType().ToString()} ; Message: {ex.Message} ; Details: {ex.ToString()}"); return(null); } }
public EventSubscription CreateEventSubscription( string scope, string eventSubscriptionName, string endpoint, string endpointType, string subjectBeginsWith, string subjectEndsWith, bool isSubjectCaseSensitive, string[] includedEventTypes, string[] labels, RetryPolicy retryPolicy, string deadLetterEndpoint) { EventSubscription eventSubscription = new EventSubscription(); EventSubscriptionDestination destination = null; if (string.IsNullOrEmpty(endpointType) || string.Equals(endpointType, EventGridConstants.Webhook, StringComparison.OrdinalIgnoreCase)) { destination = new WebHookEventSubscriptionDestination() { EndpointUrl = endpoint }; } else if (string.Equals(endpointType, EventGridConstants.EventHub, StringComparison.OrdinalIgnoreCase)) { destination = new EventHubEventSubscriptionDestination() { ResourceId = endpoint }; } else if (string.Equals(endpointType, EventGridConstants.StorageQueue, StringComparison.OrdinalIgnoreCase)) { destination = this.GetStorageQueueEventSubscriptionDestinationFromEndpoint(endpoint); } else if (string.Equals(endpointType, EventGridConstants.HybridConnection, StringComparison.OrdinalIgnoreCase)) { destination = new HybridConnectionEventSubscriptionDestination() { ResourceId = endpoint }; } else { throw new ArgumentNullException(nameof(endpointType), "Invalid EndpointType. Allowed values are WebHook, EventHub, StorageQueue or HybridConnection"); } if (includedEventTypes == null) { includedEventTypes = new string[1]; includedEventTypes[0] = "All"; } eventSubscription.Destination = destination; var filter = new EventSubscriptionFilter() { SubjectBeginsWith = subjectBeginsWith, SubjectEndsWith = subjectEndsWith, IsSubjectCaseSensitive = isSubjectCaseSensitive, IncludedEventTypes = new List <string>(includedEventTypes) }; eventSubscription.Filter = filter; if (labels != null) { eventSubscription.Labels = new List <string>(labels); } if (retryPolicy != null) { eventSubscription.RetryPolicy = retryPolicy; } if (!string.IsNullOrEmpty(deadLetterEndpoint)) { eventSubscription.DeadLetterDestination = this.GetStorageBlobDeadLetterDestinationFromEndPoint(deadLetterEndpoint); } return(this.Client.EventSubscriptions.CreateOrUpdate(scope, eventSubscriptionName, eventSubscription)); }