public virtual ICellTemplate CreateTemplate(XNode cellNode, EntityMetadata entityMetadata) { if (!IsInitialized) { throw new InvalidOperationException("Factory is not initialized."); } var cellMetadata = MetadataFactory.GetMetadata(cellNode, entityMetadata, LanguageCode); if (cellMetadata.HasAttributeType("boolean")) { return(new BooleanControlTemplate(cellMetadata, ValidationGroup, CellBindings)); } if (cellMetadata.HasAttributeType("datetime")) { return(new DateTimeControlTemplate(cellMetadata, ValidationGroup, CellBindings)); } if (cellMetadata.HasAttributeType("integer")) { return(new IntegerControlTemplate(cellMetadata, ValidationGroup, CellBindings)); } if (cellMetadata.HasAttributeType("memo")) { return(new MemoControlTemplate(cellMetadata, ValidationGroup, CellBindings)); } if (cellMetadata.HasAttributeType("picklist")) { return(new PicklistControlTemplate(cellMetadata, ValidationGroup, CellBindings)); } if (cellMetadata.HasAttributeType("string")) { if (string.Equals("email", cellMetadata.Format, StringComparison.InvariantCultureIgnoreCase)) { return(new EmailStringControlTemplate(cellMetadata, ValidationGroup, CellBindings)); } return(new StringControlTemplate(cellMetadata, ValidationGroup, CellBindings)); } if (cellMetadata.HasAttributeType("money")) { return(new MoneyControlTemplate(cellMetadata, ValidationGroup, CellBindings)); } if (cellMetadata.AttributeType == null) { return(new EmptyCellTemplate()); } return(new UnsupportedControlTemplate(cellMetadata, ValidationGroup, CellBindings, EnableUnsupportedFields)); }
/// <summary> /// Method to create the cell template. /// </summary> /// <param name="cellNode"></param> /// <param name="entityMetadata"></param> /// <returns></returns> /// <exception cref="InvalidOperationException"></exception> /// <exception cref="ApplicationException"></exception> public override ICellTemplate CreateTemplate(System.Xml.Linq.XNode cellNode, Microsoft.Xrm.Sdk.Metadata.EntityMetadata entityMetadata) { if (!IsInitialized) { throw new InvalidOperationException("Factory is not initialized."); } ICellMetadata cellMetadata; if (MetadataFactory is FormXmlCellMetadataFactory) { var formMetadataFactory = MetadataFactory as FormXmlCellMetadataFactory; cellMetadata = formMetadataFactory.GetMetadata(cellNode, entityMetadata, LanguageCode, ToolTipEnabled, RecommendedFieldsRequired, ValidationText, WebFormMetadata, ForceAllFieldsRequired, EnableValidationSummaryLinks, ValidationSummaryLinkText, Messages, BaseOrganizationLanguageCode); } else { cellMetadata = MetadataFactory.GetMetadata(cellNode, entityMetadata, LanguageCode); } return(CreateCellTemplate(cellMetadata, entityMetadata)); }