public SomethingHappened DoSomething(Guid token)
 {
     var domainEventAfterSwap = new SomethingHappened(Guid.NewGuid());
     var somethingToCauseManipulation = new SomethingHappened(token);
     Interlocked.Exchange(ref domainEventAfterSwap, somethingToCauseManipulation);
     Source.Event.Of(domainEventAfterSwap);
     return somethingToCauseManipulation;
 }
 public void OnSomethingHappened()
 {
     Console.WriteLine("SOS!");
     SomethingHappened?.Invoke();
     SendMessage?.Invoke(this.GetType(), new MessageArgs()
     {
         ShipName = "Titanic", Message = "SOS"
     });
 }
        private void timer1_Tick(object sender, EventArgs e)
        {
            TimeSpan ts = qurrentQuiz.End.Subtract(DateTime.Now);

            TimeLeft = ts.ToString("s''");
            SomethingHappened?.Invoke(this, EventArgs.Empty);
            if (TimeLeft.Equals("0"))
            {
                getResult();
            }
        }
        public void CanApplyHandledChangeToAggregate()
        {
            // arrange
            var aggregate = new ChangeableAggregate();
            var @event = new SomethingHappened();

            // act
            aggregate.ApplyEvent(@event);

            // assert
            aggregate.Change.Should().Be(@event);
        }
Exemple #5
0
        public EventsMulticast()
        {
            SomethingHappened += Method1;
            SomethingHappened += Method2;
            SomethingHappened += Method3;
            SomethingHappened += Method4;
            SomethingHappened += Method5;

            SomethingHappened.Invoke(new object(), null);

            //On encounter of exception at Method3, Method4 and Method5 are not called
        }
        public void CanApplyHandledChangeToAggregate()
        {
            // arrange
            var aggregate = new ChangeableAggregate();
            var @event    = new SomethingHappened();

            // act
            aggregate.ApplyEvent(@event);

            // assert
            aggregate.Change.Should().Be(@event);
        }
Exemple #7
0
 public override void Pay()
 {
     if (Money >= trip.Price)
     {
         Money             -= trip.Price;
         SomethingHappened += Client_SomethingHappened;
         SomethingHappened?.Invoke();
     }
     else
     {
         Console.ForegroundColor = ConsoleColor.Red;
         Console.WriteLine($"{Name},you dont't have enough money");
         Console.ResetColor();
     }
 }
Exemple #8
0
 public override void Pay()
 {
     if (Account >= ride.Price)
     {
         Account           -= ride.Price;
         SomethingHappened += AccountState;
         SomethingHappened?.Invoke();
     }
     else
     {
         Console.ForegroundColor = ConsoleColor.Red;
         Console.WriteLine($"{Name},sorry, but you dont't have enough money");
         Console.ResetColor();
     }
 }
Exemple #9
0
    static async Task Main()
    {
        Console.Title = "Publisher";

        #region publisher-config

        var endpointConfiguration = new EndpointConfiguration("Samples.ManualUnsubscribe.Publisher");
        endpointConfiguration.UseTransport <MsmqTransport>();

        var persistence = endpointConfiguration.UsePersistence <MsmqPersistence, StorageType.Subscriptions>();
        persistence.SubscriptionQueue("Samples.ManualUnsubscribe.Publisher.Subscriptions");

        endpointConfiguration.DisableFeature <TimeoutManager>();

        endpointConfiguration.SendFailedMessagesTo("error");
        endpointConfiguration.AuditProcessedMessagesTo("audit");

        endpointConfiguration.EnableInstallers();

        #endregion

        var endpointInstance = await Endpoint.Start(endpointConfiguration)
                               .ConfigureAwait(false);

        Console.WriteLine("Press 'enter' to publish the SomethingHappened event");
        Console.WriteLine("Press any other key to exit");

        while (true)
        {
            var key = Console.ReadKey();
            Console.WriteLine();
            if (key.Key == ConsoleKey.Enter)
            {
                var somethingHappened = new SomethingHappened();
                await endpointInstance.Publish(somethingHappened)
                .ConfigureAwait(false);

                Console.WriteLine("Published SomethingHappened Event.");
            }
            else
            {
                break;
            }
        }

        await endpointInstance.Stop()
        .ConfigureAwait(false);
    }
Exemple #10
0
        public void ImmediateDispatcher_1000xMiscMessagesSent_DispatchBenchmark()
        {
            // Arrange
            var errorOccured      = new ErrorOccured();
            var somethingHappened = new SomethingHappened();

            // Act
            for (var i = 0; i < 1000; i++)
            {
                dispatcher.Dispatch(errorOccured);
                dispatcher.Dispatch(somethingHappened);
                dispatcher.Dispatch(somethingHappened);
            }

            // Assert
            Assert.IsTrue(true);
        }
