コード例 #1
0
 public static object Delete(IHierarchyItem item, string lockToken)
 {
     try
     {
         item.Delete(lockToken);
         return(null);
     }
     catch (Exception ex)
     {
         return(ex);
     }
 }
コード例 #2
0
 public static object Delete(IHierarchyItem item, LockUriTokenPair[] lockUriTokenPairs)
 {
     try
     {
         item.Delete(lockUriTokenPairs);
         return(null);
     }
     catch (Exception ex)
     {
         return(ex);
     }
 }
コード例 #3
0
        /// <summary>
        /// Copies this folder to another folder with option to rename it.
        /// </summary>
        /// <param name="destFolder">Folder to copy this folder to.</param>
        /// <param name="destName">New name of this folder.</param>
        /// <param name="deep">Whether children shall be copied.</param>
        /// <param name="multistatus">Container for errors. We put here errors which occur with
        /// individual items being copied.</param>
        public override void CopyTo(IItemCollection destFolder, string destName, bool deep, MultistatusException multistatus)
        {
            DavFolder destDavFolder = destFolder as DavFolder;

            if (destFolder == null)
            {
                throw new DavException("Destination folder doesn't exist", DavStatus.CONFLICT);
            }
            if (!destDavFolder.ClientHasToken())
            {
                throw new LockedException("Doesn't have token for destination folder.");
            }

            if (isRecursive(destDavFolder))
            {
                throw new DavException("Cannot copy folder to its subtree", DavStatus.FORBIDDEN);
            }

            IHierarchyItem destItem = destDavFolder.FindChild(destName);

            if (destItem != null)
            {
                try
                {
                    destItem.Delete(multistatus);
                }
                catch (DavException ex)
                {
                    multistatus.AddInnerException(destItem.Path, ex);
                    return;
                }
            }

            DavFolder newDestFolder = CopyThisItem(destDavFolder, null, destName);

            // copy children
            if (deep)
            {
                foreach (IHierarchyItem child in GetChildren(new PropertyName[0]))
                {
                    var dbchild = child as DavHierarchyItem;
                    try
                    {
                        dbchild.CopyTo(newDestFolder, child.Name, deep, multistatus);
                    }
                    catch (DavException ex)
                    {
                        multistatus.AddInnerException(dbchild.Path, ex);
                    }
                }
            }
        }