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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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());
        }