protected override Task OnSave(Uri resourceUri, StorageContent content, CancellationToken cancellationToken)
{
var tasks = new List<Task>();
tasks.Add(_primaryStorage.Save(resourceUri, content, cancellationToken));
foreach (var storage in _secondaryStorage)
{
var secondaryResourceUri = new Uri(resourceUri.ToString()
.Replace(_primaryStorage.BaseAddress.ToString(), storage.BaseAddress.ToString()));
var secondaryContent = content;
if (_writeSecondaryStorageContentInterceptor != null)
{
secondaryContent = _writeSecondaryStorageContentInterceptor(
_primaryStorage.BaseAddress,
resourceUri,
storage.BaseAddress,
secondaryResourceUri, content);
}
tasks.Add(storage.Save(secondaryResourceUri, secondaryContent, cancellationToken));
}
return Task.WhenAll(tasks);
}