コード例 #1
0
        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();
                }
            }
        }
コード例 #2
0
        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;
        }
コード例 #3
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);
        }
コード例 #4
0
        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);
            }
        }
コード例 #5
0
 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;
 }
コード例 #6
0
        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;
            }
        }