Ejemplo n.º 1
0
        /// <summary>
        /// Constructs a DmColumn object based on a DmColumnSurrogate object.
        /// </summary>
        public DmColumn ConvertToDmColumn()
        {
            DmColumn dmColumn = DmColumn.CreateColumn(this.ColumnName, DmUtils.GetTypeFromAssemblyQualifiedName(this.DataType));

            dmColumn.dbTypeAllowed = this.dbTypeAllowed;
            if (dmColumn.dbTypeAllowed)
            {
                dmColumn.DbType = (DbType)this.DbType;
            }

            dmColumn.AllowDBNull        = this.AllowDBNull;
            dmColumn.IsReadOnly         = this.IsReadOnly;
            dmColumn.MaxLength          = this.MaxLength;
            dmColumn.IsAutoIncrement    = this.IsAutoIncrement;
            dmColumn.Precision          = this.Precision;
            dmColumn.PrecisionSpecified = this.PrecisionSpecified;
            dmColumn.Scale            = this.Scale;
            dmColumn.ScaleSpecified   = this.ScaleSpecified;
            dmColumn.IsUnique         = this.IsUnique;
            dmColumn.IsUnicode        = this.IsUnicode;
            dmColumn.IsCompute        = this.IsCompute;
            dmColumn.IsUnsigned       = this.IsUnsigned;
            dmColumn.OriginalDbType   = this.OriginalDbType;
            dmColumn.OriginalTypeName = this.OriginalTypeName;
            dmColumn.SetOrdinal(this.Ordinal);

            return(dmColumn);
        }
Ejemplo n.º 2
0
 public override object ConvertFromString(string s)
 {
     return(DmUtils.GetTypeFromAssemblyQualifiedName(s));
 }
Ejemplo n.º 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);
        }