Example #1
0
        private void CreateDEs(DataString dataString)
        {
            DataElements = new DataElementCollection();

            DataString dataElementsString = dataString.SubString(readerIndex);

            List <int> dataElementsBitMap = BitMaps.GetPresentDataElements();

            foreach (int de in dataElementsBitMap)
            {
                if (DataDefinitionDictionary.ContainsElementDefinition(de))
                {
                    DataDefinition dataDef = DataDefinitionDictionary.GetDataDefinition(de);

                    int dataElementsReaderIndex = 0;

                    try
                    {
                        DataString data = dataDef.GetAllData(dataElementsString, ref dataElementsReaderIndex);

                        dataElementsString = dataElementsString.SubString(dataElementsReaderIndex);

                        DataElements.AddOrReplaceDataElement(new DataElement(de, dataDef, data));
                    }
                    catch (Exception ex)
                    {
                        throw new Exception("Missing or incorrectly defined DE: " + de + ".", ex);
                    }
                }
                else
                {
                    throw new Exception("Missing definition, DE: " + de + ".");
                }
            }
        }
        public DataElement(int number, DataDefinition dataDefinition, HashSet <DataElement> subElements)
        {
            SubElements = new DataElementCollection();
            Number      = number;
            Definition  = dataDefinition;

            if (AreValidSubElements(dataDefinition, subElements))
            {
                foreach (DataElement dataElement in subElements)
                {
                    SubElements.AddOrReplaceDataElement(dataElement);
                }
            }
            else
            {
                throw new ArgumentException("DataDefinition does not match subElements definition.");
            }
        }
        public DataElement(int number, DataDefinition dataDefinition, DataString data)
        {
            SubElements = new DataElementCollection();
            Number      = number;
            Definition  = dataDefinition;

            if (dataDefinition.HasSubfields())
            {
                foreach (KeyValuePair <int, DataDefinition> kvp in dataDefinition.SubDefinitions)
                {
                    int            fieldNumber     = kvp.Key;
                    DataDefinition fieldDefinition = kvp.Value;
                    DataString     fieldData       = dataDefinition.GetSubFieldData(data, fieldNumber);
                    SubElements.AddOrReplaceDataElement(new DataElement(fieldNumber, fieldDefinition, fieldData));
                }
            }
            else
            {
                _data = data;
            }
        }
Example #4
0
 public Message(MessageTypeIdentifier mti, DataElementsDefinition dataElementDefinition)
 {
     MessageTypeIdentifier = mti;
     BitMaps      = new BitMapCollection();
     DataElements = new DataElementCollection();
 }