/// <summary> /// Gets the file locked user id. /// </summary> /// <param name="fileUrl">The file URL.</param> /// <returns></returns> public static UserLight GetFileLockedUserId(string fileUrl) { UserLight retVal = null; try { WebDavTicket ticket = WebDavUrlBuilder.GetWebDavTicket(fileUrl); WebDavAbstractFactory factory = new WebDavAbstractFactory(); WebDavPropertyStorage provider = factory.Create <WebDavElementStorageProvider>(ticket.AbsolutePath.StorageType) as WebDavPropertyStorage; if (provider != null) { WebDavElementInfo elInfo = provider.GetElementInfo(ticket.ToString()); foreach (ActiveLockElement activeLock in provider.GetActiveLocks(elInfo)) { UserLight user = UserLight.Load(activeLock.Owner); if (user != null) { retVal = user; break; } } } } catch (System.Exception) { } return(retVal); }
public override Mediachase.Net.Wdom.WebDavElementInfo GetElementInfo(string path) { WebDavElementInfo retVal = null; retVal = new CollectionInfo(); retVal.Name = "root"; retVal.Created = DateTime.Now; retVal.Modified = retVal.Created; retVal.AbsolutePath = path; return(retVal); }
/// <summary> /// Gets the active locks. /// </summary> /// <param name="element">The element.</param> /// <returns></returns> public override IEnumerable<ActiveLockElement> GetActiveLocks(WebDavElementInfo element) { List<ActiveLockElement> retVal = new List<ActiveLockElement>(); WebDavDocument document = WebDavDocument.CreateDocument(); PropertyInfoCollection collection = GetProperties(element); //Remove obsolete lock WebDavLockManager.RemoveObsoleteLock(this, collection); PropertyInfo lockDiscoveryProp = collection[PropertyInfo.LockDiscoveryProperty]; if (lockDiscoveryProp != null) { LockDiscoveryPropertyElement lockDiscoveryEl = (LockDiscoveryPropertyElement) document.ImportNode((XmlElement)lockDiscoveryProp.Value, true); foreach (ActiveLockElement activeLockEl in lockDiscoveryEl.GetActiveLocks()) { yield return activeLockEl; } } }
/// <summary> /// Gets the active locks. /// </summary> /// <param name="element">The element.</param> /// <returns></returns> public override IEnumerable <ActiveLockElement> GetActiveLocks(WebDavElementInfo element) { List <ActiveLockElement> retVal = new List <ActiveLockElement>(); WebDavDocument document = WebDavDocument.CreateDocument(); PropertyInfoCollection collection = GetProperties(element); //Remove obsolete lock WebDavLockManager.RemoveObsoleteLock(this, collection); PropertyInfo lockDiscoveryProp = collection[PropertyInfo.LockDiscoveryProperty]; if (lockDiscoveryProp != null) { LockDiscoveryPropertyElement lockDiscoveryEl = (LockDiscoveryPropertyElement) document.ImportNode((XmlElement)lockDiscoveryProp.Value, true); foreach (ActiveLockElement activeLockEl in lockDiscoveryEl.GetActiveLocks()) { yield return(activeLockEl); } } }
/// <summary> /// Gets the element info. /// </summary> /// <param name="webDavAbsPath">The web dav abs path.</param> /// <returns></returns> public override WebDavElementInfo GetElementInfo(string strTicket) { WebDavElementInfo retVal = null; try { WebDavTicket ticket = WebDavTicket.Parse(strTicket); if (ticket.IsCollection) { retVal = GetCollectionInfo(ticket); } else { retVal = GetResourceInfo(ticket); } } catch (System.FormatException) { } return(retVal); }