/// <summary> /// Creates a new instance of the IDTSOutputColumn enccapsualted in the MetadataSolumn /// </summary> /// <param name="output">Output where the new OutputColumn should be created</param> /// <returns></returns> public static RowNumberColumn CreateNewInstance(IDTSOutput output) { IDTSOutputColumn col = output.OutputColumnCollection.New(); col.Name = Resources.RowNumberDefaultColumnName + col.ID.ToString(); RowNumberTransformation.SetRowNumberColumnProperties(col); RowNumberColumn c = new RowNumberColumn(col); return(c); }
protected override void OnInit(EventArgs e) { base.OnInit(e); currentSite = SiteContext.CurrentSite; currentUser = MembershipContext.AuthenticatedUser; // Check 'Manage' permission var manageBlogs = currentUser.IsAuthorizedPerResource("cms.blog", "Manage"); // There is no sense to display (ALL) in blogs DDL when // user does not have manage blogs permission if (!manageBlogs) { DisplayAllRecord = false; } var condition = new WhereCondition().WhereEquals("NodeSiteID", currentSite.SiteID); if (!currentUser.IsGlobalAdministrator && !manageBlogs) { condition.Where(BlogHelper.GetBlogsWhere(currentUser.UserID, currentUser.UserName, null)); } // Culture priority column to handle duplicities var culturePriority = new RowNumberColumn("CulturePriority", "BlogID"); culturePriority.PartitionBy = "NodeID"; // Init Blog selector uniSelector.DisplayNameFormat = "{%BlogName%}"; uniSelector.SelectionMode = SelectionModeEnum.SingleDropDownList; uniSelector.WhereCondition = condition.ToString(true); uniSelector.ReturnColumnName = "BlogID"; uniSelector.AdditionalColumns = culturePriority.ToString(); uniSelector.ObjectType = "cms.blog"; uniSelector.ResourcePrefix = "unisiteselector"; uniSelector.AllowEmpty = false; uniSelector.AllowAll = false; uniSelector.OnAfterRetrieveData += uniSelector_OnAfterRetrieveData; // Preselect my blogs if (IsInMydesk && !RequestHelper.IsPostBack()) { uniSelector.Value = "##MYBLOGS##"; } }
private void propOutputColumn_PropertyValueChanged(object s, PropertyValueChangedEventArgs e) { if (e.ChangedItem.Label == "DataType") { RowNumberColumn col = (RowNumberColumn)propOutputColumn.SelectedObject; RowNumberColumn.RowNumberDataTypeType oldType = (RowNumberColumn.RowNumberDataTypeType)e.OldValue; if (oldType != col.DataType) //Reasign SelectedObject to reflect REaOnly Attirbute Change on Precision and Scale { propOutputColumn.SelectedObject = propOutputColumn.SelectedObject; } } else if (propOutputColumn.SelectedObject is RowNumberColumn && ((RowNumberColumn)propOutputColumn.SelectedObject).DataType == RowNumberColumn.RowNumberDataTypeType.DT_NUMERIC && (e.ChangedItem.Label == "Precision" || e.ChangedItem.Label == "Scale")) //reasign SelectedObject to reflect eventual chagne in the InitialValue or IncrementBy { propOutputColumn.SelectedObject = propOutputColumn.SelectedObject; } }
/// <summary> /// Processes rows in the inpuyt buffer /// </summary> /// <param name="inputID">ID of the input to process the input rows</param> /// <param name="buffer">Pipeline bufere with rows to process</param> public override void ProcessInput(int inputID, PipelineBuffer buffer) { if (!buffer.EndOfRowset) { while (buffer.NextRow()) { if (rowNumberColumns.Count == 0) { continue; } //foreach (RowNumberColumn col in rowNumberColumns) for (int i = 0; i < rowNumberColumns.Count; i++) { RowNumberColumn col = rowNumberColumns[i]; switch (col.DataType) { case DataType.DT_DBDATE: buffer.SetDate(col.Index, col.InitialValue); DateTime val = col.InitialValue; switch (col.IncrementType) { case IncrementByType.Day: val = val.AddDays(col.IncrementBy); break; case IncrementByType.Week: val = val.AddDays(col.IncrementBy * 7); break; case IncrementByType.Month: val = val.AddMonths(col.IncrementBy); break; case IncrementByType.Year: val = val.AddYears(col.IncrementBy); break; } col.InitialValue = val; continue; case DataType.DT_I1: buffer.SetSByte(col.Index, col.InitialValue); break; case DataType.DT_I2: buffer.SetInt16(col.Index, col.InitialValue); break; case DataType.DT_I4: buffer.SetInt32(col.Index, col.InitialValue); break; case DataType.DT_I8: buffer.SetInt64(col.Index, col.InitialValue); break; case DataType.DT_NUMERIC: buffer.SetDecimal(col.Index, col.InitialValue); break; case DataType.DT_R4: case DataType.DT_R8: buffer.SetDouble(col.Index, col.InitialValue); break; case DataType.DT_UI1: buffer.SetByte(col.Index, col.InitialValue); break; case DataType.DT_UI2: buffer.SetUInt16(col.Index, col.InitialValue); break; case DataType.DT_UI4: buffer.SetUInt32(col.Index, col.InitialValue); break; case DataType.DT_UI8: buffer.SetUInt64(col.Index, col.InitialValue); break; default: throw new Exception("Unsupported Data Type"); } col.InitialValue += col.IncrementBy; } } } }
/// <summary> /// PreExecute Phase for initialization of internal runtime structures /// </summary> public override void PreExecute() { base.PreExecute(); IDTSInput input = ComponentMetaData.InputCollection[0]; for (int i = 0; i < input.InputColumnCollection.Count; i++) { IDTSInputColumn column = input.InputColumnCollection[i]; } IDTSOutput output = ComponentMetaData.OutputCollection[0]; rowNumberColumns = new List <RowNumberColumn>(); //Iterate thorough OutputColumns collection and generate and prepare RowNumberColumns foreach (IDTSOutputColumn col in output.OutputColumnCollection) { if (col.CustomPropertyCollection.Count == 2) { RowNumberColumn numCol = new RowNumberColumn(); numCol.Index = BufferManager.FindColumnByLineageID(input.Buffer, col.LineageID); numCol.DataType = col.DataType; foreach (IDTSCustomProperty prop in col.CustomPropertyCollection) { switch (prop.Name) { case "IncrementBy": if (col.DataType == DataType.DT_DATE || col.DataType == DataType.DT_DBDATE) { string pv = prop.Value.ToString(); char ch = pv[pv.Length - 1]; switch (ch) { case 'd': numCol.IncrementType = IncrementByType.Day; break; case 'w': numCol.IncrementType = IncrementByType.Week; break; case 'm': numCol.IncrementType = IncrementByType.Month; break; case 'y': numCol.IncrementType = IncrementByType.Year; break; } numCol.IncrementBy = int.Parse(pv.Substring(0, pv.Length - 1)); } else { numCol.IncrementBy = prop.Value; numCol.IncrementType = IncrementByType.Value; } break; case "InitialValue": numCol.InitialValue = prop.Value; break; default: break; } } rowNumberColumns.Add(numCol); } } }