Beispiel #1
0
        /// <summary>
        /// The PopulateTrailer method populates the trailer elements
        /// in an XmlDictionary instance with the elements from the
        /// source dictionary.
        /// </summary>
        /// <param name="xmlDictionary">
        /// The XmlDictionary instance that is being populated.
        /// </param>
        /// <param name="fixDictionary">
        /// The FixDictionary instance that is the source of the
        /// elements the XmlDictionary is to be populated with.
        /// </param>
        private static void PopulateTrailer(XmlDictionary xmlDictionary, FixDictionary fixDictionary)
        {
            // REC: Iterate over all of the trailer elements in the
            // source dictionary and convert them into instances of
            // their corresponding XML serializable types:
            foreach (IFixDxElement dxElement in fixDictionary.Trailer)
            {
                if (dxElement is FixDxFieldReference)
                {
                    FixDxFieldReference    fieldReference = dxElement as FixDxFieldReference;
                    XmlFixDxFieldReference xmlReference   = new XmlFixDxFieldReference();
                    xmlReference.Name     = fieldReference.Name;
                    xmlReference.Required = fieldReference.Required;

                    xmlDictionary.Trailer.Elements.Add(xmlReference);
                }
                else if (dxElement is FixDxBlockReference)
                {
                    FixDxBlockReference    blockReference = dxElement as FixDxBlockReference;
                    XmlFixDxBlockReference xmlReference   = new XmlFixDxBlockReference();
                    xmlReference.Name     = blockReference.Name;
                    xmlReference.Required = blockReference.Required;

                    xmlDictionary.Trailer.Elements.Add(xmlReference);
                }
                else if (dxElement is FixDxGroupReference)
                {
                    FixDxGroupReference    groupReference = dxElement as FixDxGroupReference;
                    XmlFixDxGroupReference xmlReference   = new XmlFixDxGroupReference();
                    xmlReference.Name     = groupReference.Name;
                    xmlReference.Required = groupReference.Required;

                    XmlFixDxElements xmlElements = TranslateElements(groupReference.Elements);
                    foreach (object xmlElement in xmlElements.Elements)
                    {
                        xmlReference.Elements.Add(xmlElement);
                    }

                    xmlDictionary.Trailer.Elements.Add(xmlReference);
                }
            }
        }
Beispiel #2
0
        /// <summary>
        /// The PopulateMessages method populates the messages in
        /// an XmlDictionary instance with the message definitions
        /// from the source dictionary.
        /// </summary>
        /// <param name="xmlDictionary">
        /// The XmlDictionary instance that the message definitions
        /// are to be added to.
        /// </param>
        /// <param name="fixDictionary">
        /// The FixDictionary instance that is the source of the
        /// elements the XmlDictionary is to be populated with.
        /// </param>
        private static void PopulateMessages(XmlDictionary xmlDictionary, FixDictionary fixDictionary)
        {
            // REC: Iterate over all of the message definitions in the
            // source dictionary and convert them to XML serializable
            // representations for the serializable dictionary:
            foreach (FixDxMessage dxMessage in fixDictionary.Messages)
            {
                XmlFixDxMessage xmlMessage = new XmlFixDxMessage();
                xmlMessage.Name        = dxMessage.Name;
                xmlMessage.MsgType     = dxMessage.MsgType;
                xmlMessage.MsgCategory = dxMessage.MsgCategory;

                XmlFixDxElements xmlElements = TranslateElements(dxMessage.Elements);
                foreach (object xmlElement in xmlElements.Elements)
                {
                    xmlMessage.Elements.Add(xmlElement);
                }

                xmlDictionary.Messages.Entries.Add(xmlMessage);
            }
        }
