private void ColumnsToXmlTransformationForm_Load(object sender, EventArgs e) { //Get Current HistoryLookukp properties IDTSCustomProperty noMatchBehavior = UIHelper.ComponentMetadata.CustomPropertyCollection[HistoryLookupTransformation.GetPropertyname(HistoryLookupTransformation.CustomProperties.NoMatchBehavior)]; IDTSCustomProperty cacheType = UIHelper.ComponentMetadata.CustomPropertyCollection[HistoryLookupTransformation.GetPropertyname(HistoryLookupTransformation.CustomProperties.CacheType)]; IDTSCustomProperty noMatchCacheSize = UIHelper.ComponentMetadata.CustomPropertyCollection[HistoryLookupTransformation.GetPropertyname(HistoryLookupTransformation.CustomProperties.NoMatchCacheSize)]; IDTSCustomProperty defaultCacheSize = UIHelper.ComponentMetadata.CustomPropertyCollection[HistoryLookupTransformation.GetPropertyname(HistoryLookupTransformation.CustomProperties.DefaultCacheSize)]; IDTSCustomProperty keyhashAlgorithm = UIHelper.ComponentMetadata.CustomPropertyCollection[HistoryLookupTransformation.GetPropertyname(HistoryLookupTransformation.CustomProperties.KeyHashAlgorithm)]; _historyLookupProperties = new HistoryLookupProperties(noMatchBehavior, cacheType, noMatchCacheSize, defaultCacheSize, keyhashAlgorithm); try { _formLoading = true; //Load Input columns and populate mappings ListView LoadInputColumns(); //Load Lookup and Output Columsn and populate Output Columns ListView LoadOutputColumns(); } finally { _formLoading = false; } //assign handler to detect properties changes to validate status _historyLookupProperties.ObjectPropertiesChanged += Properties_ObjectPropertiesChanged; //Check current prperties Properties_ObjectPropertiesChanged(_historyLookupProperties); //Assing current proerties to PropetyGrid propComponent.SelectedObject = _historyLookupProperties; }
private void Properties_ObjectPropertiesChanged(HistoryLookupProperties prop) { propertiesErrors = new StringBuilder(); List <DataType> dataTypes = new List <DataType>(); var dataDateCol = HistoryLookupTransformationUI.InputDateColumns.Find(ic => ic.LineageID == prop.DataDateColumnLineageID); if (dataDateCol != null && !dataTypes.Contains(dataDateCol.DataType)) { dataTypes.Add(dataDateCol.DataType); } var lookupDateFromCol = HistoryLookupTransformationUI.LookupDateColumns.Find(ic => ic.LineageID == prop.LookupDateFromLineageID); if (lookupDateFromCol != null && !dataTypes.Contains(lookupDateFromCol.DataType)) { dataTypes.Add(lookupDateFromCol.DataType); } var lookupDateToCol = HistoryLookupTransformationUI.LookupDateColumns.Find(ic => ic.LineageID == prop.LookupDateToLineageID); if (lookupDateToCol != null && !dataTypes.Contains(lookupDateToCol.DataType)) { dataTypes.Add(lookupDateToCol.DataType); } if (dataTypes.Count > 1) { propertiesErrors.AppendLine("All DateColumns must be of the same DataType"); } if (prop.DefaultCacheSize < 1) { propertiesErrors.Append("DefaultCacheSize mut be greater than 0"); } if (prop.NoMatchCacheSize < 0) { propertiesErrors.Append("NoMatchCacheSize must be greater or equal to 0"); } ValidateForErrors(); }