CalDavSynchronizer.DataAccess.CalDavDataAccess.CreateNewEntity C# (CSharp) Method

CreateNewEntity() protected method

protected CreateNewEntity ( string name, string content ) : string>>.Task
name string
content string
return string>>.Task
    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);
    }