private ActiveLock CreateActiveLock(List <XElement> properties) { var activeLock = new ActiveLock.Builder() .WithApplyTo(PropertyValueParser.ParseLockDepth(FindProp("depth", properties))) .WithLockScope(PropertyValueParser.ParseLockScope(FindProp("lockscope", properties))) .WithLockToken(PropertyValueParser.ParseString(FindProp("locktoken", properties))) .WithOwner(PropertyValueParser.ParseOwner(FindProp("owner", properties))) .WithLockRoot(PropertyValueParser.ParseString(FindProp("lockroot", properties))) .WithTimeout(PropertyValueParser.ParseLockTimeout(FindProp("timeout", properties))) .Build(); return(activeLock); }
private WebDavResource CreateResource(string uri, List <MultiStatusParser.Propstat> propstats) { var properties = MultiStatusParser.GetProperties(propstats); var resourceBuilder = new WebDavResource.Builder() .WithActiveLocks(_lockResponseParser.ParseLockDiscovery(FindProp("{DAV:}lockdiscovery", properties))) .WithContentLanguage(PropertyValueParser.ParseString(FindProp("{DAV:}getcontentlanguage", properties))) .WithContentLength(PropertyValueParser.ParseInteger(FindProp("{DAV:}getcontentlength", properties))) .WithContentType(PropertyValueParser.ParseString(FindProp("{DAV:}getcontenttype", properties))) .WithCreationDate(PropertyValueParser.ParseDateTime(FindProp("{DAV:}creationdate", properties))) .WithDisplayName(PropertyValueParser.ParseString(FindProp("{DAV:}displayname", properties))) .WithETag(PropertyValueParser.ParseString(FindProp("{DAV:}getetag", properties))) .WithLastModifiedDate(PropertyValueParser.ParseDateTime(FindProp("{DAV:}getlastmodified", properties))) .WithProperties(properties.ConvertAll(x => new WebDavProperty(x.Name, x.GetInnerXml()))) .WithPropertyStatuses(MultiStatusParser.GetPropertyStatuses(propstats)); var isHidden = PropertyValueParser.ParseInteger(FindProp("{DAV:}ishidden", properties)) > 0; if (isHidden) { resourceBuilder.IsHidden(); } var isCollection = PropertyValueParser.ParseInteger(FindProp("{DAV:}iscollection", properties)) > 0 || PropertyValueParser.ParseResourceType(FindProp("{DAV:}resourcetype", properties)) == ResourceType.Collection; if (isCollection) { resourceBuilder.IsCollection(); resourceBuilder.WithUri(uri.TrimEnd('/') + "/"); } else { resourceBuilder.WithUri(uri); } return(resourceBuilder.Build()); }