public override async Task<SynchronizationReport> PerformAsync(string destination)
{
FileAndPages fileAndPages = null;
Storage.Batch(accessor => fileAndPages = accessor.GetFile(FileName, 0, 0));
var request =
(HttpWebRequest)
WebRequest.Create(destination + "/synchronization/delete?fileName=" + Uri.EscapeDataString(FileName));
request.Method = "DELETE";
request.ContentLength = 0;
request.AddHeaders(fileAndPages.Metadata);
request.Headers[SyncingMultipartConstants.SourceServerInfo] = ServerInfo.AsJson();
try
{
using (var response = await request.GetResponseAsync())
{
using (var stream = response.GetResponseStream())
{
return new JsonSerializer().Deserialize<SynchronizationReport>(new JsonTextReader(new StreamReader(stream)));
}
}
}
catch (WebException exception)
{
throw exception.BetterWebExceptionError();
}
}