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); }
/// <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); }
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); }