private Task SaveToStorage(MemoryStorageFactory storageFactory, PackageMonitoringStatus status)
        {
            var json    = JsonConvert.SerializeObject(status, JsonSerializerUtility.SerializerSettings);
            var content = new StringStorageContentWithAccessCondition(
                json,
                AccessCondition.GenerateEmptyCondition(),
                "application/json");

            return(SaveToStorage(storageFactory, status.State, status.Package, content));
        }
        private async Task SaveAsync(PackageMonitoringStatus status, CancellationToken token)
        {
            var storage = GetStorage(status.State);

            var packageStatusJson = JsonConvert.SerializeObject(status, JsonSerializerUtility.SerializerSettings);
            var storageContent    = new StringStorageContentWithAccessCondition(
                packageStatusJson,
                status.ExistingState[status.State],
                "application/json");

            var packageUri = GetPackageUri(storage, status.Package);

            await storage.SaveAsync(packageUri, storageContent, token);
        }