/// <summary> /// Method that reads the datareader and extracts the template and field info /// </summary> /// <param name="dataReader"></param> private void ReadTemplateData(IDnaDataReader dataReader) { if (dataReader.HasRows) { //Clear existing field data List ready for new set _uiFieldData.Clear(); if (dataReader.Read()) { _name = dataReader.GetStringNullAsEmpty("TemplateName"); _UITemplateID = dataReader.GetInt32NullAsZero("UITemplateID"); _builderGUID = dataReader.GetGuid("BuilderGUID"); if (dataReader.NextResult()) { while (dataReader.Read()) { UIField uiField = new UIField(InputContext); uiField.LoadFieldFromDatabase(dataReader); _uiFieldData.Add(uiField.Name, uiField); } } } } else { AddErrorXml("ReadTemplateData", "No template data returned, invalid UI Template ID.", null); _hasErrors = true; } }
/// <summary> /// Loads the internal fields from a given templateXML element /// </summary> /// <param name="templateXML">The template data XMLElement </param> /// <param name="isTemplateFormat">Whether the data is a straight match to the internal format</param> private void StoreTemplateDataFromXML(XmlElement templateXML, bool isTemplateFormat) { if (isTemplateFormat) { RootElement.RemoveAll(); RootElement.AppendChild(ImportNode(templateXML)); XmlNode templateIDElement = RootElement.SelectSingleNode("./UITEMPLATE/@UITEMPLATEID"); if (templateIDElement != null) { int tmpUITemplateID; Int32.TryParse(templateIDElement.InnerText, out tmpUITemplateID); UITemplateID = tmpUITemplateID; } XmlNode builderGUIDElement = RootElement.SelectSingleNode("./UITEMPLATE/BUILDERGUID"); if (builderGUIDElement != null) { BuilderGUID = new Guid(builderGUIDElement.InnerText); } XmlNode nameElement = RootElement.SelectSingleNode("./UITEMPLATE/NAME"); if (nameElement != null) { Name = nameElement.InnerText; } _uiFieldData.Clear(); foreach (XmlElement field in RootElement.SelectNodes("./UITEMPLATE/UIFIELDS/UIFIELD")) { UIField uiField = new UIField(InputContext); uiField.LoadFieldFromXml(field); _uiFieldData.Add(uiField.Name, uiField); } } else { FillTemplateData(templateXML); } CreateUpdateTemplateData(); }
/// <summary> /// Adds a given field to the internal field data /// </summary> /// <param name="uiField"></param> public void AddField(UIField uiField) { _uiFieldData.Add(uiField.Name, uiField); }