protected override void ActorConstruct(IObservableActor actor) { Actor = actor; actor.RespondOnEventSource(Workspace.Source.ProjectReset, rest => SendIssues(ValidateAll(rest, ObservableActor.ExposedContext), ObservableActor.ExposedContext)); RegisterRespond(actor); }
public static void RespondOnEventSource <TData>(this IObservableActor actor, IEventSource <TData> eventSource, Action <TData> action) { eventSource.RespondOn(ObservableActor.ExposedContext.Self); actor.Receive <TData>(obs => obs.SubscribeWithStatus(action)); }
protected abstract void RegisterRespond(IObservableActor actor);
protected override void RegisterRespond(IObservableActor actor) { RegisterRespond(Workspace.Source.SourceUpdate, ValidateSource); }
protected abstract void ActorConstruct(IObservableActor actor);
public EventHolder(IObservableActor actor, Func <IObservable <TEvent>, IDisposable> handler) { _handler = handler; _actor = actor; }
public static void SendEvent <TType>(this IObservableActor actor, TType evt) => ObservableActor.ExposedContext.System.EventStream.Publish(evt);
public static void SubscribeToEvent <TEvent>(this IObservableActor actor, Func <IObservable <TEvent>, IDisposable> handler) => new EventHolder <TEvent>(actor, handler).Register();
public static void Receive <TEvent>(this IObservableActor actor, Action <TEvent> handler) => actor.Receive <TEvent>(obs => obs.SubscribeWithStatus(handler));