public StoredEvent Append(IDomainEvent domainEvent) { var storedEvent = new StoredEvent( domainEvent.GetType().FullName + ", " + domainEvent.GetType().Assembly.GetName().Name, domainEvent.OccurredOn, domainEvent.ToString(), domainEvent.EventId, StoredEvent.ToStorePayload(domainEvent), domainEvent.UserId, domainEvent.ProcessId, domainEvent.UserId); try { _appendOnlyStore.Append(storedEvent); return(storedEvent); } catch (Exception e) { CustomErrorSignal.Handle(e); } return(null); }
/// <summary> /// Compiles the domain event properties onto a dictionary /// </summary> /// <param name="event">The domain event</param> /// <returns>The event details as a dictionary</returns> private Dictionary <string, string> CompileEventProperties ( IDomainEvent @event ) { Validate.IsNotNull(@event); var properties = new Dictionary <string, string>() { { "EventTypeName", @event.GetType().Name }, { "EventDescription", @event.ToString() } }; var eventLog = DomainEventLog.CreateLog ( @event ); foreach (var detail in eventLog.Details) { AppendDetail ( ref properties, detail ); } return(properties); }
public Task HandleAsync(IDomainEvent <ExampleAggregate, ExampleId, ExampleEvent> domainEvent, CancellationToken cancellationToken) { return(Task.Run(() => { Console.WriteLine("++++++++" + domainEvent.ToString()); })); }
public Result LogEvent(IDomainEvent @event) { var properties = CompileEventProperties(@event); _telemetry.TrackEvent(@event.ToString(), properties); return(Result.Success()); }
/// <summary> /// Populates the domain event log /// </summary> /// <param name="event">The domain event</param> protected void PopulateLog(IDomainEvent @event) { Validate.IsNotNull(@event); this.EventTypeName = @event.GetType().Name; this.EventDescription = @event.ToString(); PopulateDetails(@event); }
/// <summary> /// Logs the domain event specified /// </summary> /// <param name="event">The domain event</param> public void LogEvent ( IDomainEvent @event ) { var properties = CompileEventProperties(@event); _telemetry.TrackEvent ( @event.ToString(), properties ); }
public Result LogEvent(string aggregateKey, Type aggregateType, IDomainEvent @event) { Validate.IsNotEmpty(aggregateKey); Validate.IsNotNull(aggregateType); var properties = CompileEventProperties(@event); properties.Add("AggregateKey", aggregateKey); properties.Add("AggregateType", aggregateType.Name); _telemetry.TrackEvent(@event.ToString(), properties); return(Result.Success()); }