public async Task Handle(T @event) { using (var scope = AdministrationCompositionRoot.BeginLifetimeScope()) { using (var connection = scope.Resolve <ISqlConnectionFactory>().GetOpenConnection()) { string type = @event.GetType().FullName; var data = JsonConvert.SerializeObject(@event, new JsonSerializerSettings { ContractResolver = new AllPropertiesContractResolver() }); var sql = "INSERT INTO [administration].[InboxMessages] (Id, OccurredOn, Type, Data) " + "VALUES (@Id, @OccurredOn, @Type, @Data)"; await connection.ExecuteScalarAsync(sql, new { @event.Id, @event.OccurredOn, type, data }); } } }
private static void SubscribeToIntegrationEvents(ILogger logger) { var eventBus = AdministrationCompositionRoot.BeginLifetimeScope().Resolve <IEventsBus>(); SubscribeToIntegrationEvent <MeetingGroupProposedIntegrationEvent>(eventBus, logger); SubscribeToIntegrationEvent <NewUserRegisteredIntegrationEvent>(eventBus, logger); }
internal static async Task Execute(ICommand command) { using (var scope = AdministrationCompositionRoot.BeginLifetimeScope()) { var mediator = scope.Resolve <IMediator>(); await mediator.Send(command); } }
internal static async Task <TResult> Execute <TResult>(ICommand <TResult> command) { using (var scope = AdministrationCompositionRoot.BeginLifetimeScope()) { var mediator = scope.Resolve <IMediator>(); return(await mediator.Send(command)); } }
public async Task <TResult> ExecuteQueryAsync <TResult>(IQuery <TResult> query) { using (var scope = AdministrationCompositionRoot.BeginLifetimeScope()) { var mediator = scope.Resolve <IMediator>(); return(await mediator.Send(query)); } }