public override IEnumerable <BookmarkResult> GetBookmarks(BookmarkProviderContext context) { var activityType = context.ActivityType; var eventType = (string)activityType.Attributes[NotificationActivityTypeProvider.EventTypeAttribute]; return(new[] { Result(new NotificationBookmark(eventType)) }); }
public override IEnumerable <BookmarkResult> GetBookmarks(BookmarkProviderContext context) { var activityType = context.ActivityType; var eventType = (string)activityType.Attributes[NotificationActivityTypeProvider.EventTypeAttribute]; var correlationId = context.ActivityExecutionContext.WorkflowExecutionContext.CorrelationId; return(new[] { Result(new NotificationBookmark(eventType, correlationId)) }); }
public override ValueTask <IEnumerable <IBookmark> > GetBookmarksAsync(BookmarkProviderContext context, CancellationToken cancellationToken) { var activityType = context.ActivityType; var eventType = (string)activityType.Attributes[NotificationActivityTypeProvider.EventTypeAttribute]; var correlationId = context.ActivityExecutionContext.WorkflowExecutionContext.CorrelationId; var bookmarks = new[] { new NotificationBookmark(eventType, correlationId) }; return(new ValueTask <IEnumerable <IBookmark> >(bookmarks)); }
private async IAsyncEnumerable <BookmarkResult> GetBookmarksInternalAsync(BookmarkProviderContext <SignalReceived> context, [EnumeratorCancellation] CancellationToken cancellationToken) { var signalName = (await context.ReadActivityPropertyAsync(x => x.Signal, cancellationToken)) !.ToLowerInvariant(); yield return(Result(new SignalReceivedBookmark { Signal = signalName })); }
public override async ValueTask <IEnumerable <IBookmark> > GetBookmarksAsync(BookmarkProviderContext <HttpEndpoint> context, CancellationToken cancellationToken) { var path = ToLower(await context.Activity.GetPropertyValueAsync(x => x.Path, cancellationToken)) !; var correlationId = ToLower(context.ActivityExecutionContext.WorkflowExecutionContext.CorrelationId); var methods = (await context.Activity.GetPropertyValueAsync(x => x.Methods, cancellationToken))?.Select(x => x.ToLowerInvariant()) ?? Enumerable.Empty <string>(); HttpEndpointBookmark CreateBookmark(string method) => new(path, method, correlationId); return(methods.Select(CreateBookmark)); }
public override async ValueTask <IEnumerable <IBookmark> > GetBookmarksAsync(BookmarkProviderContext <EntityChanged> context, CancellationToken cancellationToken) => new[] { new EntityChangedBookmark( entityName: await context.Activity.GetPropertyValueAsync(x => x.EntityName, cancellationToken), action: await context.Activity.GetPropertyValueAsync(x => x.Action, cancellationToken), contextId: context.ActivityExecutionContext.WorkflowExecutionContext.WorkflowInstance.ContextId, correlationId: context.ActivityExecutionContext.WorkflowExecutionContext.WorkflowInstance.CorrelationId ) };
public override IEnumerable <BookmarkResult> GetBookmarks(BookmarkProviderContext <RunWorkflow> context) { var childWorkflowInstanceId = context.GetActivity <RunWorkflow>().GetPropertyValue(x => x.ChildWorkflowInstanceId); if (string.IsNullOrWhiteSpace(childWorkflowInstanceId)) { yield break; } yield return(new BookmarkResult(new RunWorkflowBookmark { ChildWorkflowInstanceId = childWorkflowInstanceId ! }));
private async Task <IList <WorkflowTrigger> > GetTriggersForBookmarkProvider( IBookmarkProvider provider, BookmarkProviderContext context, IActivityBlueprint activityBlueprint, IWorkflowBlueprint workflowBlueprint, CancellationToken cancellationToken = default) { var bookmarkResults = (await provider.GetBookmarksAsync(context, cancellationToken)).ToList(); return(bookmarkResults .Select(x => new WorkflowTrigger(workflowBlueprint, activityBlueprint.Id, x.ActivityTypeName ?? activityBlueprint.Type, _bookmarkHasher.Hash(x.Bookmark), x.Bookmark)) .ToList()); }
public override async ValueTask <IEnumerable <IBookmark> > GetBookmarksAsync(BookmarkProviderContext <Cron> context, CancellationToken cancellationToken) { var cronExpression = await context.Activity.GetPropertyValueAsync(x => x.CronExpression, cancellationToken); if (context.Mode == BookmarkIndexingMode.WorkflowInstance) { var executeAt = context.Activity.GetState(x => x.ExecuteAt); if (executeAt == null) { return(Enumerable.Empty <IBookmark>()); } return(new[]
private async IAsyncEnumerable <BookmarkResult> GetBookmarksInternalAsync(BookmarkProviderContext <SignalReceived> context, [EnumeratorCancellation] CancellationToken cancellationToken) { var signalName = (await context.ReadActivityPropertyAsync(x => x.Signal, cancellationToken))?.ToLowerInvariant().Trim(); // Can't do anything with an empty signal name. if (string.IsNullOrEmpty(signalName)) { yield break; } yield return(Result(new SignalReceivedBookmark { Signal = signalName })); }
public override async ValueTask <IEnumerable <IBookmark> > GetBookmarksAsync(BookmarkProviderContext <StartAt> context, CancellationToken cancellationToken) { var executeAt = await GetExecuteAtAsync(context, cancellationToken); if (executeAt != null) { return new[] { new StartAtBookmark { ExecuteAt = executeAt.Value, } } } ; return(Enumerable.Empty <IBookmark>()); }
public override async ValueTask <IEnumerable <IBookmark> > GetBookmarksAsync(BookmarkProviderContext <Timer> context, CancellationToken cancellationToken) { var interval = await context.Activity.GetPropertyValueAsync(x => x.Timeout, cancellationToken); var executeAt = GetExecuteAt(context, interval); if (executeAt != null) { return new[] { new TimerBookmark { ExecuteAt = executeAt.Value, Interval = interval } } } ; return(Enumerable.Empty <IBookmark>()); }
private async IAsyncEnumerable <IBookmark> GetBookmarksInternalAsync(BookmarkProviderContext <SignalReceived> context, [EnumeratorCancellation] CancellationToken cancellationToken) { var signalName = (await context.Activity.GetPropertyValueAsync(x => x.Signal, cancellationToken)) !; var signalScope = (await context.Activity.GetPropertyValueAsync(x => x.Scope, cancellationToken)) !; if (context.Mode == BookmarkIndexingMode.WorkflowBlueprint || signalScope == SignalScope.Global) { yield return(new SignalReceivedBookmark { Signal = signalName }); yield break; } if (signalScope == SignalScope.Instance) { yield return(new SignalReceivedBookmark { Signal = signalName, WorkflowInstanceId = context.ActivityExecutionContext.WorkflowInstance.Id }); } }
public override bool SupportsActivity(BookmarkProviderContext context) { var activityType = context.ActivityType; return(activityType.Attributes.ContainsKey(NotificationActivityTypeProvider.NotificationAttribute)); }
public override async ValueTask <IEnumerable <BookmarkResult> > GetBookmarksAsync(BookmarkProviderContext context, CancellationToken cancellationToken) { var activityType = context.ActivityExecutionContext.ActivityBlueprint.Type; var queueOrTopic = activityType == nameof(AzureServiceBusQueueMessageReceived) ? await context.ReadActivityPropertyAsync <AzureServiceBusQueueMessageReceived, string>(x => x.QueueName, cancellationToken) : await context.ReadActivityPropertyAsync <AzureServiceBusTopicMessageReceived, string>(x => x.TopicName, cancellationToken); var subscription = activityType == nameof(AzureServiceBusTopicMessageReceived) ? await context.ReadActivityPropertyAsync <AzureServiceBusTopicMessageReceived, string>(x => x.SubscriptionName, cancellationToken) : default; return(new[] { Result(new MessageReceivedBookmark(queueOrTopic !, subscription)) });
public override async ValueTask <IEnumerable <BookmarkResult> > GetBookmarksAsync(BookmarkProviderContext context, CancellationToken cancellationToken) { var path = ToLower((string)context.ActivityType.Attributes["Path"]) !; var methods = (await context.ReadActivityPropertyAsync <HttpEndpoint, HashSet <string> >(x => x.Methods, cancellationToken))?.Select(ToLower) ?? Enumerable.Empty <string>(); BookmarkResult CreateBookmark(string method) => Result(new(path, method), nameof(HttpEndpoint)); return(methods.Select(CreateBookmark)); }
public override bool SupportsActivity(BookmarkProviderContext context) { var activityType = context.ActivityType; return(activityType.Attributes.ContainsKey(WebhookActivityTypeProvider.WebhookMarkerAttribute)); }
public override async ValueTask <IEnumerable <IBookmark> > GetBookmarksAsync(BookmarkProviderContext <SignalReceived> context, CancellationToken cancellationToken) =>
public override bool SupportsActivity(BookmarkProviderContext context) { var activityType = context.ActivityExecutionContext.ActivityBlueprint.Type; return(activityType is nameof(AzureServiceBusQueueMessageReceived) or nameof(AzureServiceBusTopicMessageReceived)); }
public override async ValueTask <IEnumerable <IBookmark> > GetBookmarksAsync(BookmarkProviderContext <SignalReceived> context, CancellationToken cancellationToken) { var workflowInstanceId = context.Mode == BookmarkIndexingMode.WorkflowBlueprint ? default : context.ActivityExecutionContext.WorkflowInstance.Id; return(new[]
public override async ValueTask <IEnumerable <BookmarkResult> > GetBookmarksAsync(BookmarkProviderContext <WatchDirectory> context, CancellationToken cancellationToken) { var changeTypes = await context.ReadActivityPropertyAsync(a => a.ChangeTypes, cancellationToken); var notifyFilters = await context.ReadActivityPropertyAsync(a => a.NotifyFilters, cancellationToken); var path = await context.ReadActivityPropertyAsync(a => a.Path, cancellationToken); var pattern = NormalizeWildcard(await context.ReadActivityPropertyAsync(a => a.Pattern, cancellationToken)); var result = Result(new FileSystemEventBookmark(path, pattern, changeTypes, notifyFilters)); return(new[] { result }); }
public override async ValueTask <IEnumerable <BookmarkResult> > GetBookmarksAsync(BookmarkProviderContext <RebusMessageReceived> context, CancellationToken cancellationToken) { var messageType = await context.ReadActivityPropertyAsync(x => x.MessageType, cancellationToken); if (messageType == null) { return(Enumerable.Empty <BookmarkResult>()); } return(new[] { Result(new MessageReceivedBookmark { MessageType = messageType.Name }) }); }
public override async ValueTask <IEnumerable <BookmarkResult> > GetBookmarksAsync(BookmarkProviderContext <ReceiveMassTransitMessage> context, CancellationToken cancellationToken) =>
public override async ValueTask <IEnumerable <BookmarkResult> > GetBookmarksAsync(BookmarkProviderContext <HttpEndpoint> context, CancellationToken cancellationToken) { var path = ToLower((await context.ReadActivityPropertyAsync(x => x.Path, cancellationToken)) !); var methods = (await context.ReadActivityPropertyAsync(x => x.Methods, cancellationToken))?.Select(ToLower) ?? Enumerable.Empty <string>(); BookmarkResult CreateBookmark(string method) => Result(new(path, method)); return(methods.Select(CreateBookmark)); }
public override async ValueTask <IEnumerable <BookmarkResult> > GetBookmarksAsync(BookmarkProviderContext <AzureServiceBusQueueMessageReceived> context, CancellationToken cancellationToken) =>
public virtual ValueTask <bool> SupportsActivityAsync(BookmarkProviderContext <TActivity> context, CancellationToken cancellationToken = default) => new(SupportsActivity(context));
public override async ValueTask <IEnumerable <BookmarkResult> > GetBookmarksAsync(BookmarkProviderContext <SignalReceived> context, CancellationToken cancellationToken) => await GetBookmarksInternalAsync(context, cancellationToken).ToListAsync(cancellationToken);
public override async ValueTask <IEnumerable <BookmarkResult> > GetBookmarksAsync(BookmarkProviderContext <UserTask> context, CancellationToken cancellationToken) { var actions = (await context.ReadActivityPropertyAsync(x => x.Actions, cancellationToken)) !; return(actions.Select(x => Result(new UserTaskBookmark(x))).ToList()); }
private static async Task <Instant?> GetExecuteAtAsync(BookmarkProviderContext <StartAt> context, CancellationToken cancellationToken) => context.Mode == BookmarkIndexingMode.WorkflowInstance ? context.Activity.GetPropertyValue(x => x.ExecuteAt) : await context.ReadActivityPropertyAsync(x => x.Instant, cancellationToken);
private Instant?GetExecuteAt(BookmarkProviderContext <Timer> context, Duration interval) => context.Mode == BookmarkIndexingMode.WorkflowInstance ? context.Activity.GetPropertyValue(x => x.ExecuteAt) : _clock.GetCurrentInstant().Plus(interval);