示例#1
0
 public TableColumnMapping(TableMapping sourceTableMapping, DBColumn sourceColumn,
                           DBColumn destinationColumn, ColumnUse columnUse)
     : base(destinationColumn, columnUse)
 {
     this.sourceTableMapping = sourceTableMapping;
     this.sourceColumn       = sourceColumn;
 }
 public ExcelColumnMapping(string sourceHeaderName, DBColumn destinationColumn, ColumnUse columnUse)
     : base(destinationColumn, columnUse)
 {
     this.sourceHeaderName = sourceHeaderName;
 }
 protected ColumnMapping(DBColumn destinationColumn, ColumnUse columnUse)
 {
     this.destinationColumn = destinationColumn;
     this.columnUse = columnUse;
 }
 public TableColumnMapping(TableMapping sourceTableMapping, DBColumn sourceColumn,
     DBColumn destinationColumn, ColumnUse columnUse)
     : base(destinationColumn, columnUse)
 {
     this.sourceTableMapping = sourceTableMapping;
     this.sourceColumn = sourceColumn;
 }
 public NullColumnMapping(DBColumn destinationColumn, ColumnUse columnUse)
     : base(destinationColumn, columnUse)
 {
 }
 public LiteralColumnMapping(string literal, LiteralType literalType, DBColumn destinationColumn, ColumnUse columnUse)
     : base(destinationColumn, columnUse)
 {
     this.literal = literal;
     this.literalType = literalType;
 }
        private TableMapping[] readTableMappings(XmlReader reader, Database database)
        {
            Dictionary <int, TableMapping>      tableMappings        = new Dictionary <int, TableMapping>();
            Dictionary <TableMapping, XElement> columnMappingReaders = new Dictionary <TableMapping, XElement>();

            if (reader.ReadToFollowing("TableMappings"))
            {
                using (XmlReader tmlReader = reader.ReadSubtree())
                {
                    while (tmlReader.ReadToFollowing("TableMapping"))
                    {
                        {
                            int    index = int.Parse(tmlReader.GetAttribute("index"));
                            string destinationTableReference = tmlReader.GetAttribute("destinationTableReference");
                            string importType = tmlReader.GetAttribute("importType");

                            DBTable table = database.Tables.Where(t => t.Reference == destinationTableReference).First();

                            TableMapping tableMapping = new TableMapping(table,
                                                                         (TableMappingImportType)Enum.Parse(typeof(TableMappingImportType), importType), null);

                            tableMappings.Add(index, tableMapping);

                            if (tmlReader.ReadToFollowing("ColumnMappings"))
                            {
                                XmlReader cmlReader = tmlReader.ReadSubtree();
                                XElement  cml       = XElement.Load(cmlReader);

                                columnMappingReaders.Add(tableMapping, cml);
                            }
                        }
                    }

                    foreach (TableMapping tableMapping in columnMappingReaders.Keys)
                    {
                        List <ColumnMapping> columnMappings = new List <ColumnMapping>();

                        XElement columnMappingsElement = columnMappingReaders[tableMapping];
                        IEnumerable <XElement> columnMappingElements = columnMappingsElement.Elements();

                        foreach (XElement columnMappingElement in columnMappingElements)
                        {
                            if (columnMappingElement.Name == "ColumnMapping")
                            {
                                string    type      = columnMappingElement.Attribute("type").Value;
                                ColumnUse columnUse = (ColumnUse)Enum.Parse(typeof(ColumnUse), columnMappingElement.Attribute("columnUse").Value);

                                string destinationColumnReference = columnMappingElement.Attribute("destinationColumnReference").Value;

                                DBColumn destinationColumn = tableMapping.DestinationTable.Columns
                                                             .Where(c => c.Name.ToLower() == destinationColumnReference.ToLower()).First();

                                ColumnMapping columnMapping = null;

                                if (type == typeof(ExcelColumnMapping).Name)
                                {
                                    string sourceHeader = columnMappingElement.Attribute("sourceHeader").Value;
                                    columnMapping = new ExcelColumnMapping(sourceHeader, destinationColumn, columnUse);
                                }
                                else if (type == typeof(TableColumnMapping).Name)
                                {
                                    int    sourceTableMappingIndex = int.Parse(columnMappingElement.Attribute("sourceTableMappingIndex").Value);
                                    string sourceColumnReference   = columnMappingElement.Attribute("sourceColumnReference").Value;

                                    TableMapping sourceTableMapping = tableMappings[sourceTableMappingIndex];
                                    DBColumn     sourceColumn       = sourceTableMapping.DestinationTable.Columns
                                                                      .Where(c => c.Name.ToLower() == sourceColumnReference.ToLower()).First();

                                    columnMapping = new TableColumnMapping(sourceTableMapping, sourceColumn, destinationColumn, columnUse);
                                }
                                else if (type == typeof(LiteralColumnMapping).Name)
                                {
                                    string litearal    = columnMappingElement.Attribute("literal").Value;
                                    string literalType = columnMappingElement.Attribute("literalType").Value;

                                    columnMapping = new LiteralColumnMapping(litearal,
                                                                             (LiteralType)Enum.Parse(typeof(LiteralType), literalType), destinationColumn, columnUse);
                                }
                                else
                                {
                                    columnMapping = new NullColumnMapping(destinationColumn, columnUse);
                                }

                                columnMappings.Add(columnMapping);
                            }
                        }

                        tableMapping.ColumnMappings = columnMappings.ToArray();
                    }
                }
            }


            return(tableMappings.Values.ToArray());
        }
