/// <summary> /// Export using browse encoder /// </summary> /// <param name="endpoint"></param> /// <param name="stream"></param> /// <param name="diagnostics"></param> /// <param name="ct"></param> /// <returns></returns> private async Task BrowseEncodeModelAsync(EndpointModel endpoint, DiagnosticsModel diagnostics, Stream stream, CancellationToken ct) { using (var encoder = new BrowseStreamEncoder(_outer._client, endpoint, stream, Encoding, diagnostics, _outer._logger, null)) { await encoder.EncodeAsync(ct); } }
/// <inheritdoc/> public async Task ArchiveAsync(CancellationToken ct) { var diagnostics = new List <OperationResultModel>(); // Write manifest // Write nodes IEnumerable <string> historyNodes = null; using (var stream = _archive.GetStream("_nodes", FileMode.CreateNew)) using (var encoder = new BrowseStreamEncoder(_client, _endpoint, stream, _contentType, null, _logger, _elevation)) { await encoder.EncodeAsync(ct); historyNodes = encoder.HistoryNodes; diagnostics.AddRange(encoder.Diagnostics); } if (historyNodes != null) { foreach (var nodeId in historyNodes) { using (var stream = _archive.GetStream("_history/" + nodeId, FileMode.CreateNew)) using (var encoder = new HistoryStreamEncoder(_client, _endpoint, stream, _contentType, nodeId, _logger, _elevation, _startTime, _endTime, _maxValues)) { await encoder.EncodeAsync(ct); diagnostics.AddRange(encoder.Diagnostics); } } } using (var stream = _archive.GetStream("_diagnostics", FileMode.CreateNew)) using (var encoder = new ModelEncoder(stream, _contentType)) { foreach (var operation in diagnostics) { encoder.WriteEncodeable(null, operation, operation.GetType()); } } }