internal static IEnhancedOrgService GetConnection(string connectionString, bool noCache = false) { Status.Update("Creating connection to CRM ... ", false); poolCache.TryGetValue(connectionString, out var pool); factoryCache.TryGetValue(connectionString, out var factory); if (pool == null || factory == null) { var template = EnhancedServiceBuilder.NewBuilder .Initialise(connectionString) .AddCaching() .Finalise() .GetBuild(); factoryCache[connectionString] = factory = new EnhancedServiceFactory <EnhancedOrgService>(template); poolCache[connectionString] = pool = new EnhancedServicePool <EnhancedOrgService>(factory); } if (noCache) { factory.ClearCache(); } var service = pool.GetService(); Status.Update("done!"); return(service); }
public static IOrganizationService GetConnection(Settings settings, ref int connectionsCreated, int total = 1) { Status.Update($"Creating connection {connectionsCreated + 1} / {total} to CRM ... "); var connectionString = settings.GetOrganizationCrmConnectionString(); poolCache.TryGetValue(connectionString, out var pool); factoryCache.TryGetValue(connectionString, out var factory); if (pool == null || factory == null) { var template = EnhancedServiceBuilder.NewBuilder .Initialise(connectionString) .Finalise() .GetBuild(); factoryCache[connectionString] = factory = new EnhancedServiceFactory <EnhancedOrgService>(template); poolCache[connectionString] = pool = new EnhancedServicePool <EnhancedOrgService>(factory); } var service = pool.GetService(); Status.Update($"Created connection {++connectionsCreated} / {total}."); return(service); }
private static IEnhancedOrgService ConnectToCrm(string connectionString) { connectionString.Require(nameof(connectionString)); log.Log($"Connecting to '{EscapePassword(connectionString)}' ..."); connectionPool = connectionPool ?? EnhancedServiceHelper.GetPool(connectionString); connectionPool.GetService().Dispose(); log.Log($"Connected!"); return(connectionPool.GetService()); }