public Task TrackAsync(IEventTrackExtension eventTrackExtension, SmallTalks.Core.Models.Analysis analysis, Func <string, EventTrack> eventTrackFactory, bool fireAndForget = default, CancellationToken cancellationToken = default) { var trackings = analysis.Matches.Select(m => eventTrackFactory.Invoke(m.SmallTalk)); var trackingTasks = trackings.Select(t => eventTrackExtension.AddAsync(t.Category.Trim(), t.Action, extras: t.Extras, contactIdentity: t.Contact?.Identity, fireAndForget: fireAndForget, cancellationToken: cancellationToken)); return(Task.WhenAll(trackingTasks)); }
public Task TrackAsync(ISender sender, SmallTalks.Core.Models.Analysis analysis, Func <string, EventTrack> eventTrackFactory, bool fireAndForget = default, CancellationToken cancellationToken = default) { return(TrackAsync(new EventTrackExtension(sender), analysis, eventTrackFactory, fireAndForget, cancellationToken)); }