static async Task Main(string[] args) { Log.Info("Building services..."); var config = BuildConfig(); var links = config.GetSection("links").Get <IEnumerable <Link> >(); var services = new List <LinkerService>(); foreach (var link in links) { if (link.Filters == null || !link.Filters.Any()) { Log.Info("Setting 'include all' default filter"); var defaultFilter = new Filter(FilterType.Stream, "*", FilterOperation.Include); link.Filters = new List <Filter> { defaultFilter }; } var filters = link.Filters.Select(linkFilter => new Filter { FilterOperation = linkFilter.FilterOperation, FilterType = linkFilter.FilterType, Value = linkFilter.Value }).ToList(); var filterService = new FilterService(filters); var service = new LinkerService(new LinkerConnectionBuilder(new Uri(link.Origin.ConnectionString), ConnectionSettings.Create().SetDefaultUserCredentials(new UserCredentials(link.Origin.User, link.Origin.Pass)), link.Origin.ConnectionName), new LinkerConnectionBuilder(new Uri(link.Destination.ConnectionString), ConnectionSettings.Create().SetDefaultUserCredentials(new UserCredentials(link.Destination.User, link.Destination.Pass)), link.Destination.ConnectionName), filterService, Settings.Default(), new NLogger()); services.Add(service); } await StartServices(services); Log.Info("Press enter to exit the program"); Console.ReadLine(); }
static void Main(string[] args) { ConfigureLogging(); var connSettings = ConnectionSettings.Create().SetDefaultUserCredentials(new UserCredentials("admin", "changeit")); var origin = new LinkerConnectionBuilder(new Uri("tcp://localhost:1112"), connSettings, "origin-01"); var destination = new LinkerConnectionBuilder(new Uri("tcp://localhost:2112"), connSettings, "destination-01"); var service = new LinkerService(origin, destination, new FilterService(new List <Filter> { new Filter(FilterType.EventType, "User*", FilterOperation.Include), new Filter(FilterType.Stream, "domain-*", FilterOperation.Include), new Filter(FilterType.EventType, "Basket*", FilterOperation.Exclude) }), Settings.Default(), new NLogLogger()); service.Start().Wait(); Log.Info("Replica Service started"); TestReplicaForSampleEvent(connSettings, destination, "domain-test-01", "UserReplicaTested"); Log.Info("Press enter to exit the program"); Console.ReadLine(); }
public void Replica_start_without_errors() { // Set up var originBuilder = new Mock <Linker.ILinkerConnectionBuilder>(); var connection = new Mock <IEventStoreConnection>(); originBuilder.Setup(a => a.Build()).Returns(connection.Object); var destinationBuilder = new Mock <Linker.ILinkerConnectionBuilder>(); destinationBuilder.Setup(a => a.Build()).Returns(connection.Object); var positionRepo = new Mock <IPositionRepository>(); var sut = new LinkerService(originBuilder.Object, destinationBuilder.Object, positionRepo.Object, null, Settings.Default()); // Act var result = sut.Start().Result; // Verify Assert.IsTrue(result); }