Exemple #11
0
        public void Demo(Person person)
        {
            // Simplest use.
            string name = person?.Name;

            // Can be chained. The first null will break the chain.
            string zipCode = person?.Address.ZipCode ?? "";

            // Works nicely with the null-coalescing operator.
            string zipCode2 = person?.Address?.ZipCode ?? "00000";

            // An example with a nullable type. Person.Age is an int.
            int?age1 = person?.Age;
            int age2 = (person?.Age).GetValueOrDefault();

            // Works with invoking methods. Here Level is an enum.
            Level level = (person?.GetLevel()).GetValueOrDefault(Level.Unknown);

            // Great to guard when an event has no subscribers.
            SomethingHappened?.Invoke(this, new SomethingHappenedEventArg());
        }
        public void MissingEventRouteThrowsException()
        {
            // Setup the event router.
            var builder = new ApplyEventRouterBuilder <MyAggregateRoot, IEvent>();

            builder.Add <SomethingHappened>((agg, e) => agg.ApplyEvent(e));
            var router = builder.Build();

            // Set up the initial state.
            var initialState = new MyAggregateRoot();

            // Create some events to apply to the aggregate.
            var event1 = new SomethingHappened("Foo");
            var event2 = new SomethingElseHappened("Bar");

            // Route the events.
            var          exception       = Assert.Throws <InvalidOperationException>(() => router.Route(initialState, event1, event2));
            const string expectedMessage = "No route or default route found when attempting to apply " +
                                           "SomethingElseHappened to MyAggregateRoot";

            Assert.That(exception.Message, Is.EqualTo(expectedMessage));
        }
        public void EventIsRoutedAndApplied()
        {
            // Setup the event router.
            var builder = new ApplyEventRouterBuilder <MyAggregateRoot, IEvent>();

            builder.Add <SomethingHappened>((agg, e) => agg.ApplyEvent(e));
            builder.Add <SomethingElseHappened>((agg, e) => agg.ApplyEvent(e));
            var router = builder.Build();

            // Set up the initial state.
            var initialState = new MyAggregateRoot();

            // Create some events to apply to the aggregate.
            var event1 = new SomethingHappened("Foo");
            var event2 = new SomethingElseHappened("Bar");

            // Route the events.
            var newState = router.Route(initialState, event1, event2);

            Assert.That(newState.State, Is.EqualTo("Foo"));
            Assert.That(newState.OtherState, Is.EqualTo("Bar"));
        }
        public void DefaultEventRouteIsInvokedWhenSpecified()
        {
            // Setup the event router.
            var builder = new ApplyEventRouterBuilder <MyAggregateRoot, IEvent>();

            builder.Add <SomethingHappened>((agg, e) => agg.ApplyEvent(e));
            builder.Add <IEvent>((agg, e) => agg.DefaultApplyEvent(e)); // Default route
            var router = builder.Build();

            // Set up the initial state.
            var initialState = new MyAggregateRoot();

            // Create some events to apply to the aggregate.
            var event1 = new SomethingHappened("Foo");
            var event2 = new SomethingElseHappened("Bar");

            // Route the events.
            var newState = router.Route(initialState, event1, event2);

            Assert.That(newState.State, Is.EqualTo("Foo"));

            // We expect SomethingElseHappened to do nothing, since the default route just returns "this".
            Assert.That(newState.OtherState, Is.Null);
        }
Exemple #15
0
 public void Trigger(string something)
 {
     SomethingHappened?.Invoke(this, new SomethingHappenedEventArgs(something));
 }
 public Task OnSomethingHappening(int value) =>
 SomethingHappened.InvokeAsync(this, new ExampleEventArgs {
     Value = value
 });
 public Task OnSomethingHappening() => SomethingHappened.InvokeAsync(this, EventArgs.Empty);
 public void DoSomething(Guid token)
 {
     StaticProperty = new SomethingHappened(token);
     Source.Event.Of(StaticProperty);
 }
 public SomethingHappened DoSomething(Guid token)
 {
     var domainEvent = new SomethingHappened(token);
     Source.Event.Of(domainEvent);
     return domainEvent;
 }
 private void Handle(SomethingHappened @event)
 {
     this.OtherChange = @event;
 }
 private void SimulateSomethingHappened()
 {
     SomethingHappened?.Invoke(this, new EventArgs());
 }
Exemple #22
0
 public void Apply(SomethingHappened e)
 {
     alreadyHappened = true;
 }
Exemple #23
0
 public void OnSomethingHappened()
 {
     SomethingHappened?.Invoke(this, EventArgs.Empty);
 }
 void Apply(SomethingHappened e)
 {
 }
 void Apply(SomethingHappened e)
 {
     _something++;
 }
 public void DoSomething(Guid token)
 {
     this.InstanceProperty = new SomethingHappened(token);
     Source.Event.Of(this.InstanceProperty);
 }
 void Apply(SomethingHappened e)
 {
     _something++;
 }
 public void DoSomething(Guid token)
 {
     staticField = new SomethingHappened(token);
     Source.Event.Of(staticField);
 }
 private void Handle(SomethingHappened @event)
 {
     this.thingsThatHappened.Add(@event);
 }
Exemple #30
0
 public void Handle(IViewContext context, SomethingHappened domainEvent)
 {
     ThisManyThingsHappened++;
 }
 void Apply(SomethingHappened e) { }
 private void InvokeSomethingHappened()
 {
     SomethingHappened?.Invoke();
 }
 public MyAggregateRoot ApplyEvent(SomethingHappened @event)
 {
     return(new MyAggregateRoot(@event.State, OtherState));
 }
 /// <summary>
 /// Raise event.
 /// </summary>
 internal void FireEvent()
 {
     Console.WriteLine("Fire SomethingHappened!!!");
     SomethingHappened?.Invoke();
 }
 public void DoSomething(Guid token)
 {
     this.instanceField = new SomethingHappened(token);
     Source.Event.Of(this.instanceField);
 }
 private void Handle(SomethingHappened @event)
 {
     this.OtherChange = @event;
 }
Exemple #37
0
 public void DoSomething()
 => SomethingHappened?.Invoke(this, EventArgs.Empty);
 private void Handle(SomethingHappened @event)
 {
     this.thingsThatHappened.Add(@event);
 }