Exemple #1
0
        private OperationData Map(TLG tlg, int?prescrptionId, string datacardPath, Dictionary <string, List <UniqueId> > linkedIds)
        {
            var tim        = _xmlReader.ReadTlgXmlData(datacardPath, tlg.A + ".xml").First();
            var isoRecords = _binaryReader.Read(datacardPath, tlg.A + ".bin", tim).ToList();
            var sections   = _sectionMapper.Map(new List <TIM> {
                tim
            }, isoRecords);
            var meters = sections != null?sections.SelectMany(x => x.GetWorkingDatas()).ToList() : new List <WorkingData>();

            var operationData = new OperationData
            {
                GetSpatialRecords    = () => _spatialRecordMapper.Map(isoRecords, meters),
                MaxDepth             = 0,
                GetDeviceElementUses = x => x == 0 ? sections : new List <DeviceElementUse>(),
                PrescriptionId       = prescrptionId
            };

            operationData.Id.UniqueIds.Add(_uniqueIdMapper.Map(tlg.A));

            if (linkedIds.ContainsKey(tlg.A))
            {
                foreach (var linkedId in linkedIds[tlg.A])
                {
                    operationData.Id.UniqueIds.Add(linkedId);
                }
            }

            return(operationData);
        }
Exemple #2
0
        private IEnumerable <WorkingData> Map(DLV dlv, IEnumerable <ISOSpatialRow> isoSpatialRows, int sectionId, int order)
        {
            var meters = new List <WorkingData>();

            if (_ddis.ContainsKey(Convert.ToInt32(dlv.A, 16)))
            {
                meters.Add(MapNumericMeter(dlv, sectionId, order));
                return(meters);
            }
            var meterCreator = _enumeratedMeterCreatorFactory.GetMeterCreator(Convert.ToInt32(dlv.A, 16));

            if (meterCreator != null)
            {
                var isoEnumeratedMeters = meterCreator.CreateMeters(isoSpatialRows);
                isoEnumeratedMeters.ForEach(x => x.Id.UniqueIds.Add(_uniqueIdMapper.Map("DLV" + order)));
                meters.AddRange(isoEnumeratedMeters);
            }
            return(meters);
        }