Ejemplo n.º 1
0
        /// <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;
            }
        }
Ejemplo n.º 2
0
        /// <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();
        }
Ejemplo n.º 3
0
 /// <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);
 }