Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        /// <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());
        }
Exemplo n.º 5
0
        /// <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);
        }
Exemplo n.º 6
0
        /// <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());
        }