public async Task<Uri> AddResource (string name, bool useRandomUri)
{
var homeSetUri = await GetCalendarHomeSetUriOrNull (ConnectionTester.RequiresAutoDiscovery (_serverUrl)) ?? _serverUrl;
var resourceName = useRandomUri ? Guid.NewGuid() + "/" : name + "/";
var newResourceUri = new Uri (homeSetUri, resourceName);
await _webDavClient.ExecuteWebDavRequestAndReturnResponseHeaders (
newResourceUri,
"MKCOL",
null,
null,
null,
"application/xml",
@"<?xml version='1.0'?>
<D:mkcol xmlns:D=""DAV:"" xmlns:A=""urn:ietf:params:xml:ns:carddav"">
<D:set>
<D:prop>
<D:resourcetype>
<D:collection/>
<A:addressbook/>
</D:resourcetype>
</D:prop>
</D:set>
</D:mkcol>"
);
await _webDavClient.ExecuteWebDavRequestAndReturnResponseHeaders (
newResourceUri,
"PROPPATCH",
0,
null,
null,
"application/xml",
string.Format (
@"<?xml version='1.0'?>
<D:propertyupdate xmlns:D=""DAV:"">
<D:set>
<D:prop>
<D:displayname>{0}</D:displayname>
</D:prop>
</D:set>
</D:propertyupdate>
", name)
);
return newResourceUri;
}
public async Task<IReadOnlyList<AddressBookData>> GetUserAddressBooksNoThrow (bool useWellKnownUrl)