示例#8
0
 public ExcelColumnMapping(string sourceHeaderName, DBColumn destinationColumn, ColumnUse columnUse)
     : base(destinationColumn, columnUse)
 {
     this.sourceHeaderName = sourceHeaderName;
 }
示例#9
0
 public NullColumnMapping(DBColumn destinationColumn, ColumnUse columnUse)
     : base(destinationColumn, columnUse)
 {
 }
示例#10
0
 protected ColumnMapping(DBColumn destinationColumn, ColumnUse columnUse)
 {
     this.destinationColumn = destinationColumn;
     this.columnUse         = columnUse;
 }
示例#11
0
 public LiteralColumnMapping(string literal, LiteralType literalType, DBColumn destinationColumn, ColumnUse columnUse)
     : base(destinationColumn, columnUse)
 {
     this.literal     = literal;
     this.literalType = literalType;
 }
示例#12
0
 public void ChangeAllowedColumnUses()
 {
     NotifyPropertyChanged("AllowedColumnUses");
     ColumnUse = AllowedColumnUses[0];
 }
示例#13
0
        public static ColumnMappingViewModel CreateBlankSourceViewModel(ColumnMappingImportType importType, TableMappingViewModel tableMappingViewModel,
                                                                        DBColumn destinationColumn, ColumnUse columnUse)
        {
            switch (importType)
            {
            case (SQLImporter.ViewModel.ColumnMappingImportType.Excel):
                ExcelColumnMapping excelColumnMapping = new ExcelColumnMapping("", destinationColumn, columnUse);
                return(new ExcelColumnMappingViewModel(excelColumnMapping, tableMappingViewModel));

            case (SQLImporter.ViewModel.ColumnMappingImportType.Table):
                TableColumnMapping tableColumnMapping = new TableColumnMapping(null, null, destinationColumn, columnUse);
                return(new TableColumnMappingViewModel(tableColumnMapping, tableMappingViewModel));

            case (SQLImporter.ViewModel.ColumnMappingImportType.Literal):
                LiteralColumnMapping literalColumnMapping = new LiteralColumnMapping("", LiteralType.String, destinationColumn, columnUse);
                return(new LiteralColumnMappingViewModel(literalColumnMapping, tableMappingViewModel));

            default:
                NullColumnMapping nullColumnMapping = new NullColumnMapping(destinationColumn, columnUse);
                return(new NullColumnMappingViewModel(nullColumnMapping, tableMappingViewModel));
            }
        }