Beispiel #3
0
        /// <summary>
        /// The TranslateElements method converts a collection of
        /// dictionary elements into their corresponding representation
        /// as instances of XML serializable classes. The method only
        /// translates field, group, and block references, since those
        /// are the only elements that should be found in collections
        /// of dictionary elements under normal usage.
        /// </summary>
        /// <param name="dxElements">
        /// The collection of field, group, and block references that
        /// is to be converted to XML serializable classes.
        /// </param>
        /// <returns>
        /// The resulting collection of XML serializable classes.
        /// </returns>
        private static XmlFixDxElements TranslateElements(FixDxCollection dxElements)
        {
            XmlFixDxElements result = new XmlFixDxElements();

            foreach (IFixDxElement dxElement in dxElements)
            {
                if (dxElement is FixDxFieldReference)
                {
                    FixDxFieldReference    dxReference  = dxElement as FixDxFieldReference;
                    XmlFixDxFieldReference xmlReference = new XmlFixDxFieldReference();
                    xmlReference.Name     = dxReference.Name;
                    xmlReference.Required = dxReference.Required;
                    result.Elements.Add(xmlReference);
                }
                else if (dxElement is FixDxGroupReference)
                {
                    FixDxGroupReference    dxReference  = dxElement as FixDxGroupReference;
                    XmlFixDxGroupReference xmlReference = new XmlFixDxGroupReference();
                    xmlReference.Name     = dxReference.Name;
                    xmlReference.Required = dxReference.Required;
                    XmlFixDxElements xmlElements = TranslateElements(dxReference.Elements);
                    foreach (object xmlElement in xmlElements.Elements)
                    {
                        xmlReference.Elements.Add(xmlElement);
                    }
                    result.Elements.Add(xmlReference);
                }
                else if (dxElement is FixDxBlockReference)
                {
                    FixDxBlockReference    dxReference  = dxElement as FixDxBlockReference;
                    XmlFixDxBlockReference xmlReference = new XmlFixDxBlockReference();
                    xmlReference.Name     = dxReference.Name;
                    xmlReference.Required = dxReference.Required;
                    result.Elements.Add(xmlReference);
                }
            }

            return(result);
        }
Beispiel #4
0
        /// <summary>
        /// The TranslateElements method converts a collection of
        /// dictionary elements into their corresponding representation
        /// as instances of XML serializable classes. The method only
        /// translates field, group, and block references, since those
        /// are the only elements that should be found in collections
        /// of dictionary elements under normal usage.
        /// </summary>
        /// <param name="dxElements">
        /// The collection of field, group, and block references that
        /// is to be converted to XML serializable classes.
        /// </param>
        /// <returns>
        /// The resulting collection of XML serializable classes.
        /// </returns>
        private static XmlFixDxElements TranslateElements(FixDxCollection dxElements)
        {
            XmlFixDxElements result = new XmlFixDxElements();
            foreach (IFixDxElement dxElement in dxElements)
            {
                if (dxElement is FixDxFieldReference)
                {
                    FixDxFieldReference dxReference = dxElement as FixDxFieldReference;
                    XmlFixDxFieldReference xmlReference = new XmlFixDxFieldReference();
                    xmlReference.Name = dxReference.Name;
                    xmlReference.Required = dxReference.Required;
                    result.Elements.Add(xmlReference);
                }
                else if (dxElement is FixDxGroupReference)
                {
                    FixDxGroupReference dxReference = dxElement as FixDxGroupReference;
                    XmlFixDxGroupReference xmlReference = new XmlFixDxGroupReference();
                    xmlReference.Name = dxReference.Name;
                    xmlReference.Required = dxReference.Required;
                    XmlFixDxElements xmlElements = TranslateElements(dxReference.Elements);
                    foreach (object xmlElement in xmlElements.Elements)
                    {
                        xmlReference.Elements.Add(xmlElement);
                    }
                    result.Elements.Add(xmlReference);

                }
                else if (dxElement is FixDxBlockReference)
                {
                    FixDxBlockReference dxReference = dxElement as FixDxBlockReference;
                    XmlFixDxBlockReference xmlReference = new XmlFixDxBlockReference();
                    xmlReference.Name = dxReference.Name;
                    xmlReference.Required = dxReference.Required;
                    result.Elements.Add(xmlReference);
                }
            }

            return result;
        }