internal static List <string> GetOutputDepVariables(DataColumn column) { List <string> list = new List <string>(); Variable variable = column.ExtendedProperties["Variable"] as Variable; if (variable != null) { string text = variable.Value as string; if (DDIHelper.IsLambdaExpression(text)) { list = ExpressionCalculator.BuildColumnExpression(text).DependentColumns; } else { list.AddRange(DDIHelper.GetCodeBehindRegisteredDepVariables(column)); } } return(list); }
internal override void LoadMetaData(DataRow input, DataTable dataTable, DataObjectStore store, IList <string> outputVariables, out Dictionary <string, ValidatorInfo[]> validators, out IList <string> readOnlyProperties, out IList <string> notAccessProperties, Service service) { base.LoadMetaData(input, dataTable, store, outputVariables, out validators, out readOnlyProperties, out notAccessProperties, service); bool flag = true.Equals(dataTable.Rows[0]["IsReadOnly"]); foreach (object obj in dataTable.Columns) { DataColumn dataColumn = (DataColumn)obj; Variable variable = dataColumn.ExtendedProperties["Variable"] as Variable; if (variable != null) { if (outputVariables == null || outputVariables.Contains(dataColumn.ColumnName, StringComparer.OrdinalIgnoreCase)) { if (this.IncludeValidator) { ValidatorInfo[] array = ValidatorHelper.ValidatorsFromPropertyDefinition(dataColumn.ExtendedProperties["PropertyDefinition"] as ProviderPropertyDefinition); if (array.Length != 0) { validators[dataColumn.ColumnName] = array; } } if (this.IncludeNotAccessProperty) { bool?flag2 = this.IsVariableAccessible(input, dataTable, store, variable, DDIHelper.GetOutputDepVariables(dataColumn)); if (flag2.IsFalse()) { notAccessProperties.Add(variable.Name); } } } if (this.IncludeReadOnlyProperty) { bool?flag3 = this.IsVariableSettable(input, dataTable, store, variable, service, DDIHelper.GetCodeBehindRegisteredDepVariables(dataColumn)); if (flag3.IsFalse() || flag) { readOnlyProperties.Add(variable.Name); } } } } }