/// <summary> /// This method is used to modify(Update and set) AutomaticSourcingColumn properties. ///Update/Set ParameterType ///Update/Set PeriodType ///Update/Set TargetType ///Update/Set Measure value ///Update/Set Attribute ///Update/Set CellPropertyAllocationData ///Update/Set group ///Update/Set ColumnTargetItem ///Update/Set dateFormat ///Update/Set TagName ///finally put the column in the convenient Persistent List. /// </summary> /// <param name="col">The given column</param> /// <param name="param">The property we want to modify</param> public void updateColumnParam(AutomaticSourcingColumn col, object param, object targetOperator = null, bool isDateFormat = false) { if (col == null) { return; } int index = this.getAutomaticSourcingColumnIndex(col.columnIndex); if (index == -1 && !col.toNew) { return; } //Update/Set ParameterType if (param is Kernel.Application.ParameterType) { if ((Kernel.Application.ParameterType)param == Application.ParameterType.NULL) { this.automaticSourcingColumnListChangeHandler.Items[index].RestoreDefault(); } else { this.automaticSourcingColumnListChangeHandler.Items[index].parameterType = (Kernel.Application.ParameterType)param; } } //Update/Set TargetType else if (param is Kernel.Application.TargetType && param != null) { this.automaticSourcingColumnListChangeHandler.Items[index].targetType = (Kernel.Application.TargetType)param; } //Update/Set Measure value else if (param is Kernel.Domain.Measure && this.automaticSourcingColumnListChangeHandler.Items[index].parameterType == Application.ParameterType.MEASURE) { this.automaticSourcingColumnListChangeHandler.Items[index].measure = (Kernel.Domain.Measure)param; } //Update/Set Attribute else if (param != null && param is Kernel.Domain.Attribute && this.automaticSourcingColumnListChangeHandler.Items[index].parameterType == Application.ParameterType.SCOPE) { this.automaticSourcingColumnListChangeHandler.Items[index].attribute = (Kernel.Domain.Attribute)param; } ///Update/Set CellPropertyAllocationData else if (param is CellPropertyAllocationData) { this.automaticSourcingColumnListChangeHandler.Items[index].allocationData = (CellPropertyAllocationData)param; } ///Update/Set group else if (param is BGroup && param != null) { this.automaticSourcingColumnListChangeHandler.Items[index].targetGroup = (BGroup)param; } ///Update/Set ColumnTargetItem else if (param != null && param is ColumnTargetItem && this.automaticSourcingColumnListChangeHandler.Items[index].parameterType == Application.ParameterType.TARGET) { ColumnTargetItem colTargetItem = param as ColumnTargetItem; if (targetOperator != null) { colTargetItem.targetOperator = TargetItem.getOperatorByStringValue(targetOperator.ToString()); } if (colTargetItem.oid.HasValue) { if (colTargetItem.toUpdate) { this.automaticSourcingColumnListChangeHandler.Items[index].UpdateColumnTargetItem(colTargetItem); } else if (colTargetItem.toDelete) { this.automaticSourcingColumnListChangeHandler.Items[index].RemoveColumnTargetItem(colTargetItem); } } else { if (colTargetItem.toNew) { this.automaticSourcingColumnListChangeHandler.Items[index].ForgetColumnTargetItem(colTargetItem); this.automaticSourcingColumnListChangeHandler.Items[index].AddColumnTargetItem(colTargetItem); } else if (colTargetItem.toForget) { this.automaticSourcingColumnListChangeHandler.Items[index].ForgetColumnTargetItem(colTargetItem); } } } ///Update/Set dateFormat and TagName else if (param is string) { if (this.automaticSourcingColumnListChangeHandler.Items[index].parameterType == Application.ParameterType.PERIOD) { if (isDateFormat) { this.automaticSourcingColumnListChangeHandler.Items[index].dateFormat = param.ToString(); } else { this.automaticSourcingColumnListChangeHandler.Items[index].periodName = param.ToString(); } } if (this.automaticSourcingColumnListChangeHandler.Items[index].parameterType == Application.ParameterType.TAG) { this.automaticSourcingColumnListChangeHandler.Items[index].tagName = param.ToString(); } } ///Putting the column in the convenient Persistent List. if (col.toUpdate) { this.UpdateColumn(col); } else if (col.toDelete) { this.RemoveColumn(col); } else if (col.toNew) { this.AddColumn(col); } else if (col.toForget) { this.ForgetColumn(col); } }