/// <summary>
        /// Read XAML formatted text into message types.
        /// </summary>
        /// <param name="contents"></param>
        public void ReadConfig(string contents)
        {
            Regex typeDetails = new Regex(@"(\w+)\s*=\s*""([\w\s]+)"""),
                  fieldReg = new Regex(@"<\s*Field\s+(.*?)\\\s*(Field\s*)?>", RegexOptions.Singleline);
            MatchCollection   detailMatches, fieldMatches;
            MessageFieldModel messageFieldModel;

            // Return if invalid
            if (null == contents)
            {
                return;
            }

            // Set general Type details
            if (typeDetails.IsMatch(contents))
            {
                detailMatches = typeDetails.Matches(contents);
                ReadProperties(detailMatches);
            }

            // Define fields for each field found
            if (fieldReg.IsMatch(contents))
            {
                fieldMatches = fieldReg.Matches(contents);
                foreach (Match fieldMatch in fieldMatches)
                {
                    messageFieldModel = new MessageFieldModel();
                    messageFieldModel.ReadConfig(fieldMatch.Groups[1].Value);

                    MessageFields.Add(messageFieldModel);
                }
            }
        }
Beispiel #2
0
 // Copy Constructor
 public MessageFieldModel(MessageFieldModel copy)
 {
     MessageFieldDetails = new MessageFieldDetailsModel(copy.MessageFieldDetails);
     CurrentField        = MessageFieldDetails;
     ZIndex = copy.ZIndex;
 }