private static TvpInfo CreateTvpInfoPrototype(HygienePropertyDefinition tableName, HygienePropertyDefinition[] columnDefinitions)
        {
            HygienePropertyDefinition[] array = new HygienePropertyDefinition[columnDefinitions.Length];
            DataTable            dataTable    = new DataTable();
            DataColumnCollection columns      = dataTable.Columns;

            dataTable.TableName = tableName.Name;
            foreach (HygienePropertyDefinition hygienePropertyDefinition in columnDefinitions)
            {
                if (!hygienePropertyDefinition.IsCalculated)
                {
                    DataColumn dataColumn = columns.Add(hygienePropertyDefinition.Name, (hygienePropertyDefinition.Type == typeof(byte[])) ? hygienePropertyDefinition.Type : DalHelper.ConvertToStoreType(hygienePropertyDefinition));
                    array[dataColumn.Ordinal] = hygienePropertyDefinition;
                }
            }
            dataTable.BeginLoadData();
            return(new TvpInfo(tableName, dataTable, array));
        }
        private static void SerializeObjectToDataTable <T>(T source, HygienePropertyDefinition tableDefinition, ref UnifiedPolicyForSaveDataSet saveDataSet) where T : ConfigurablePropertyBag
        {
            if (source == null)
            {
                throw new ArgumentNullException("source");
            }
            DataTable dataTable = saveDataSet[tableDefinition] as DataTable;

            if (dataTable == null)
            {
                throw new ArgumentNullException("table");
            }
            HygienePropertyDefinition[] columns = UnifiedPolicyForSaveDataSet.mapTableToTvpColumnInfo[tableDefinition];
            DataRow row = dataTable.NewRow();

            UnifiedPolicyForSaveDataSet.PopulateRow(row, columns, source);
            dataTable.Rows.Add(row);
        }
 private static void PopulateRow(DataRow row, HygienePropertyDefinition[] columns, ConfigurablePropertyBag dataSource)
 {
     if (columns == null)
     {
         throw new ArgumentNullException("columns");
     }
     for (int i = 0; i < columns.Length; i++)
     {
         HygienePropertyDefinition hygienePropertyDefinition = columns[i];
         if (hygienePropertyDefinition != null && !hygienePropertyDefinition.IsCalculated)
         {
             object obj = dataSource[hygienePropertyDefinition];
             if (obj != hygienePropertyDefinition.DefaultValue)
             {
                 row[i] = obj;
             }
         }
     }
 }
Example #4
0
 public TvpInfo(HygienePropertyDefinition tableName, DataTable tvp, HygienePropertyDefinition[] columns)
 {
     this.tableName = tableName;
     this.tvp       = tvp;
     this.columns   = columns;
 }