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); }
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); }
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); }
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); }
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); }
public void Setup() { _tlg = new TLG(); _output = new StringBuilder(); _xmlBuilder = XmlWriter.Create(_output); }