async Task <DirectMethodReportGeneratorMetadata> ProcessSenderTestResults( DirectMethodTestResult dmSenderTestResult, NetworkControllerStatus networkControllerStatus, bool isWithinTolerancePeriod, ITestResultCollection <TestOperationResult> senderTestResults) { ulong networkOnSuccess = 0; ulong networkOffSuccess = 0; ulong networkOnToleratedSuccess = 0; ulong networkOffToleratedSuccess = 0; ulong networkOnFailure = 0; ulong networkOffFailure = 0; HttpStatusCode statusCode = dmSenderTestResult.HttpStatusCode; if (!NetworkControllerType.Offline.Equals(this.NetworkControllerType)) { if (HttpStatusCode.OK.Equals(statusCode)) { networkOnSuccess++; } else { networkOnFailure++; } } else if (NetworkControllerStatus.Disabled.Equals(networkControllerStatus)) { if (HttpStatusCode.OK.Equals(statusCode)) { networkOnSuccess++; } else { if (isWithinTolerancePeriod) { networkOnToleratedSuccess++; } else { networkOnFailure++; } } } else if (NetworkControllerStatus.Enabled.Equals(networkControllerStatus)) { if (HttpStatusCode.NotFound.Equals(statusCode)) { networkOffSuccess++; } else if (HttpStatusCode.OK.Equals(statusCode)) { if (isWithinTolerancePeriod) { networkOffToleratedSuccess++; } else { networkOffFailure++; } } else if (HttpStatusCode.InternalServerError.Equals(statusCode)) { networkOffFailure++; } else { throw new InvalidDataException($"Unexpected HttpStatusCode of {statusCode}"); } } bool hasSenderResult = await senderTestResults.MoveNextAsync(); return(new DirectMethodReportGeneratorMetadata { NetworkOnSuccess = networkOnSuccess, NetworkOffSuccess = networkOffSuccess, NetworkOnToleratedSuccess = networkOnToleratedSuccess, NetworkOffToleratedSuccess = networkOffToleratedSuccess, NetworkOnFailure = networkOnFailure, NetworkOffFailure = networkOffFailure, HasSenderResult = hasSenderResult }); }