protected async Task<EntityVersion<WebResourceName, string>> CreateNewEntity (string name, string content)
{
var eventUrl = new Uri (_serverUrl, name);
s_logger.DebugFormat ("Creating entity '{0}'", eventUrl);
IHttpHeaders responseHeaders = await _webDavClient.ExecuteWebDavRequestAndReturnResponseHeaders(
eventUrl,
"PUT",
null,
null,
"*",
"text/calendar",
content);
Uri effectiveEventUrl;
if (responseHeaders.Location != null)
{
s_logger.DebugFormat ("Server sent new location: '{0}'", responseHeaders.Location);
effectiveEventUrl = responseHeaders.Location.IsAbsoluteUri ? responseHeaders.Location : new Uri (_serverUrl, responseHeaders.Location);
s_logger.DebugFormat ("New entity location: '{0}'", effectiveEventUrl);
}
else
{
effectiveEventUrl = eventUrl;
}
var etag = responseHeaders.ETag;
string version;
if (etag != null)
{
version = etag;
}
else
{
version = await GetEtag (effectiveEventUrl);
}
return new EntityVersion<WebResourceName, string> (new WebResourceName(effectiveEventUrl), version);
}