public bool Sync(Guid clientId, string clientConnectionString)
        {
            try
            {
                string serverConnectionString = ConfigurationSettings.AppSettings["ServerConnectionString"].ToString();

                string scopeName = "ClientScope-" + clientId;

                SqlSyncProvider serverProvider = synchronizationHelper.ConfigureSqlSyncProvider(scopeName, serverConnectionString, clientId);

                SqlSyncProvider destinationProvider = new SqlSyncProvider();

                SqlConnection cn = new SqlConnection();
                cn.ConnectionString = clientConnectionString;

                destinationProvider.Connection = cn;
                destinationProvider.ScopeName  = scopeName;

                SqlSyncProvider destinationProxy = new SqlSyncProvider(
                    scopeName, ((SqlConnection)destinationProvider.Connection));

                serverProvider.MemoryDataCacheSize = 100000;

                if (!string.IsNullOrEmpty(this.batchSpoolLocation))
                {
                    serverProvider.BatchingDirectory   = this.batchSpoolLocation;
                    destinationProxy.BatchingDirectory = this.batchSpoolLocation;
                }

                SyncOperationStatistics statistics = synchronizationHelper.SynchronizeProviders(scopeName, clientConnectionString, serverConnectionString, serverProvider, destinationProxy);

                TimeSpan diff = statistics.SyncEndTime.Subtract(statistics.SyncStartTime);

                destinationProxy.Dispose();

                this.syncStats = string.Format("Batching: {4} - Total Time To Synchronize = {0}:{1}:{2}:{3}",
                                               diff.Hours, diff.Minutes, diff.Seconds, diff.Milliseconds, (this._batchSize > 0) ? "Enabled" : "Disabled");

                return(true);
            }
            catch (FaultException ex)
            {
                return(false);
            }
        }
        public bool Sync(Guid clientId, string clientConnectionString)
        {
            try
            {
                string serverConnectionString = ConfigurationSettings.AppSettings["ServerConnectionString"].ToString();

                string scopeName = "ClientScope-" + clientId;

                SqlSyncProvider serverProvider = synchronizationHelper.ConfigureSqlSyncProvider(scopeName, serverConnectionString, clientId);

                SqlSyncProvider destinationProvider = new SqlSyncProvider();

                SqlConnection cn = new SqlConnection();
                cn.ConnectionString = clientConnectionString;

                destinationProvider.Connection = cn;
                destinationProvider.ScopeName = scopeName;

                SqlSyncProvider destinationProxy = new SqlSyncProvider(
                  scopeName, ((SqlConnection)destinationProvider.Connection));

                serverProvider.MemoryDataCacheSize = 100000;

                if (!string.IsNullOrEmpty(this.batchSpoolLocation))
                {
                    serverProvider.BatchingDirectory = this.batchSpoolLocation;
                    destinationProxy.BatchingDirectory = this.batchSpoolLocation;
                }

                SyncOperationStatistics statistics = synchronizationHelper.SynchronizeProviders(scopeName, clientConnectionString, serverConnectionString, serverProvider, destinationProxy);

                TimeSpan diff = statistics.SyncEndTime.Subtract(statistics.SyncStartTime);

                destinationProxy.Dispose();

                this.syncStats = string.Format("Batching: {4} - Total Time To Synchronize = {0}:{1}:{2}:{3}",
                    diff.Hours, diff.Minutes, diff.Seconds, diff.Milliseconds, (this._batchSize > 0) ? "Enabled" : "Disabled");

                return true;
            }
            catch (FaultException ex)
            {
                return false;
            }
        }