コード例 #1
0
 public CqrsMessagingHandler(IResultPublisher resultPublisher, IEnumerable <IHandleCommand> commandHandlers,
                             IEnumerable <IHandleEvent> eventHandlers)
 {
     _resultPublisher = resultPublisher;
     _commandHandlers = commandHandlers;
     _eventHandlers   = eventHandlers;
 }
コード例 #2
0
 /// <summary>
 /// Attach an IResultPublisher to process results of experiments to an output destination. Extend IResultPublisher to define custom output destinations.
 /// </summary>
 /// <param name="resultPublisher"></param>
 public static void AttachPublisher(IResultPublisher resultPublisher)
 {
     if (resultPublisher != null)
     {
         ResultPublishers.Add(resultPublisher);
     }
 }
コード例 #3
0
 public RoomApiController(
     ILogger <RoomController> logger,
     IRoomRepository roomRepository,
     IHubContext <RoomHub> roomHub,
     ISessionManager sessionManager,
     IResultPublisher resultPublisher)
 {
     Logger          = logger;
     RoomRepository  = roomRepository;
     RoomHub         = roomHub;
     SessionManager  = sessionManager;
     ResultPublisher = resultPublisher;
 }
コード例 #4
0
        public Experiment(string name, Func <Task <bool> > enabled, int concurrentTasks, IResultPublisher resultPublisher)
        {
            if (concurrentTasks <= 0)
            {
                throw new ArgumentException("Argument must be greater than 0", nameof(concurrentTasks));
            }

            if (resultPublisher == null)
            {
                throw new ArgumentNullException("A result publisher must be specified", nameof(resultPublisher));
            }

            _name            = name;
            _candidates      = new Dictionary <string, Func <Task <T> > >();
            _enabled         = enabled;
            _concurrentTasks = concurrentTasks;
            _resultPublisher = resultPublisher;
        }
コード例 #5
0
        public ExperimentInstance(ExperimentSettings <T, TClean> settings)
        {
            Name = settings.Name;

            Behaviors = new List <NamedBehavior>
            {
                new NamedBehavior(ControlExperimentName, settings.Control),
            };
            Behaviors.AddRange(
                settings.Candidates.Select(c => new NamedBehavior(c.Key, c.Value)));

            BeforeRun         = settings.BeforeRun;
            Cleaner           = settings.Cleaner;
            Comparator        = settings.Comparator;
            ConcurrentTasks   = settings.ConcurrentTasks;
            Contexts          = settings.Contexts;
            Enabled           = settings.Enabled;
            RunIf             = settings.RunIf;
            Ignores           = settings.Ignores;
            Thrown            = settings.Thrown;
            ThrowOnMismatches = settings.ThrowOnMismatches;
            ResultPublisher   = settings.ResultPublisher;
        }
コード例 #6
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Scientist"/> class
 /// using the specified <see cref="IResultPublisher"/>.
 /// </summary>
 public Scientist(IResultPublisher resultPublisher)
 {
     _resultPublisher = resultPublisher
                        ?? throw new ArgumentNullException(nameof(resultPublisher), "A result publisher must be specified");
 }
コード例 #7
0
 public VatController(IVatService vatService, IResultPublisher resultPublisher)
 {
     _vatService      = vatService;
     _resultPublisher = resultPublisher;
 }
コード例 #8
0
 public FireAndForgetResultPublisher(IResultPublisher publisher, Action <Exception> onPublisherException)
 {
     _publisher            = publisher;
     _onPublisherException = onPublisherException;
 }
コード例 #9
0
 public FireAndForgetResultPublisher(IResultPublisher publisher) : this(publisher, e => { })
 {
 }
コード例 #10
0
 internal MyScientist(IResultPublisher resultPublisher)
     : base(resultPublisher)
 {
 }
コード例 #11
0
        public void ConstructorThrowsIfResultPublisherIsNull()
        {
            IResultPublisher resultPublisher = null;

            Assert.Throws <ArgumentNullException>("resultPublisher", () => new Scientist(resultPublisher));
        }
コード例 #12
0
 internal SharedScientist(IResultPublisher resultPublisher)
     : base(resultPublisher)
 {
 }
コード例 #13
0
 public static IEnumerable <Result <T, TClean> > Results <T, TClean>(this IResultPublisher publisher, string experimentName) => ((InMemoryResultPublisher)publisher).Results <T, TClean>().Where(x => x.ExperimentName == experimentName);
コード例 #14
0
 public static IEnumerable <Result <T, T> > Results <T>(this IResultPublisher publisher, string experimentName) => publisher.Results <T, T>(experimentName);
コード例 #15
0
ファイル: MessagingBus.cs プロジェクト: decarufe/CqrsDemo
 public MessagingBus(ICommandQueue commandQueue, IResultPublisher resultPublisher, IResultAwaiter resultAwaiter)
 {
     _commandQueue    = commandQueue;
     _resultAwaiter   = resultAwaiter;
     _resultPublisher = resultPublisher;
 }
コード例 #16
0
 public SwapPublisher(IResultPublisher publisher)
 {
     _original = Scientist.ResultPublisher;
     Scientist.ResultPublisher = publisher;
 }