/// <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);
        }
Example #2
0
        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);
        }
Example #3
0
        /// <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;
                }

            }
        }
Example #4
0
        /// <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);
                }
            }
        }
Example #5
0
        /// <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);
        }