Exemplo n.º 1
0
        public CommandQuery ShouldCompledClear(CommandQueryBuilder builder, Action <IDisposable> subscription)
        {
            var query = builder.FromTrigger(ShouldCompledClear, out var trigger);

            subscription(new ObservableSubscription(trigger, _operations));
            return(query);
        }
Exemplo n.º 2
0
        public static CommandQuery FromEvent <TEvent>(this CommandQueryBuilder builder, Task <TEvent> currentValue, Func <TEvent?, bool> check)
            where TEvent : class
        {
            var context = ExposedReceiveActor.ExposedContext;

            return(builder.FromExternal(check, action =>
            {
                currentValue.ContinueWith(t =>
                {
                    if (t.IsCompleted)
                    {
                        action(t.Result);
                    }
                });

                context.ActorOf(dsl =>
                {
                    dsl.OnPreStart += actorContext => actorContext.System.EventStream.Subscribe <TEvent>(actorContext.Self);
                    dsl.OnPostStop += actorContext => actorContext.System.EventStream.Unsubscribe(actorContext.Self);
                    dsl.Receive <TEvent>((e, c) => action(e));
                });
            }));
        }
Exemplo n.º 3
0
 public static CommandQuery NoEmptyProjectFile(this CommandQueryBuilder builder, ProjectFileWorkspace workspace)
 => builder.FromEventSource(workspace.Source.ProjectReset, rest => !rest.ProjectFile.IsEmpty, new ProjectRest(workspace.ProjectFile));
Exemplo n.º 4
0
 public static CommandQuery FromEventSource <TData>(this CommandQueryBuilder builder, IEventSource <TData> source, Func <TData, bool> check)
     where TData : class
 => builder.FromExternal <TData>(d => d != null && check(d), action => source.RespondOn(ActorCell.GetCurrentSelfOrNoSender() ?? ActorRefs.Nobody, action));
Exemplo n.º 5
0
 public static CommandQuery FromEventSource <TData>(this CommandQueryBuilder builder, IEventSource <TData> source, Func <TData, bool> check, TData defaultValue)
 => builder.FromExternal(check, action => source.RespondOn(ActorCell.GetCurrentSelfOrNoSender() ?? ActorRefs.Nobody, action), defaultValue);