private void UpdateInstance() { if (!EventArgs.Success) { return; } var response = EventArgs.Response; if (_lastConnectionResponse != null) { var timeDiff = (response.Total.At - _lastConnectionResponse.Total.At).TotalSeconds; var inDiff = (long)((response.Total.InBytesTotal - _lastConnectionResponse.Total.InBytesTotal) / timeDiff); var outDiff = (long)((response.Total.OutBytesTotal - _lastConnectionResponse.Total.OutBytesTotal) / timeDiff); ManagedInstance.Statistics.DownloadTotal = EventArgs.Response.Total.InBytesTotal; ManagedInstance.Statistics.DownloadPerSecond = inDiff; ManagedInstance.Statistics.UploadTotal = EventArgs.Response.Total.OutBytesTotal; ManagedInstance.Statistics.UploadPerSecond = outDiff; ManagedInstance.Statistics.OnlineDeviceCount = EventArgs.Response.AvailableConnections; } _lastConnectionResponse = response; }
public async Task <GetConnetionResponse> GetConnectionsAsync(CancellationToken token) { var request = GetBaseRequest("connections"); var response = await _restClient.ExecuteTaskAsync(request, token); HandleRestErrors(response); var result = new GetConnetionResponse(); var jsonSettings = new JsonSerializerSettings { ContractResolver = new LowercaseContractResolver() }; var desResult = JsonConvert.DeserializeObject <Dictionary <string, GetConnetionResponse.TotalDetails> >(response.Content, jsonSettings); result.Total = desResult.Single(x => x.Key == "total").Value; result.AvailableConnections = desResult.Count; return(result); }
private static void AssertGetConnectionsRequest(GetConnetionResponse response) { // total sub object Assert.IsNotNull(response.Total); var total = response.Total; if (total == null) { return; } // total.At property DateTime dummy; Assert.IsTrue(DateTime.TryParse(total.At.ToLongTimeString(), out dummy)); Assert.IsNotNull(dummy); // total.InBytesTotal property Assert.IsTrue(total.InBytesTotal >= 0); // total.OutBytesTotal property Assert.IsTrue(total.OutBytesTotal >= 0); }
public GetConnetionResponse GetConnetions() { var customRestClient = GetRestClient(); var request = GetBaseRequest("connections"); var response = customRestClient.Execute(request); HandleRestErrors(response); var result = new GetConnetionResponse(); var jsonSettings = new JsonSerializerSettings { ContractResolver = new LowercaseContractResolver() }; var desResult = JsonConvert.DeserializeObject <Dictionary <string, GetConnetionResponse.TotalDetails> >(response.Content, jsonSettings); result.Total = desResult.Single(x => x.Key == "total").Value; result.AvailableConnections = desResult.Count - 1; return(result); }