Example #1
0
        internal ServiceConfiguration Clone()
        {
            ServiceConfiguration serviceConfiguration = new ServiceConfiguration();

            serviceConfiguration.BatchDirectory           = this.BatchDirectory;
            serviceConfiguration.ConflictResolutionPolicy = this.ConflictResolutionPolicy;
            serviceConfiguration.DownloadBatchSizeInKB    = this.DownloadBatchSizeInKB;
            serviceConfiguration.EnableDiagnosticPage     = this.EnableDiagnosticPage;
            serviceConfiguration.ScopeSet               = this.ScopeSet.Clone();
            serviceConfiguration.Tables                 = this.Tables;
            serviceConfiguration.UseBulkOperations      = this.UseBulkOperations;
            serviceConfiguration.UseVerboseErrors       = this.UseVerboseErrors;
            serviceConfiguration.SerializationConverter = this.SerializationConverter;

            if (this.FilterParameters != null)
            {
                serviceConfiguration.FilterParameters = new List <SyncParameter>();
                foreach (var p in this.FilterParameters)
                {
                    SyncParameter p1 = new SyncParameter();
                    p1.Name  = p.Name;
                    p1.Value = p.Value;
                    serviceConfiguration.FilterParameters.Add(p1);
                }
            }

            return(serviceConfiguration);
        }
Example #2
0
        /// <summary>
        /// Determines whether a <see cref="T:Microsoft.Synchronization.Data.SyncParameter" /> object is equal to the specified object.
        /// </summary>
        public override bool Equals(object obj)
        {
            SyncParameter syncParameter = obj as SyncParameter;

            if (syncParameter == null)
            {
                return(false);
            }

            if (String.Equals(this.Name, syncParameter.Name, StringComparison.OrdinalIgnoreCase))
            {
                return(false);
            }

            return(this.Value == syncParameter.Value);
        }
Example #3
0
        public static ServiceConfiguration DeserializeFromDmSet(DmSet set)
        {
            if (set == null)
            {
                return(null);
            }

            if (!set.Tables.Contains("DotmimSync__ServiceConfiguration"))
            {
                return(null);
            }

            ServiceConfiguration configuration = new ServiceConfiguration();
            var dmRowConfiguration             = set.Tables["DotmimSync__ServiceConfiguration"].Rows[0];

            configuration.BatchDirectory           = dmRowConfiguration["BatchDirectory"] as String;;
            configuration.ConflictResolutionPolicy = (ConflictResolutionPolicy)dmRowConfiguration["ConflictResolutionPolicy"];
            configuration.DownloadBatchSizeInKB    = (int)dmRowConfiguration["DownloadBatchSizeInKB"];
            configuration.EnableDiagnosticPage     = (bool)dmRowConfiguration["EnableDiagnosticPage"];
            configuration.UseBulkOperations        = (bool)dmRowConfiguration["UseBulkOperations"];
            configuration.UseVerboseErrors         = (bool)dmRowConfiguration["UseVerboseErrors"];
            configuration.OverwriteConfiguration   = (bool)dmRowConfiguration["OverwriteConfiguration"];
            configuration.SerializationConverter   = (SerializationFormat)dmRowConfiguration["SerializationConverter"];

            if (set.Tables.Contains("DotmimSync__FilterParameter"))
            {
                configuration.FilterParameters = new List <SyncParameter>();
                var dmTableFilterParameters = set.Tables["DotmimSync__FilterParameter"];

                foreach (var dmRowFilter in dmTableFilterParameters.Rows)
                {
                    SyncParameter syncParameter = new SyncParameter();
                    syncParameter.Name = dmRowFilter["Name"] as String;

                    var valueType = dmRowFilter["ValueType"] as String;
                    var value     = dmRowFilter["Value"] as String;
                    var objType   = DmUtils.GetTypeFromAssemblyQualifiedName(valueType);
                    var converter = objType.GetConverter();
                    var objValue  = converter.ConvertFromInvariantString(valueType);
                    syncParameter.Value = objValue;

                    configuration.FilterParameters.Add(syncParameter);
                }
            }

            if (set.Tables.Contains("DotmimSync__Table"))
            {
                var dmTableTables = set.Tables["DotmimSync__Table"];
                configuration.Tables = new string[dmTableTables.Rows.Count];

                for (int i = 0; i < dmTableTables.Rows.Count; i++)
                {
                    var dmRowTable = dmTableTables.Rows[i];
                    var tableName  = dmRowTable["Name"] as String;
                    configuration.Tables[i] = tableName;
                }
            }

            var configTables = set.Tables.Where(tbl => !tbl.TableName.StartsWith("DotmimSync__"));

            if (configTables != null)
            {
                foreach (var configTable in configTables)
                {
                    configuration.ScopeSet.Tables.Add(configTable.Clone());
                }
            }

            return(configuration);
        }