public async Task <bool> Handle(T @event) { try { using (var scope = MatchesCompositionRoot.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 [Match].[InboxMessages] (Id, OccurredOn, Type, Data) " + "VALUES (@Id, @OccurredOn, @Type, @Data)"; await connection.ExecuteScalarAsync(sql, new { @event.Id, @event.OccurredOn, type, data }); return(true); } } } catch (Exception e) { throw new ApplicationException($"Unable to process message {@event}. Exception : {e.Message}"); } }
internal static async Task Execute(ICommand command) { using (var scope = MatchesCompositionRoot.BeginLifetimeScope()) { var mediator = scope.Resolve <IMediator>(); await mediator.Send(command); } }
internal static async Task <TResult> Execute <TResult>(ICommand <TResult> command) { using (var scope = MatchesCompositionRoot.BeginLifetimeScope()) { var mediator = scope.Resolve <IMediator>(); return(await mediator.Send(command)); } }
private void InitializeDbContext() { var context = MatchesCompositionRoot.BeginLifetimeScope().Resolve <MatchContext>(); var teamRepository = MatchesCompositionRoot.BeginLifetimeScope().Resolve <ITeamRepository>(); context.Database.Migrate(); MatchContextInitializer.Initialize(context, teamRepository); }
public static async Task <TResult> Execute <TResult>(IQuery <TResult> query) { using (var scope = MatchesCompositionRoot.BeginLifetimeScope()) { var mediator = scope.Resolve <IMediator>(); return(await mediator.Send(query)); } }
private static void SubscribeToIntegrationEvents(ILogger logger) { var eventBus = MatchesCompositionRoot.BeginLifetimeScope().Resolve <IEventsBus>(); SubscribeToIntegrationEvent <NewUserRegisteredIntegrationEvent>(eventBus, logger); }