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); }
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 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(); } }
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(); } }
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); }
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); }
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); }
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()); }
public void Apply(SomethingHappened e) { alreadyHappened = true; }
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); }
public void DoSomething(Guid token) { staticField = new SomethingHappened(token); Source.Event.Of(staticField); }
private void Handle(SomethingHappened @event) { this.thingsThatHappened.Add(@event); }
public void Handle(IViewContext context, SomethingHappened domainEvent) { ThisManyThingsHappened++; }
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); }
public void DoSomething() => SomethingHappened?.Invoke(this, EventArgs.Empty);