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 PSEventSubscription(EventSubscription eventSubscription) { this.Id = eventSubscription.Id; this.EventSubscriptionName = eventSubscription.Name; this.Type = eventSubscription.Type; this.ProvisioningState = eventSubscription.ProvisioningState; this.Destination = eventSubscription.Destination; this.Filter = eventSubscription.Filter; this.Labels = eventSubscription.Labels; this.Topic = eventSubscription.Topic; this.EventTtl = eventSubscription.RetryPolicy?.EventTimeToLiveInMinutes; this.MaxDeliveryAttempt = eventSubscription.RetryPolicy?.MaxDeliveryAttempts; this.deadletterDestination = eventSubscription.DeadLetterDestination; }