예제 #1
0
 internal SelectedItemsActionCancelEventArgs(SelectedItemsAction action)
 {
     _action = action;
 }
        private string ProcessSelectedItemsAction(FileManagerItemInfo srcDir, FileManagerItemInfo destDir, FileManagerItemInfo[] items, SelectedItemsAction action)
        {
            if (items.Length == 0)
                return "";

            SelectedItemsActionCancelEventArgs cancelArg = new SelectedItemsActionCancelEventArgs(action);
            foreach (FileManagerItemInfo item in items)
            {
                if (item.Directory.Exists && destDir.Directory.FullName.StartsWith(item.Directory.FullName, StringComparison.InvariantCultureIgnoreCase))
                    return ClientMessageEventReference(GetResourceString("DestinationFolderIsSubfolder", "The destination folder is a subfolder of the source folder."));
                cancelArg.SelectedItems.Add(item);
            }
            cancelArg.DestinationDirectory = destDir;
            OnSelectedItemsAction(cancelArg);
            if (cancelArg.Cancel)
            {
                return ClientMessageEventReference(cancelArg.ClientMessage);
            }

            StringBuilder sb = new StringBuilder();

            switch (action)
            {
                case IZ.WebFileManager.SelectedItemsAction.Delete:
                    if (ProcessSelectedItemsDelete(items))
                        AddFolderTreeRefreshEventReference(sb, srcDir);
                    break;
                case IZ.WebFileManager.SelectedItemsAction.Move:
                    destDir.EnsureDirectoryExists();
                    if (ProcessSelectedItemsMoveTo(destDir, items))
                    {
                        AddFolderTreeRequireRefreshEventReference(sb, srcDir, destDir);
                        AddFolderTreeNavigateEventReference(sb, srcDir);
                    }
                    break;
                case IZ.WebFileManager.SelectedItemsAction.Copy:
                    destDir.EnsureDirectoryExists();
                    if (ProcessSelectedItemsCopyTo(destDir, items))
                    {
                        AddFolderTreeRequireRefreshEventReference(sb, srcDir, destDir);
                        AddFolderTreeNavigateEventReference(sb, srcDir);
                    }
                    break;
            }

            SelectedItemsActionEventArgs args = new SelectedItemsActionEventArgs();
            OnSelectedItemsActionComplete(args);

            sb.AppendLine(ClientRefreshEventReference);
            return sb.ToString();
        }
 internal SelectedItemsActionCancelEventArgs(SelectedItemsAction action)
 {
     _action = action;
 }
 private void EvaluateSelectedItemsActionCommand(SelectedItemsAction action)
 {
     _callbackResult = ProcessSelectedItemsAction(_callbackControl.CurrentDirectory, _callbackControl.ResolveFileManagerItemInfo(DecodeURIComponent(_callbackCommandArgument)), _callbackControl.SelectedItems, action);
 }