public void Run() { var builder = Wireup.UseInternalContainer() .UseSqlServer() .WithConnectionStringName("NSagaDatabase") .UseMessageSerialiser <JsonNetSerialiser>(); sagaMediator = builder.ResolveMediator(); sagaRepository = builder.ResolveRepository(); var correlationId = Guid.NewGuid(); StartSaga(correlationId); RequestVerificationCode(correlationId); ProvideVerificationCode(correlationId); CreateAccount(correlationId); var saga = sagaRepository.Find <AccountCreationSaga>(correlationId); var jamesName = saga.SagaData.Person.FullName; Console.WriteLine($"Taking information from SagaData; Person.FullName='{jamesName}'"); }
public MediatorBenchmarking() { mediator = Wireup.UseInternalContainer().UseRepository <FastSagaRepository>().ResolveMediator(); correlationId = Guid.NewGuid(); mediator.Consume(new FirstMessage(Program.FirstGuid)); }
public void WithSimpleInjector() { try { var container = new Container(); container.RegisterNSagaComponents(); container.UseSagaRepository <AzureTablesSagaRepository>(); // You need Azure Storage emulator running to run this var connectionString = "UseDevelopmentStorage=true"; container.Register <ITableClientFactory>(() => new TableClientFactory(connectionString), Lifestyle.Singleton); sagaMediator = container.GetInstance <ISagaMediator>(); var correlationId = Guid.NewGuid(); var initMessage = new PersonalDetailsVerification(correlationId) { FirstName = "James", LastName = "Bond", }; sagaMediator.Consume(initMessage); } catch (Exception) { Console.WriteLine("Quite likely you don't have Azure Storage Emulator running, so this sample can't be executed"); } }
public void Run() { try { // You need Azure Storage emulator running to run this var connectionString = "UseDevelopmentStorage=true"; var builder = Wireup.UseInternalContainer() .UseRepository <AzureTablesSagaRepository>() .Register(typeof(ITableClientFactory), new TableClientFactory(connectionString)); sagaMediator = builder.ResolveMediator(); var correlationId = Guid.NewGuid(); var initMessage = new PersonalDetailsVerification(correlationId) { FirstName = "James", LastName = "Bond", }; sagaMediator.Consume(initMessage); } catch (Exception) { Console.WriteLine("Quite likely you don't have Azure Storage Emulator running, so this sample can't be executed"); } }
/// <summary> /// Default constructor to initialize the policy constructor /// </summary> /// <param name="request">New policy request</param> public PolicyCreator(NewPolicyRequest request) { _newPolicyRequest = request; var builder = Wireup.UseInternalContainer().UseMessageSerialiser <JsonNetSerialiser>(); sagaMediator = builder.ResolveMediator(); sagaRepository = builder.ResolveRepository(); _guid = Guid.NewGuid(); Console.WriteLine($"New GUID: {_guid}"); ((ISagaMessage)_newPolicyRequest).CorrelationId = _guid; }
public void Run() { var builder = new ContainerBuilder(); var options = new DbContextOptionsBuilder <MyContext>() .UseInMemoryDatabase(Guid.NewGuid().ToString()) // don't raise the error warning us that the in memory db doesn't support transactions .ConfigureWarnings(x => x.Ignore(InMemoryEventId.TransactionIgnoredWarning)) .Options; //var options = new DbContextOptionsBuilder<MyContext>() // .UseNpgsql("Host=localhost;Port=5432;Database=demodb;Username=postgres;Password=postgres") // .Options; builder.RegisterType <MyContext>() .WithParameter("options", options) .InstancePerLifetimeScope(); builder .RegisterNSagaComponents() .UseSqlServer() .WithDatabase <SagaSqlDatabase <MyContext> >(); var container = builder.Build(); sagaMediator = container.Resolve <ISagaMediator>(); sagaRepository = container.Resolve <ISagaRepository>(); var correlationId = Guid.NewGuid(); StartSaga(correlationId); RequestVerificationCode(correlationId); ProvideVerificationCode(correlationId); CreateAccount(correlationId); var saga = sagaRepository.Find <AccountCreationSaga>(correlationId); var jamesName = saga.SagaData.Person.FullName; Console.WriteLine($"Taking information from SagaData; Person.FullName='{jamesName}'"); }
public SagaConsumer(ISagaMediator sagaMediator) { _sagaMediator = sagaMediator; }