private async Task GetConfigsAsync(ITransferHandler handler) { using (var ms = new MemoryStream()) { for (var i = 0; i < _folders.Length; i++) { var folder = _folders[i]; var platform = (ClientPlatform)(i / Categories); var category = (LogCategory)(i % Platforms); var config = new LogConfig(new RequestHeader(platform, RequestHeader.EmptyVersion, string.Empty, string.Empty), category, folder); var buffer = config.NetworkBuffer; ms.Write(buffer, 0, buffer.Length); } await handler.WriteAsync(ms.ToArray()); } }
private async Task GetVersionAsync(ITransferHandler handler) { var networkBuffer = Constants.NoDataBytes; var data = await handler.ReadAsync(); var package = _packages[BitConverter.ToInt32(data, 0)]; if (package != null) { networkBuffer = package.Header.NetworkBuffer; } await handler.WriteAsync(networkBuffer); }
private async Task GetVersionsAsync(ITransferHandler handler) { var networkBuffer = Constants.NoDataBytes; var totalBufferSize = 0; foreach (var p in _packages) { if (p != null) { totalBufferSize += p.Header.NetworkBuffer.Length; } } if (totalBufferSize > 0) { using (var ms = new MemoryStream(totalBufferSize)) { foreach (var p in _packages) { if (p != null) { var buffer = p.Header.NetworkBuffer; ms.Write(buffer, 0, buffer.Length); } } networkBuffer = ms.GetBuffer(); } } await handler.WriteAsync(networkBuffer); }
private async Task DownloadPackageAsync(ITransferHandler handler) { var networkBuffer = Constants.NoDataBytes; var header = new RequestHeader().Setup(new MemoryStream(await handler.ReadAsync())); var package = _packages[(int)header.ClientPlatform]; if (package != null && package.Header.Version > header.Version) { networkBuffer = package.Data; } await handler.WriteAsync(networkBuffer); }