private void btnAddMapping_Click(object sender, EventArgs e) { if (HistoryLookupTransformationUI.InputColumns.Count <= 1 || HistoryLookupTransformationUI.LookupColumns.Count <= 1) { MessageBox.Show("No Input Columns Available. Check that Inputs are attached", "History Lookup Column Mapping", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } else { //Get already mapped columns from both data and lookup List <ConvertMetadataInputColumn> existingDataColumns = new List <ConvertMetadataInputColumn>(HistoryLookupTransformationUI.InputColumns.Count); List <ConvertMetadataInputColumn> existingLookupColumns = new List <ConvertMetadataInputColumn>(HistoryLookupTransformationUI.LookupColumns.Count); foreach (ListViewItem lvi in lvMappings.Items) { ConvertMetadataInputColumn src = lvi.Tag as ConvertMetadataInputColumn; ConvertMetadataInputColumn lkp = lvi.SubItems[1].Tag as ConvertMetadataInputColumn; if (!existingDataColumns.Contains(src)) { existingDataColumns.Add(src); } if (!existingLookupColumns.Contains(lkp)) { existingLookupColumns.Add(lkp); } } //Get available coolumns by removing already mapped List <ConvertMetadataInputColumn> availableSource = HistoryLookupTransformationUI.InputColumns.FindAll(ic => !existingDataColumns.Contains(ic) && ic.LineageID != 0); List <ConvertMetadataInputColumn> availableLookup = HistoryLookupTransformationUI.LookupColumns.FindAll(ic => !existingLookupColumns.Contains(ic) && ic.LineageID != 0); //Show Mapping Form AddHistoryLookupMapping ahm = new AddHistoryLookupMapping(availableSource, availableLookup); //If mappingform is confirmed, generate new mapping if (ahm.ShowDialog(this) == DialogResult.OK) { ConvertMetadataInputColumn src = ahm.SelectedInputColumn; ConvertMetadataInputColumn lkp = ahm.SelectedLookupColumn; if (src != null && lkp != null) { try { lvMappings.SuspendLayout(); var lviSrc = lvMappings.Items.Add(src.DisplayName); lviSrc.Tag = src; var lviLkp = lviSrc.SubItems.Add(lkp.DisplayName); lviLkp.Tag = lkp; } finally { lvMappings.ResumeLayout(); } } ValidateForErrors(); } } }
private void cmbDataColumn_SelectedIndexChanged(object sender, EventArgs e) { ConvertMetadataInputColumn ic = cmbDataColumn.SelectedItem as ConvertMetadataInputColumn; if (ic != null) { var matchedItems = LookupColumns.FindAll(c => c.VirtualColumn.DataType == ic.VirtualColumn.DataType && c.VirtualColumn.Length == ic.VirtualColumn.Length && c.VirtualColumn.Precision == ic.VirtualColumn.Precision && c.VirtualColumn.Scale == ic.VirtualColumn.Scale ); cmbLookupColumn.DataSource = matchedItems; } btnOk.Enabled = cmbDataColumn.SelectedIndex >= 0 && cmbLookupColumn.SelectedIndex >= 0; }
public override void Initialize(IDTSComponentMetaData dtsComponentMetadata, IServiceProvider serviceProvider) { base.Initialize(dtsComponentMetadata, serviceProvider); _inputColumns = new List <ConvertMetadataInputColumn>(); IDTSVirtualInput vInput = GetVirtualInput(0); //Get virtualInput for the RegExExtractionTransformation if (vInput != null) { foreach (IDTSVirtualInputColumn vcol in vInput.VirtualInputColumnCollection) { if (RegExExtractionTransformation.SupportedDataTypes.Contains(vcol.DataType)) { ConvertMetadataInputColumn iCol = new ConvertMetadataInputColumn(vcol); _inputColumns.Add(iCol); } } } //Sort the columns by name _inputColumns.Sort((a, b) => a.Name.CompareTo(b.Name)); //Check if the column names repeats and in that cas set the DisplayName to include also UpstreamComponentname for (int i = 0; i < _inputColumns.Count; i++) { if (i >= 0 && i < _inputColumns.Count - 1 && _inputColumns[i].Name == _inputColumns[i + 1].Name) { _inputColumns[i].DisplayName = string.Format("{0}.{1}", _inputColumns[i].UpstreamComponentName, _inputColumns[i].Name); } else if (i > 0 && i < _inputColumns.Count && _inputColumns[i].Name == _inputColumns[i - 1].Name) { _inputColumns[i].DisplayName = string.Format("{0}.{1}", _inputColumns[i].UpstreamComponentName, _inputColumns[i].Name); } } //add the "Not Specified" column (LineageID = 0) _inputColumns.Insert(0, ConvertMetadataInputColumn.NotSpecifiedInputColumn); }
public override void Initialize(IDTSComponentMetaData dtsComponentMetadata, IServiceProvider serviceProvider) { base.Initialize(dtsComponentMetadata, serviceProvider); _inputColumns = new List <ConvertMetadataInputColumn>(); _lookupColumns = new List <ConvertMetadataInputColumn>(); _inputDateColumns = new List <ConvertMetadataInputColumn>(); _lookupDateColumns = new List <ConvertMetadataInputColumn>(); //Load InputColumns if (ComponentMetadata != null && ComponentMetadata.InputCollection.Count > 0) { IDTSVirtualInput vInput = GetVirtualInput(0); //Get virtualInput for the Data Input if (vInput != null) { foreach (IDTSVirtualInputColumn vcol in vInput.VirtualInputColumnCollection) { if (CheckColumnForInputValidity(vcol)) { ConvertMetadataInputColumn iCol = new ConvertMetadataInputColumn(vcol); _inputColumns.Add(iCol); } } } //Sort the columns by name _inputColumns.Sort((a, b) => a.Name.CompareTo(b.Name)); //Check if teh column names repeats and in that cas set the DisplayName tto include also UpstreamComponentname for (int i = 0; i < _inputColumns.Count; i++) { if (i >= 0 && i < _inputColumns.Count - 1 && _inputColumns[i].Name == _inputColumns[i + 1].Name) { _inputColumns[i].DisplayName = string.Format("{0}.{1}", _inputColumns[i].UpstreamComponentName, _inputColumns[i].Name); } else if (i > 0 && i < _inputColumns.Count && _inputColumns[i].Name == _inputColumns[i - 1].Name) { _inputColumns[i].DisplayName = string.Format("{0}.{1}", _inputColumns[i].UpstreamComponentName, _inputColumns[i].Name); } } //add the "Not Specified" column (LineageID = 0) _inputColumns.Insert(0, ConvertMetadataInputColumn.NotSpecifiedInputColumn); } //Load LookupColumns if (ComponentMetadata != null && ComponentMetadata.InputCollection.Count > 1) { IDTSVirtualInput vInput = GetVirtualInput(1); //Get virtualInput for the Data Input if (vInput != null) { foreach (IDTSVirtualInputColumn vcol in vInput.VirtualInputColumnCollection) { if (CheckColumnForInputValidity(vcol)) { ConvertMetadataInputColumn iCol = new ConvertMetadataInputColumn(vcol); _lookupColumns.Add(iCol); } } } //Sort the columns by name _lookupColumns.Sort((a, b) => a.Name.CompareTo(b.Name)); //Check if teh column names repeats and in that cas set the DisplayName tto include also UpstreamComponentname for (int i = 0; i < _lookupColumns.Count; i++) { if (i >= 0 && i < _lookupColumns.Count - 1 && _lookupColumns[i].Name == _lookupColumns[i + 1].Name) { _lookupColumns[i].DisplayName = string.Format("{0}.{1}", _lookupColumns[i].UpstreamComponentName, _lookupColumns[i].Name); } else if (i > 0 && i < _lookupColumns.Count && _lookupColumns[i].Name == _lookupColumns[i - 1].Name) { _lookupColumns[i].DisplayName = string.Format("{0}.{1}", _lookupColumns[i].UpstreamComponentName, _lookupColumns[i].Name); } } //add the "Not Specified" column (LineageID = 0) _lookupColumns.Insert(0, ConvertMetadataInputColumn.NotSpecifiedInputColumn); } }
private void btnOk_Click(object sender, EventArgs e) { SelectedInputColumn = cmbDataColumn.SelectedIndex >= 0 ? cmbDataColumn.Items[cmbDataColumn.SelectedIndex] as ConvertMetadataInputColumn : null; SelectedLookupColumn = cmbLookupColumn.SelectedIndex >= 0 ? cmbLookupColumn.Items[cmbLookupColumn.SelectedIndex] as ConvertMetadataInputColumn : null; }
private void LoadInputColumns() { try { lvMappings.SuspendLayout(); lvMappings.Items.Clear(); int missingCount = 0; if (UIHelper.Input != null && UIHelper.VirtualInput != null && UIHelper.Input2 != null && UIHelper.VirtualInput2 != null) { //Generate ColumnsMappings basedon InputColumns foreach (IDTSInputColumn col in UIHelper.Input.InputColumnCollection) { IDTSCustomProperty uTypeProp = col.CustomPropertyCollection[HistoryLookupTransformation.GetPropertyname(HistoryLookupTransformation.CustomProperties.InputColumnUsageType)]; HistoryLookupTransformation.InputColumnUsageType usageType = (HistoryLookupTransformation.InputColumnUsageType)uTypeProp.Value; IDTSCustomProperty lookLinIDProp = col.CustomPropertyCollection[HistoryLookupTransformation.GetPropertyname(HistoryLookupTransformation.CustomProperties.LookupKeyLineageID)]; int lookupLineageID = (int)lookLinIDProp.Value; //if UsageType is LookupColumn, gegerate mapping in the MappingView if ((usageType & HistoryLookupTransformation.InputColumnUsageType.LookupColumn) == HistoryLookupTransformation.InputColumnUsageType.LookupColumn && lookupLineageID > 0) { ConvertMetadataInputColumn inputDataCol = HistoryLookupTransformationUI.InputColumns.Find(ic => ic.VirtualColumn != null && ic.LineageID != 0 && ic.VirtualColumn.LineageID == col.LineageID); ConvertMetadataInputColumn lookupCol = HistoryLookupTransformationUI.LookupColumns.Find(ic => ic.VirtualColumn != null && ic.LineageID != 0 && ic.VirtualColumn.LineageID == lookupLineageID); if (inputDataCol != null && lookupCol != null && inputDataCol.DataType == lookupCol.DataType) { var li = lvMappings.Items.Add(inputDataCol.DisplayName); li.Tag = inputDataCol; var si = li.SubItems.Add(lookupCol.DisplayName); si.Tag = lookupCol; } else { missingCount++; } } //If UsageType is DateColumn, then assing the LineageID to the _historyLookupProperties for editing if ((usageType & HistoryLookupTransformation.InputColumnUsageType.DateColumn) == HistoryLookupTransformation.InputColumnUsageType.DateColumn) { _historyLookupProperties.DataDateColumnLineageID = col.LineageID; } } foreach (IDTSInputColumn col in UIHelper.Input2.InputColumnCollection) { IDTSCustomProperty uTypeProp = col.CustomPropertyCollection[HistoryLookupTransformation.GetPropertyname(HistoryLookupTransformation.CustomProperties.InputColumnUsageType)]; HistoryLookupTransformation.InputColumnUsageType usageType = (HistoryLookupTransformation.InputColumnUsageType)uTypeProp.Value; IDTSCustomProperty compProp = col.CustomPropertyCollection[HistoryLookupTransformation.GetPropertyname(HistoryLookupTransformation.CustomProperties.DateComparison)]; HistoryLookupTransformation.DateComparison dateComparison = (HistoryLookupTransformation.DateComparison)compProp.Value; //If UsageType is DateFromColumn, then assing the LineageID and DateComparison to the _historyLookupProperties for editing if ((usageType & HistoryLookupTransformation.InputColumnUsageType.DateFromColumn) == HistoryLookupTransformation.InputColumnUsageType.DateFromColumn) { _historyLookupProperties.LookupDateFromLineageID = col.LineageID; _historyLookupProperties.LookupDateFromComparison = dateComparison == HistoryLookupTransformation.DateComparison.None ? DateFromComparison.GreaterOrEqual : (DateFromComparison)dateComparison; } //If UsageType is DateToColumn, then assing the LineageID and DateComparison to the _historyLookupProperties for editing if ((usageType & HistoryLookupTransformation.InputColumnUsageType.DateToColumn) == HistoryLookupTransformation.InputColumnUsageType.DateToColumn) { _historyLookupProperties.LookupDateToLineageID = col.LineageID; _historyLookupProperties.LookupDateToComparison = dateComparison == HistoryLookupTransformation.DateComparison.None ? DateToComparison.Lower : (DateToComparison)dateComparison; } } } if (missingCount > 0) { MessageBox.Show("There are invalid mappings between columns. Invalid Mappings are removed", "History Lookup Transformation", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } finally { lvMappings.ResumeLayout(); btnRemoveMapping.Enabled = lvMappings.SelectedIndices.Count > 0; } }