CalDavSynchronizer.DataAccess.WebDavDataAccess.TryDeleteEntity C# (CSharp) Метод

TryDeleteEntity() публичный Метод

public TryDeleteEntity ( WebResourceName uri, string etag ) : Task
uri WebResourceName
etag string
Результат Task
    public async Task<bool> TryDeleteEntity (WebResourceName uri, string etag)
    {
      s_logger.DebugFormat ("Deleting entity '{0}'", uri);

      var absoluteEventUrl = new Uri (_serverUrl, uri.OriginalAbsolutePath);

      s_logger.DebugFormat ("Absolute entity location: '{0}'", absoluteEventUrl);

      IHttpHeaders responseHeaders = null;

      try
      {
        responseHeaders = await _webDavClient.ExecuteWebDavRequestAndReturnResponseHeaders (
            absoluteEventUrl,
            "DELETE",
            null,
            etag,
            null,
            null,
            string.Empty);
      }
      catch (WebDavClientException x) when (x.StatusCode == HttpStatusCode.NotFound  || x.StatusCode == HttpStatusCode.PreconditionFailed)
      {
          return false;
      }

      IEnumerable<string> errorValues;
      if (responseHeaders.TryGetValues ("X-Dav-Error", out errorValues))
      {
        var errorList = errorValues.ToList();
        if (errorList.Any (v => v != "200 No error"))
          throw new Exception (string.Format ("Error deleting entity with url '{0}' and etag '{1}': {2}", uri, etag, string.Join (",", errorList)));
      }

      return true;
    }