/// <summary>
        /// If uploaded, returns etag for the results table.
        /// Otherwise, if precondition failed, returns null.
        /// </summary>
        private async Task <string> Upload(AzureBenchmarkResult[] newAzureBenchmarks)
        {
            string newEtag;

            if (etag != null) // blob already exists
            {
                newEtag = await storage.PutAzureExperimentResults(expId, newAzureBenchmarks, UploadBlobMode.ReplaceExact, etag);
            }
            else // blob didn't exist
            {
                newEtag = await storage.PutAzureExperimentResults(expId, newAzureBenchmarks, UploadBlobMode.CreateNew);
            }
            return(newEtag);
        }
        private async Task <bool> Upload(AzureBenchmarkResult[] newAzureBenchmarks)
        {
            bool success;

            if (etag != null) // blob already exists
            {
                success = await storage.PutAzureExperimentResults(expId, newAzureBenchmarks, UploadBlobMode.ReplaceExact, etag);
            }
            else // blob didn't exist
            {
                success = await storage.PutAzureExperimentResults(expId, newAzureBenchmarks, UploadBlobMode.CreateNew);
            }
            return(success);
        }