protected virtual SearchColumnElement CreateSearchColumnElement(SearchColumnElement element, Schema.TableVarColumn column, string titleSeed, string pageType, bool isReadOnly) { MetaData metaData = null; if (column.MetaData != null) { metaData = DerivationUtility.ExtractTags(column.MetaData.Tags, "Search", pageType); } PrepareElement(element, metaData, column.MetaData, titleSeed, pageType, isReadOnly); element.Title = DerivationUtility.GetTag(metaData, "Caption", pageType, (column.ColumnType == Schema.TableVarColumnType.RowExists ? String.Empty : titleSeed) + DerivationUtility.GetTag(metaData, "Title", pageType, DerivationUtility.GetTag(column.MetaData, "Title", pageType, Schema.Object.Unqualify(column.Name)))); element.Hint = DerivationUtility.GetTag(metaData, "Hint", pageType, DerivationUtility.GetTag(column.MetaData, "Hint", pageType, String.Empty)); element.Width = Convert.ToInt32(DerivationUtility.GetTag(metaData, "Width", pageType, DerivationUtility.GetTag(column.MetaData, "Width", pageType, (20).ToString()))); element.Properties.AddOrUpdate("Width", element.Width.ToString()); element.Properties.AddOrUpdate("ColumnName", element.ColumnName); return(element); }
public override Element Build() { SearchElement search = new SearchElement(String.Format("{0}Search", _derivationInfo.MainSourceName)); _rootElement = search; search.ElementType = DerivationUtility.GetTag(_derivationInfo.ElaboratedExpression.MainElaboratedTableVar.TableVar.MetaData, "Search.ElementType", _derivationInfo.PageType, "Search"); search.Source = _derivationInfo.MainSourceName; CreateSearchElement(search, _derivationInfo.ElaboratedExpression.MainElaboratedTableVar.TableVar, String.Empty, _derivationInfo.PageType, false); List <string> searchColumnNames = new List <string>(); SearchColumnElement searchColumn; foreach (Schema.Order order in _derivationInfo.TableVar.Orders) { if (Convert.ToBoolean(DerivationUtility.GetTag(order.MetaData, "Visible", _derivationInfo.PageType, "True"))) { foreach (Schema.OrderColumn orderColumn in order.Columns) { string orderColumnName = Schema.Object.Qualify(orderColumn.Column.Name, DerivationUtility.MainElaboratedTableName); if (!searchColumnNames.Contains(orderColumnName)) { try { searchColumnNames.Add(orderColumnName); searchColumn = new SearchColumnElement(String.Format("{0}SearchColumn{1}", _derivationInfo.MainSourceName, orderColumnName)); searchColumn.ColumnName = orderColumnName; searchColumn.ElementType = DerivationUtility.GetTag(orderColumn.Column.MetaData, "Search.ElementType", _derivationInfo.PageType, "SearchColumn"); CreateSearchColumnElement(searchColumn, orderColumn.Column, _derivationInfo.ElaboratedExpression.Columns[orderColumnName].GetTitleSeed(), _derivationInfo.PageType, false); search.Elements.Add(searchColumn); } catch (Exception E) { throw new ServerException(ServerException.Codes.CannotConstructSearchColumn, E, orderColumnName, order.Name); } } } } } foreach (Schema.Key key in _derivationInfo.TableVar.Keys) { foreach (Schema.TableVarColumn column in key.Columns) { string keyColumnName = Schema.Object.Qualify(column.Name, DerivationUtility.MainElaboratedTableName); if (!searchColumnNames.Contains(keyColumnName)) { try { searchColumnNames.Add(keyColumnName); searchColumn = new SearchColumnElement(String.Format("{0}SearchColumn{1}", _derivationInfo.MainSourceName, keyColumnName)); searchColumn.ColumnName = keyColumnName; searchColumn.ElementType = DerivationUtility.GetTag(column.MetaData, "Search.ElementType", _derivationInfo.PageType, "SearchColumn"); CreateSearchColumnElement(searchColumn, column, _derivationInfo.ElaboratedExpression.Columns[keyColumnName].GetTitleSeed(), _derivationInfo.PageType, false); search.Elements.Add(searchColumn); } catch (Exception E) { throw new ServerException(ServerException.Codes.CannotConstructSearchColumn, E, keyColumnName, key.Name); } } } } return(_rootElement); }