public void returns_expected_message_format()
        {
            var e = new DomainEventEnvelope
            {
                AggregateId   = "A1",
                EventId       = Guid.Empty,
                CorrelationId = "987F693E-EF45-4518-8AFB-105B209887B1",
                Type          = "foo-type",
                Data          = "{\"Foo\":\"bar\"}"
            };

            var result = MessagingHelper.CreateMessageFrom(e);

            var expected = @"
{
    ""version"": ""1"",
    ""eventName"": ""foo-type"",
    ""x-correlationId"": ""987F693E-EF45-4518-8AFB-105B209887B1"",
    ""x-sender"": ""CapabilityService.WebApi, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"",
    ""payload"": {""foo"":""bar""}
}";

            Assert.Equal(
                expected: expected.Replace(" ", "").Replace("\n", "").Replace("\r", ""),
                actual: result.Replace(" ", "").Replace("\n", "").Replace("\r", "")
                );
        }
Example #2
0
        public async Task FireEventK8sNamespaceCreatedAndAwsArnConnected(string namespaceName, Guid contextId, Guid capabilityId)
        {
            try
            {
                var evtPre = new K8sNamespaceCreatedAndAwsArnConnectedEvent(namespaceName, contextId, capabilityId);

                var evt = new DomainEventEnvelope
                {
                    EventId = Guid.NewGuid(),
                    Created = DateTime.UtcNow,
                    Type    = _domainEventRegistry.GetTypeNameFor(evtPre),
                    Format  = "application/json",
                    Data    = JsonConvert.SerializeObject(evtPre, new JsonSerializerSettings
                    {
                        ContractResolver = new CamelCasePropertyNamesContractResolver()
                    })
                };

                // TODO JFHEI : Need to make this async
                _publishingEventsQueue.AddEventToQueue(evt);
            }
            catch (Exception ex)
            {
                Log.Error($"An error occured trying to emit an event from K8sApplicationService: {ex.Message}");
            }
        }
        /// <summary>
        ///     Initializes a new instance of the <see cref="EfDomainEvent" /> class.
        /// </summary>
        /// <param name="eventWrapper">The domain eventWrapper.</param>
        protected EfDomainEvent(DomainEventEnvelope eventWrapper)
        {
            Check.NotNull(eventWrapper, nameof(eventWrapper));

            var jsonObjectSerializer = new JsonObjectSerializer();

            EventId          = eventWrapper.EventId;
            Name             = eventWrapper.EventName;
            AggregateId      = eventWrapper.AggregateId;
            Sequence         = eventWrapper.Sequence;
            CreatedOnUtc     = eventWrapper.CreatedOnUtc;
            Payload          = jsonObjectSerializer.Serialize(eventWrapper.Event);
            AggregateVersion = eventWrapper.AggregateVersion;
        }
        public void returns_expected_message_format()
        {
            var e = new DomainEventEnvelope
            {
                AggregateId = "A1",
                EventId     = Guid.Empty,
                Type        = "foo-type",
                Data        = "{\"Foo\":\"bar\"}"
            };

            var result = MessagingHelper.CreateMessageFrom(e);

            var expected = @"
{
    ""messageId"": ""00000000-0000-0000-0000-000000000000"",
    ""type"": ""foo-type"",
    ""data"": {""foo"":""bar""}
}";

            Assert.Equal(
                expected: expected.Replace(" ", "").Replace("\n", "").Replace("\r", ""),
                actual: result.Replace(" ", "").Replace("\n", "").Replace("\r", "")
                );
        }
Example #5
0
 public AccountEvent(DomainEventEnvelope eventWrapper) : base(eventWrapper)
 {
 }
 protected virtual TEventSet CreateDomainEventRecord(DomainEventEnvelope uncommittedEvent)
 {
     return((TEventSet)Activator.CreateInstance(typeof(TEventSet), uncommittedEvent));
 }
Example #7
0
 public void AddEventToQueue(DomainEventEnvelope iEvent)
 {
     Queue.Enqueue(iEvent);
 }