public IEnumerable <ISupplierConnector> GetInstances(ConnectorsConfiguration configuration) { var path = !string.IsNullOrEmpty(configuration.PathConnectors) ? AppDomain.CurrentDomain.BaseDirectory + $"/{configuration.PathConnectors}" : AppDomain.CurrentDomain.BaseDirectory; var files = Directory.EnumerateFiles($"{path}", "*.dll"); var assemblies = files.Select(p => Assembly.LoadFrom(p)); var getTypes = (from assembly in assemblies from t in assembly.GetTypes() select t) .ToArray(); var typeNames = getTypes .Where(x => typeof(ISupplierConnector).IsAssignableFrom(x) && !x.IsInterface && !x.IsAbstract) .ToList(); var instances = typeNames.Select(p => Activator .CreateInstance(p, GetParamsFromConfiguration(p, configuration)) as ISupplierConnector) .ToList(); return(instances); }
private static object[] GetParamsFromConfiguration(Type s, ConnectorsConfiguration configuration) { var supplierConfiguration = configuration .Connectors .FirstOrDefault(supplier => s.Name.ToLower().Contains(supplier.ConnectorName.ToLower())); return(new object[] { supplierConfiguration }); }
public void GetConnectorsConfiguration() { var restClient = CreateRestClient(); ConnectorsConfiguration connectorsConfiguration = restClient.GetConnectorsConfiguration("TicketMan" /*Код организации*/, "flights" /*serviceType*/); Assert.NotNull(connectorsConfiguration); foreach (var variable in connectorsConfiguration.Variables) { Trace.WriteLine(String.Format("Variable '{0}' with value '{1}' was loaded.", variable.Name, variable.Value)); } }
public JccHubPropertiesTest() { JccHubPropertiesMock = new Mock <IJccHubPropertiesService>(); SearchAvalibilityRqValidatorMock = new Mock <IValidator <SearchAvailabilityRq, ResponseValidator> >(); SupplierConnectorManagerMock = new Mock <ISupplierConnectorManager>(); SupplierConnectorManagerMock.As <ISupplierConnector>(); logStorageMock = new Mock <ILogStorage <Log> >(); ConnectorsConfiguration = new ConnectorsConfiguration(); Fixture = (Fixture) new Fixture() .Customize(new AutoMoqCustomization()); }
public Task <IEnumerable <ISupplierConnector> > GetSupplierConnectors( ConnectorsConfiguration connectorsConfiguration) { if (!supplierConnectionsCache.IsCacheExpired) { return(supplierConnectionsCache.GetSupplierConnections()); } var suppliers = supplierConnectorLoader.GetInstances(connectorsConfiguration); var supplierConnectors = suppliers.ToArray(); supplierConnectionsCache.AddSupplierConnectors(supplierConnectors, connectorsConfiguration.ExpirationTime); return(Task.FromResult(supplierConnectors.AsEnumerable())); }
public void DeleteConnectorsConfiguration() { var restClient = CreateRestClient(); var connectorsConfiguration = new ConnectorsConfiguration { Variables = new List <ConnectorConfigurationVariable>() }; connectorsConfiguration.Variables.Add(new ConnectorConfigurationVariable { Name = "FlightHAP", ServiceType = "flights", OrganizationCode = "sputnik", //SiteSlug = "TicketMan", Value = null //Удалить переменную }); restClient.SetConnectorsConfiguration(connectorsConfiguration); /*Если мы попали сюда, все прошло без эксепшена*/ Trace.WriteLine("Все сохранено."); }