CalDavSynchronizer.DataAccess.WebDavDataAccess.GetPrivileges C# (CSharp) Method

GetPrivileges() public method

public GetPrivileges ( ) : Task
return Task
    public async Task<AccessPrivileges> GetPrivileges ()
    {
      var properties = await GetCurrentUserPrivileges (_serverUrl, 0);

      XmlNode privilegeWriteContent = properties.XmlDocument.SelectSingleNode ("/D:multistatus/D:response/D:propstat/D:prop/D:current-user-privilege-set/D:privilege/D:write-content", properties.XmlNamespaceManager);
      XmlNode privilegeBind = properties.XmlDocument.SelectSingleNode ("/D:multistatus/D:response/D:propstat/D:prop/D:current-user-privilege-set/D:privilege/D:bind", properties.XmlNamespaceManager);
      XmlNode privilegeUnbind = properties.XmlDocument.SelectSingleNode ("/D:multistatus/D:response/D:propstat/D:prop/D:current-user-privilege-set/D:privilege/D:unbind", properties.XmlNamespaceManager);
      XmlNode privilegeWrite = properties.XmlDocument.SelectSingleNode ("/D:multistatus/D:response/D:propstat/D:prop/D:current-user-privilege-set/D:privilege/D:write", properties.XmlNamespaceManager);

      if (privilegeWrite != null)
        return AccessPrivileges.All;

      var privileges = AccessPrivileges.None;
      if (privilegeWriteContent != null) privileges |= AccessPrivileges.Modify;
      if (privilegeBind !=null) privileges |= AccessPrivileges.Create;
      if (privilegeUnbind != null) privileges |= AccessPrivileges.Delete;
      return privileges;
    }