private void OnFileTransferProgressEventHandler(RemoteFileAdapterHandler adapterHandler, FileTransferFlag state, string fileName, long position, long fileSize)
        {
            if (this.RemoteFileAdapterHandler.WhetherClose)//UI未关闭时才允许操作控件
            {
                return;
            }

            switch (state)
            {
            case FileTransferFlag.Begin:
                if (fileSize > 0)
                {
                    this.transferProgress.Value = Convert.ToInt32(position / (float)fileSize * 100);
                }
                this.transferDatalenght.Text = $"已传输{FileHelper.LengthToFileSize(position).PadRight(10)}";
                this.time.Text = "传输时间:{0}s".FormatTo((DateTime.Now - _startTime).TotalSeconds.ToString("0"));
                break;

            case FileTransferFlag.Transfering:
                this.transferProgress.Value  = Convert.ToInt32(position / (float)fileSize * 100);
                this.transferCaption.Text    = $"正在传输:{Path.GetFileName(fileName)} 文件大小:{FileHelper.LengthToFileSize(fileSize)}";
                this.transferDatalenght.Text = $"已传输:{FileHelper.LengthToFileSize(position).PadRight(10)}";
                this.time.Text = "传输时间:{0}s".FormatTo((DateTime.Now - _startTime).TotalSeconds.ToString("0"));
                break;

            case FileTransferFlag.End:
                this.transferProgress.Value  = 0;
                this.transferCaption.Text    = $"目录装载完成";
                this.transferDatalenght.Text = "已传输0KB";
                break;
            }
        }
 private void OnDirectoryCreateFinishEventHandler(RemoteFileAdapterHandler adapterHandler, bool isSuccess)
 {
     if (isSuccess)
     {
         this.RemoteFileAdapterHandler.GetRemoteFiles(txtRemotedirectory.Text);
     }
     else
     {
         MessageBoxHelper.ShowBoxError("文件夹创建失败!");
     }
 }
        private void OnRemoteExceptionEventHandler(RemoteFileAdapterHandler adapterHandler, DateTime occurredTime, string tipMessage, string exceptionMessage, string stackTrace)
        {
            var sb = new StringBuilder();

            sb.AppendLine("remoteService Exception:");
            sb.AppendLine("occurrence time:" + occurredTime.ToString());
            sb.AppendLine("TipMessage:" + tipMessage);
            sb.AppendLine("ExceptionMessage:" + exceptionMessage);
            sb.AppendLine("StackTrace:" + stackTrace);
            LogHelper.WriteErrorByCurrentMethod(sb.ToString());
        }
 private void OnPasterFinishEventHandler(RemoteFileAdapterHandler adapterHandler, string[] unsuccessfulFiles)
 {
     this.RemoteFileAdapterHandler.GetRemoteFiles(txtRemotedirectory.Text);
     if (unsuccessfulFiles.Length > 0)
     {
         MessageBoxHelper.ShowBoxExclamation($"文件复制完成,但有部分文件复制操作异常:{string.Join(", ", unsuccessfulFiles)},请检查!");
     }
     else
     {
         MessageBoxHelper.ShowBoxExclamation("文件复制完成!");
     }
 }
 private void OnFileDeteledFinishEventHandler(RemoteFileAdapterHandler adapterHandler, string[] deletedFiles)
 {
     for (int i = 0; i < fileList.Items.Count; i++)
     {
         FileListViewItem item = fileList.Items[i] as FileListViewItem;
         foreach (var file in deletedFiles)
         {
             if (item.FileName == Path.GetFileName(file))
             {
                 item.Remove();
                 i--;
             }
         }
     }
 }
        private void OnFileItemsEventHandler(RemoteFileAdapterHandler adapterHandler, FileItem[] fileItems, string root, bool isSuccess, string message)
        {
            this.fileList.Items.Clear();

            if (!isSuccess)
            {
                MessageBoxHelper.ShowBoxExclamation(message);
            }

            this.txtRemotedirectory.Text = root;

            foreach (var file in fileItems)
            {
                this.AddItem(file);
            }

            this.transferCaption.Text = "装载目录" + txtRemotedirectory.Text + "完成,共 " + fileList.Items.Count.ToString() + " 个对象";
        }
 private void OnFileNameRenameFinishEventHandler(RemoteFileAdapterHandler adapterHandler, string srcNamec, string targetName, bool isSuccess)
 {
     if (isSuccess)
     {
         for (int i = 0; i < fileList.Items.Count; i++)
         {
             FileListViewItem item = fileList.Items[i] as FileListViewItem;
             if (item.FileName == Path.GetFileName(srcNamec))
             {
                 item.Text     = Path.GetFileName(targetName);
                 item.FileName = Path.GetFileName(targetName);
                 break;
             }
         }
     }
     else
     {
         MessageBoxHelper.ShowBoxError("文件重命名失败!");
     }
 }
        private void OnOpenTextEventHandler(RemoteFileAdapterHandler adapterHandler, string text, bool isSuccess)
        {
            if (!isSuccess)
            {
                MessageBoxHelper.ShowBoxExclamation("远程文件打开失败!");
                return;
            }
            var tmp = Path.Combine(Environment.CurrentDirectory, "tmp");

            if (!Directory.Exists(tmp))
            {
                Directory.CreateDirectory(tmp);
            }

            string randomName = Guid.NewGuid().ToString() + ".txt";

            File.WriteAllText(Path.Combine(tmp, randomName), text);

            Process.Start(Path.Combine(tmp, randomName));
        }
        private void OnFileTreeItemsEventHandler(RemoteFileAdapterHandler adapterHandler, FileItem[] fileItems)
        {
            if (_remoteDirectoryTreeView.Nodes.Count <= 0)
            {
                foreach (var file in fileItems)
                {
                    var node = new TreeNode(file.FileName, IcoIndex("", true), IcoIndex("", true));
                    _remoteDirectoryTreeView.Nodes.Add(file.FileName);
                }
            }
            else
            {
                var node = this._remoteDirectoryTreeView.SelectedNode;
                if (!fileItems.IsNullOrEmpty())
                {
                    node.Nodes.AddRange(fileItems.Select(v => new TreeNode(v.FileName, IcoIndex("DIR", false), IcoIndex("DIR", false))).ToArray());
                }

                node.Expand();

                this._remoteDirectoryTreeView.Enabled = true;
            }
        }