static DropEffects DropEffects(ListItem source, Folder target)
        {
            if (source.ParentList != target.ParentList)
            {
                return(dragDrop.DropEffects.None);
            }


            if (UriUtility.GetDirectoryUrl(source.ServerRelativeUrl) == target.ServerRelativeUrl)
            {
                return(source.FileSystemObjectType == FileSystemObjectType.Folder ? dragDrop.DropEffects.None : dragDrop.DropEffects.Copy);
            }

            if (source.ServerRelativeUrl == target.ServerRelativeUrl)
            {
                return(dragDrop.DropEffects.None);
            }

            if (source.FileSystemObjectType == FileSystemObjectType.Folder)
            {
                return(target.ServerRelativeUrl.StartsWith(source.ServerRelativeUrl + '/') ? dragDrop.DropEffects.None : dragDrop.DropEffects.Move);
            }

            if (!source.IsNew && source.ParentList.BaseType != BaseType.DocumentLibrary)
            {
                return(dragDrop.DropEffects.Copy | dragDrop.DropEffects.Move);
            }

            return(UriUtility.GetDirectoryUrl(source.ServerRelativeUrl) == target.ServerRelativeUrl
               ? dragDrop.DropEffects.Copy
               : dragDrop.DropEffects.Copy | dragDrop.DropEffects.Move);
        }