AgGateway.ADAPT.ISOv4Plugin.ExportMappers.BinaryWriter.WriteMeterValues C# (CSharp) Метод

WriteMeterValues() приватный Метод

private WriteMeterValues ( AgGateway.ADAPT.ApplicationDataModel.LoggedData.SpatialRecord spatialRecord, List meters, MemoryStream memoryStream, int>.Dictionary metersByIsoIds ) : void
spatialRecord AgGateway.ADAPT.ApplicationDataModel.LoggedData.SpatialRecord
meters List
memoryStream System.IO.MemoryStream
metersByIsoIds int>.Dictionary
Результат void
        private void WriteMeterValues(SpatialRecord spatialRecord, List<WorkingData> meters, MemoryStream memoryStream, Dictionary<WorkingData, int> metersByIsoIds)
        {
            var dlvOrders = metersByIsoIds.Values.Distinct();
            Dictionary<int, uint> dlvsToWrite;

            if (dlvOrders.Contains(-1))
                dlvsToWrite = GetMeterValuesAndAssignDlvNumbers(spatialRecord, meters);
            else
                dlvsToWrite = GetMeterValues(spatialRecord, meters, metersByIsoIds);

            var numberOfMeters = (byte)dlvsToWrite.Count;
            var numberOfMetersStream = new MemoryStream();
            numberOfMetersStream.WriteByte(numberOfMeters);
            numberOfMetersStream.WriteTo(memoryStream);

            foreach (var key in dlvsToWrite.Keys)
            {
                var order = (byte) key;
                var value = dlvsToWrite[key];

                memoryStream.WriteByte(order);

                var valueStream = new MemoryStream(BitConverter.GetBytes(value));
                valueStream.WriteTo(memoryStream);
            }
        }