コード例 #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);
        }
コード例 #2
0
        public void Setup()
        {
            _datacardPath = "dataCardPath";
            _tlg          = new TLG();
            _tlgs         = new List <TLG> {
                _tlg
            };
            _tim  = new TIM();
            _tims = new List <TIM> {
                _tim
            };
            _linkedIds = new Dictionary <string, List <UniqueId> >();

            _spatialRecordMapperMock = new Mock <ISpatialRecordMapper>();
            _xmlReaderMock           = new Mock <IXmlReader>();
            _binaryReaderMock        = new Mock <IBinaryReader>();
            _sectionMapperMock       = new Mock <ISectionMapper>();
            _uniqueIdMapperMock      = new Mock <IUniqueIdMapper>();

            _tlg.A = "fileName";
            _xmlReaderMock.Setup(x => x.ReadTlgXmlData(_datacardPath, _tlg.A + ".xml")).Returns(_tims);

            _isoSpatialRows = new List <ISOSpatialRow>();
            _binaryReaderMock.Setup(x => x.Read(_datacardPath, _tlg.A + ".bin", _tim)).Returns(_isoSpatialRows);

            _sections = new List <DeviceElementUse>();
            _sectionMapperMock.Setup(x => x.Map(_tims, _isoSpatialRows)).Returns(_sections);

            _operationDataMapper = new OperationDataMapper(_xmlReaderMock.Object, _binaryReaderMock.Object, _spatialRecordMapperMock.Object, _sectionMapperMock.Object, _uniqueIdMapperMock.Object);
        }
コード例 #3
0
        public IEnumerable <TLG> Read(XPathNodeIterator nodeIterator)
        {
            var tlgs = new List <TLG>();

            if (nodeIterator.Count == 0)
            {
                return(tlgs);
            }

            foreach (XPathNavigator node in nodeIterator)
            {
                var tlg = new TLG
                {
                    A = GetValue(node, "A")
                };

                tlgs.Add(tlg);
            }

            return(tlgs);
        }
コード例 #4
0
        private TLG Map(OperationData operationData, string taskDataPath, TaskDocumentWriter taskDocumentWriter)
        {
            var tlgId = operationData.Id.FindIsoId() ?? "TLG" + operationData.Id.ReferenceId;

            taskDocumentWriter.Ids.Add(tlgId, operationData.Id);

            var tlg = new TLG {
                A = tlgId
            };
            var sections       = operationData.GetAllSections();
            var meters         = sections.SelectMany(x => x.GetWorkingDatas()).ToList();
            var spatialRecords = operationData.GetSpatialRecords != null?operationData.GetSpatialRecords() : null;

            var timHeader = _timHeaderMapper.Map(meters);

            _xmlReader.WriteTlgXmlData(taskDataPath, tlg.A + ".xml", timHeader);

            var binFilePath = Path.Combine(taskDataPath, tlg.A + ".bin");

            _binaryWriter.Write(binFilePath, meters, spatialRecords);

            return(tlg);
        }
コード例 #5
0
        private static void AreEqual(OperationData operationData, List <TimeScope> timeScopes, TLG tlg, string cardPath)
        {
            var fileName             = tlg.A + ".xml";
            var tlgXmlHeaderFilePath = Path.Combine(cardPath, "TASKDATA", fileName);

            Assert.IsTrue(File.Exists(tlgXmlHeaderFilePath));

            var tims = new XmlReader().ReadTlgXmlData(cardPath, fileName);

            TimAssert.AreEqual(timeScopes, tims);

            var sections            = operationData.GetAllSections();
            var meters              = sections.SelectMany(x => x.GetWorkingDatas()).ToList();
            var adaptSpatialRecords = operationData.GetSpatialRecords();
            var binaryReader        = new BinaryReader();
            var isoSpatialRecords   = binaryReader.Read(cardPath, tlg.A + ".bin", tims.First());

            IsoSpatialRecordAssert.AreEqual(adaptSpatialRecords, meters, isoSpatialRecords);
        }
コード例 #6
0
ファイル: TLGTest.cs プロジェクト: ysykhmd/ISOv4Plugin
 public void Setup()
 {
     _tlg        = new TLG();
     _output     = new StringBuilder();
     _xmlBuilder = XmlWriter.Create(_output);
 }