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(); }
private void EvaluateSelectedItemsActionCommand(SelectedItemsAction action) { _callbackResult = ProcessSelectedItemsAction(_callbackControl.CurrentDirectory, _callbackControl.ResolveFileManagerItemInfo(DecodeURIComponent(_callbackCommandArgument)), _callbackControl.SelectedItems, action); }