Example #1
0
        static void Main(string[] args)
        {
            int option = 0;

            var taskManager = new TaskManager();

            while (option != 3)
            {
                Console.WriteLine("1.Add File Task\n2.Add PhoneCall Task\n3.Exit\nYour option:");
                option = int.Parse(Console.ReadLine());
                var        childLifeSpan = new int();
                IChildTask childTask;
                switch (option)
                {
                case 1:
                    Console.WriteLine("Enter milliseconds to run:");
                    childLifeSpan = int.Parse(Console.ReadLine());
                    childTask     = new FileTask(childLifeSpan);
                    taskManager.AddTask(childTask);
                    break;

                case 2:
                    Console.WriteLine("Enter milliseconds to run:");
                    childLifeSpan = int.Parse(Console.ReadLine());
                    childTask     = new PhoneCallTask(childLifeSpan);
                    taskManager.AddTask(childTask);
                    break;

                case 3:
                    Console.WriteLine("Thank you:");
                    break;
                }
            }
        }
        public static void Main(string[] args)
        {
            CuckooSession session = new CuckooSession("127.0.0.1", 8090);

            using (CuckooManager manager = new CuckooManager(session))
            {
                FileTask task = new FileTask();
                task.Filepath = "/var/www/payload.exe";

                int taskID = manager.CreateTask(task);

                while ((task = (FileTask)manager.GetTaskDetails(taskID)).Status == "pending" || task.Status == "processing")
                {
                    Console.WriteLine("Waiting 30 seconds..." + task.Status);
                    System.Threading.Thread.Sleep(30000);
                }

                if (task.Status == "failure")
                {
                    Console.WriteLine("There was an error:");
                    foreach (object error in task.Errors)
                    {
                        Console.WriteLine(error);
                    }

                    return;
                }

                string report = manager.GetTaskReport(taskID).ToString();

                Console.WriteLine(report);
            }
        }
Example #3
0
		public static void Main (string[] args)
		{
			CuckooSession session = new CuckooSession ("192.168.1.105", 8090);

			JObject response = session.ExecuteCommand ("/cuckoo/status", "GET");
			Console.WriteLine(response.ToString());

			using (CuckooManager manager = new CuckooManager(session))
			{
				FileTask task = new FileTask();
				task.Filepath = "/Users/bperry/Projects/metasploit-framework/data/post/bypassuac-x64.exe";

				int taskID = manager.CreateTask(task);

				while((task = (FileTask)manager.GetTaskDetails(taskID)).Status == "pending" || task.Status == "running")
				{
					Console.WriteLine("Waiting 30 seconds..."+task.Status);
					System.Threading.Thread.Sleep(30000);
				}

				if (task.Status == "failure")
				{
					Console.WriteLine ("There was an error:");
					foreach (var error in task.Errors)
						Console.WriteLine(error);

					return;
				}

				string report = manager.GetTaskReport(taskID).ToString();

				Console.WriteLine(report);
			}
		}
Example #4
0
        private void DeployCommand(MessageBody messageBody)
        {
            AssemblyExcuteEnvironment.Current.UnloadDomain(excuteDomainKey);
            var    file1 = FileTask.GetObjectBySerializeString(messageBody.Datas);
            string datas = TinctSlaveNode.Current.NodeInfo.NodeName;

            try
            {
                File.WriteAllBytes(file1.FileName, file1.Content.ToArray());
                datas += ",true";
            }
            catch
            {
                //write failed
                datas += ",false";
            }
            TinctMessage message = new TinctMessage();

            message.MessageHeader = new MessageHeader()
            {
                CommandType = CommandType.Deploy
            };
            MessageBody body = new MessageBody();

            message.MessageBody = body;
            TinctSlaveNode.Current.SendMessage(TinctNodeCongratulations.MasterName, message);
        }
        private IFile AddFile(FileTask op)
        {
            var fileStream = _getFile.GetFile(Path.Combine(_settingsFileWatcher.ScanDirectory, op.FileName));

            _fileList.AddFile(new CurrentFileEntry(op.FileName, fileStream));
            return(fileStream);
        }
Example #6
0
        private void ButtonDownload_Click(object sender, RoutedEventArgs e)
        {
            if (this.ListViewFile.SelectedIndex < 0)
            {
                return;
            }
            List <FileTask> fileTasks = new List <FileTask>();

            //var a = this.ListViewFile.SelectedItems;
            //var selected = fileClasses[this.ListViewFile.SelectedIndex];
            foreach (SocketFileInfo selected in this.ListViewFile.SelectedItems)
            {
                FileTask task = new FileTask
                {
                    Route       = SocketFactory.CurrentRoute.Copy(),
                    IsDirectory = selected.IsDirectory,
                    Type        = TransferType.Download,
                    RemotePath  = RemoteDirectory + selected.Name,
                    Length      = selected.Length,
                };
                if (task.IsDirectory)
                {
                    task.Length = FileTaskManager.GetDownloadDirectoryTaskLength(task);
                }
                fileTasks.Add(task);
            }

            DownloadConfirm(fileTasks);
        }
Example #7
0
        public async Task <IActionResult> Edit(int id, [Bind("Id,Path_File,File_Detail,TaskDistributionId")] FileTask fileTask)
        {
            if (id != fileTask.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(fileTask);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!FileTaskExists(fileTask.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["TaskDistributionId"] = new SelectList(_context.TaskDistributions, "Id", "View", fileTask.TaskDistributionId);
            return(View(fileTask));
        }
Example #8
0
 /// <summary>
 /// browser 页面添加下载任务的响应事件
 /// </summary>
 /// <param name="downloadTask">文件/文件夹任务</param>
 public void AddTask(FileTask task)
 {
     FTManager.AddTask(task);
     if (!IsTransfering)
     {
         FTManager.InitDownload();
     }
 }
Example #9
0
        public async Task <IActionResult> Create([Bind("Id,Path_File,File_Detail,TaskDistributionId")] FileTask fileTask)
        {
            if (ModelState.IsValid)
            {
                _context.Add(fileTask);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["TaskDistributionId"] = new SelectList(_context.TaskDistributions, "Id", "View", fileTask.TaskDistributionId);
            return(View(fileTask));
        }
Example #10
0
        private void RunPlotQueue()
        {
            FileRepository repo = new FileRepository();
            FileTask       task = null;

            while ((task = repo.GetTask("")) != null)
            {
                if (task.ExtName.Equals("dwg", StringComparison.OrdinalIgnoreCase))
                {
                    try
                    {
                        label2.Text = string.Format("正在获取文件...[{0}]", task.Name);
                        //1.从filestore获取文件
                        byte[] bytes = FileStoreHelper.GetFile(task.ID);
                        FileStoreHelper.SaveFileBuffer(bytes, Path.Combine(OfficeHelper.GetFolderPath(task.ID, "Files"), task.Name));
                        //2.设置文件数据库状态为进行中
                        repo.StartTask(task.ID);
                        //3.开始进行转换
                        label2.Text = string.Format("正在进行格式打印...[{0}]", task.Name);
                        var imgDTO = OfficeHelper.InitDTO(task.Name, bytes.Length, task.ID);
                        var result = FileConverter.Exec(imgDTO);

                        bool isSucc = false;
                        if (result != null && result.status)
                        {
                            //4.设置转图层次,并生成json文件
                            imgDTO.Versions[0].ImageZoomLevel = result.ZoomLevel;
                            OfficeHelper.WriteJsonFile(imgDTO);
                            isSucc = true;
                        }
                        Application.DoEvents();
                        //5.回置状态
                        label2.Text = "最近:[" + imgDTO.Name + "]打印" + (isSucc ? "成功":"失败") + ",打印时间(" + DateTime.Now.ToString("yyyy年MM月dd日 HH时mm分") + ")";
                        repo.EndTask(task.ID, isSucc ? ResultStatus.Success:ResultStatus.Error);
                        //6.删除原文件
                        if (File.Exists(imgDTO.Versions[0].FullPath))
                        {
                            File.Delete(imgDTO.Versions[0].FullPath);
                        }
                    }
                    catch (Exception ex)
                    {
                        // 记录日志
                        LogWriter.Info(string.Format(ex.Message, DateTime.Now.ToString(), task.ID, task.Name, ex.StackTrace));

                        repo.EndTask(task.ID, ResultStatus.Error);
                    }
                }
            }
        }
Example #11
0
        public void RunFileTask()
        {
            TinctTaskRepository q = new TinctTaskRepository();
            var mloggname         = "Masterlogger";
            var mfilename         = "Log4net.config";
            var slogname          = "Slavelogger";

            TinctTaskService.StartMasterService();

            Thread.Sleep(2000);
            TinctTaskService.StartSlaveService(slogname, mfilename);
            Thread.Sleep(2000);
            TinctTaskService.StartTaskService(q, mloggname, mfilename);


            TinctTask t1 = new TinctTask();

            t1.Name          = "test";
            t1.DllName       = "Tinct.PlatformController";
            t1.NamespaceName = "Tinct.PlatformController";
            t1.ClassName     = "TinctTestController";
            t1.MethodName    = "LoadData1";
            t1.Datas         = "test";

            q.QueueTinctTask(t1);

            FileTask file = new FileTask();

            file.FileName   = "Tinct.PlatformController.dll";
            file.SourcePath = "test.txt";
            file.Content    = new List <byte>();


            Thread.Sleep(10000);

            TinctTaskService.DeployFile(file);
            //TinctMessage msg = new TinctMessage();
            //msg.MessageHeader = new MessageHeader();
            //msg.MessageHeader.CommandType = CommandType.Deploy;
            //msg.MessageBody = new MessageBody();
            //msg.MessageBody.Datas = file.ToJsonSerializeString();
            //TinctMasterNode.Current.SendMessage(TinctNodeCongratulations.MasterName, msg);

            Console.Read();
        }
Example #12
0
        public void HandleTask(TaskType taskType, TaskMethod taskMethod, string[] args)
        {
            switch (taskType)
            {
            case TaskType.File:
                if (taskMethod == TaskMethod.Delete)
                {
                    if (args.Length <= 0)
                    {
                        throw new ArgumentException("args must be longer then 0!");
                    }
                    var fileTask = new FileTask();
                    Console.WriteLine(fileTask.ClearFile(ReplacementHelper.SanatizePathname(args[0])));
                }
                break;

            case TaskType.Directory:
                if (taskMethod == TaskMethod.Delete)
                {
                    if (args.Length == 0)
                    {
                        throw new ArgumentException("args must be longer then 0!");
                    }
                    var dirTask = new DirectoryTask();
                    Console.WriteLine(dirTask.DeleteDirectory(ReplacementHelper.SanatizePathname(args[0])));
                }
                else if (taskMethod == TaskMethod.Clean)
                {
                    if (args.Length == 0)
                    {
                        throw new ArgumentException("args must be longer then 0!");
                    }

                    var dirTask = new DirectoryTask();
                    dirTask.CleanDirectory(ReplacementHelper.SanatizePathname(args[0])).ForEach((dir) => { Console.WriteLine(dir); });
                }
                break;

            case TaskType.Recycling:
                var recyclingTask = new RecyclingTask();
                recyclingTask.ClearRecycling();
                break;
            }
        }
Example #13
0
        public static void DeployFile(FileTask file)
        {
            var bytes = File.ReadAllBytes(file.SourcePath);

            file.Content.AddRange(bytes);
            TinctMessage msg = new TinctMessage();

            msg.MessageHeader             = new MessageHeader();
            msg.MessageHeader.CommandType = CommandType.Deploy;
            msg.MessageBody       = new MessageBody();
            msg.MessageBody.Datas = file.ToJsonSerializeString();
            TinctTaskRepository.Current.ClearAllTinctTasks();
            for (int i = 0; i < TinctMasterNode.Current.SlaveNodes.Count; i++)
            {
                try
                {
                    TinctMasterNode.Current.SendMessage(TinctMasterNode.Current.SlaveNodes[i].NodeName, msg);
                }
                catch
                {
                    ///when change salve node status,ingore that
                }
            }
        }
Example #14
0
 public void DoNext(Target target, FileTask nextStep)
 {
     NextStep = nextStep;
     Target = target;
 }
Example #15
0
 public static SocketClient GenerateConnectedSocketClient(FileTask task, int maxTry = 1, int retryInterval = 3000)
 {
     return(GenerateConnectedSocketClient(task.Route, maxTry, retryInterval));
 }
Example #16
0
        public ActionResult <GenericValidator> ProcessData()
        {
            var gVal = new GenericValidator
            {
                FileTasks = new List <FileTask>()
            };

            try
            {
                var path = Path.Combine(_hostingEnvironment.WebRootPath, @"NDR");
                var dir  = new DirectoryInfo(path);
                if (!dir.Exists)
                {
                    Directory.CreateDirectory(path);
                }
                var files = dir.GetFiles();
                if (files.Any())
                {
                    files.ToList().ForEach(f =>
                    {
                        var facilityFiles = new List <Container>();
                        using (var zipStream = new ZipInputStream(f.OpenRead()))
                        {
                            ZipEntry theEntry;
                            while ((theEntry = zipStream.GetNextEntry()) != null)
                            {
                                var fileName = theEntry.Name.ToLower();
                                try
                                {
                                    if (fileName.EndsWith(".xml") && !fileName.StartsWith("__macosx"))
                                    {
                                        var doc = new XmlDocument();
                                        doc.Load(zipStream);
                                        XmlDocument d = new XmlDocument();
                                        d.LoadXml(doc.LastChild.OuterXml);
                                        var dSerialised = JsonConvert.SerializeXmlNode(d);
                                        var ndrExtract  = JsonConvert.DeserializeObject <Extract>(dSerialised);
                                        facilityFiles.Add(ndrExtract.Container);


                                        string xmlString = System.IO.File.ReadAllText(fileName);
                                        var serializer   = new XmlSerializer(typeof(List <Extract>), new XmlRootAttribute("Container"));
                                        var stringReader = new StringReader(xmlString);
                                        var ndrExtract1  = (Extract)serializer.Deserialize(stringReader);
                                    }
                                }
                                catch (Exception e)
                                {
                                    gVal.Code    = -1;
                                    gVal.Message = e.Message;
                                    var ef       = new FileTask
                                    {
                                        FacilityName = fileName,
                                        Message      = e.InnerException != null? e.InnerException.Message : e.Message,
                                        Code         = -1
                                    };
                                    gVal.FileTasks.Add(ef);
                                }
                            }
                        }
                    });
                }

                return(gVal);
            }
            catch (Exception e)
            {
                gVal.Code    = -1;
                gVal.Message = e.InnerException != null ? e.InnerException.Message : e.Message;
                return(gVal);
            }
        }
Example #17
0
        static void Main(string[] args)
        {
            var username = "******";
            var password = "******";
            // Test login check
            var checkResult = Authentication.LoginCheck(username);

            CheckSuccess(checkResult);
            // Handle verify code
            if (checkResult.needVCode)
            {
                File.WriteAllBytes("vcode.png", checkResult.image);
                Console.WriteLine("Verification code required. Input the text in vcode.png.");
                try
                {
                    System.Diagnostics.Process.Start("vcode.png");
                }
                catch (Exception) { }
                checkResult.verifyCode = Console.ReadLine();
                try
                {
                    File.Delete("vcode.png");
                }
                catch (Exception) { }
            }
            else
            {
                Console.WriteLine("Verification code NOT required.");
            }
            // Test login
            var loginResult = Authentication.Login(username, password, checkResult);

            CheckSuccess(loginResult);
            Console.WriteLine(loginResult.credential);
            Console.WriteLine("uid: " + loginResult.credential.uid);
            var credential = loginResult.credential;
            // Test get quota
            var quotaResult = Operation.GetQuota(credential);

            CheckSuccess(quotaResult);
            Console.WriteLine(quotaResult.used + "/" + quotaResult.total);
            // Test get user info
            var infoResult = Operation.GetUserInfo(credential);

            CheckSuccess(infoResult);
            Console.WriteLine(infoResult.records[0].uname + " " + infoResult.records[0].priority_name + " " + infoResult.records[0].avatar_url);
            // Test list file
            var fileListResult = Operation.GetFileList("/", credential);

            CheckSuccess(fileListResult);
            Console.WriteLine(string.Join("\r\n", fileListResult.list.Take(5).Select(e => e.path + " " + e.isdir + " " + e.size).ToArray()));
            // Test thumbnail
            var thumbnailResult = Operation.GetThumbnail("/1.mp4", credential);

            CheckSuccess(thumbnailResult);
            Console.WriteLine("Thumbnail " + thumbnailResult.image.Length + " bytes.");
            try
            {
                File.WriteAllBytes("thumb.jpg", thumbnailResult.image);
                var process = System.Diagnostics.Process.Start("thumb.jpg");
            }
            catch (Exception) { }
            // Test rapid upload
            var rapidUploadResult = Operation.RapidUpload(UploadHelper.GetFileProperty("Z:\\Thunder9.0.14.358.exe"), "/t.exe", credential);

            CheckSuccess(rapidUploadResult);
            Console.WriteLine("Rapid: " + rapidUploadResult.info.path + " " + rapidUploadResult.info.size);
            // Test get upload servers
            var servers = Operation.GetUploadServers(credential);

            CheckSuccess(servers);
            Console.WriteLine("Servers: " + string.Join(" ", servers.servers));
            // Test simple upload
            var simpleUploadResult = Operation.SimpleUpload("Z:\\1.rar", "/1.rar", credential, servers.servers[0]);

            CheckSuccess(simpleUploadResult);
            Console.WriteLine("Simple: " + simpleUploadResult.path + " " + simpleUploadResult.size);
            // Test chunked upload
            var chunkedUploadResult = Operation.ChunkedUpload("Z:\\2.rar", "/2.rar", credential);

            CheckSuccess(chunkedUploadResult);
            Console.WriteLine("Chunked: " + chunkedUploadResult.path + " " + chunkedUploadResult.size);
            // Test get download urls
            var downloadResult = Operation.GetDownload("/1.mp4", credential);

            CheckSuccess(downloadResult);
            Console.WriteLine("Download URL count = " + downloadResult.urls.Length + " " + downloadResult.urls[0].rank + " " + downloadResult.urls[0].url);
            // Test file operations
            var fileopResult = Operation.Copy("/1.mp4", "/", "2.mp4", credential);

            CheckSuccess(fileopResult);
            fileopResult = Operation.Move("/2.mp4", "/", "3.mp4", credential);
            CheckSuccess(fileopResult);
            fileopResult = Operation.Rename("/3.mp4", "4.mp4", credential);
            CheckSuccess(fileopResult);
            fileopResult = Operation.Delete("/4.mp4", credential);
            CheckSuccess(fileopResult);
            fileopResult = Operation.CreateFolder("/test", credential);
            CheckSuccess(fileopResult);
            Console.WriteLine("New folder name: " + fileopResult.path);
            // Test share
            var shareResult = Operation.Share(new[] { "/1.mp4" }, credential);

            CheckSuccess(shareResult);
            Console.WriteLine(shareResult.link + " " + shareResult.shorturl);
            shareResult = Operation.Share(new[] { "/1.mp4" }, credential, "8888");
            CheckSuccess(shareResult);
            Console.WriteLine(shareResult.link + " " + shareResult.shorturl);
            // Test transfer shared files
            var transferResult = Operation.Transfer("http://pan.baidu.com/s/1hsfZ1TM", "/", credential, "1w9w");

            CheckSuccess(transferResult);
            Console.WriteLine(transferResult.extra.list.Select(e => e.from + " " + e.to + "\r\n").ToString());
            // Test offline
            var queryLinkResult = Operation.QueryLinkFiles("/downfile.torrent", credential);

            CheckSuccess(queryLinkResult);
            queryLinkResult.files.ToList().ForEach(f => Console.WriteLine(f.file_name + " " + f.size));
            var addOfflineResult = Operation.AddOfflineTask("/downfile.torrent", "/", credential, new[] { 1 }, queryLinkResult.sha1);

            CheckSuccess(addOfflineResult);
            Console.WriteLine(addOfflineResult.task_id + " " + addOfflineResult.rapid_download);
            addOfflineResult = Operation.AddOfflineTask("http://www.baidu.com/", "/", credential);
            CheckSuccess(addOfflineResult);
            Console.WriteLine(addOfflineResult.task_id + " " + addOfflineResult.rapid_download);
            addOfflineResult = Operation.AddOfflineTask("magnet:?xt=urn:btih:eb748516ee0968422d9827a9991d28cbd4dc4f3f", "/", credential, new[] { 1, 2 });
            CheckSuccess(addOfflineResult);
            Console.WriteLine(addOfflineResult.task_id + " " + addOfflineResult.rapid_download);
            addOfflineResult = Operation.AddOfflineTask("ed2k://|file|[柳井正与优衣库].蔡成平.文字版(ED2000.COM).epub|890525|90a92b89df20a8b2283fe3450f872590|h=oxrt54bznbtq5pr47dfmj4zfn5ctbvek|/", "/", credential);
            CheckSuccess(addOfflineResult);
            Console.WriteLine(addOfflineResult.task_id + " " + addOfflineResult.rapid_download);
            var offlineListResult = Operation.GetOfflineList(credential);

            CheckSuccess(offlineListResult);
            offlineListResult.tasks.ToList().ForEach(t => Console.WriteLine(t.status + " " + t.task_id + " " + t.task_name + " " + t.finished_size + "/" + t.file_size + " " + t.od_type));
            Operation.ClearOfflineTask(credential);
            foreach (var item in offlineListResult.tasks)
            {
                Operation.CancelOfflineTask(item.task_id, credential);
                Operation.DeleteOfflineTask(item.task_id, credential);
            }
            offlineListResult = Operation.GetOfflineList(credential);
            CheckSuccess(offlineListResult);
            Debug.Assert(offlineListResult.tasks.Length == 0);
            Console.WriteLine("Offline list cleared.");
            // Test download
            var adapter = new BaiduAdapter()
            {
                credential = credential, path = "/1.mp4", size = fileListResult.list.First(e => e.path == "/1.mp4").size
            };
            var task = new FileTask(adapter, "Z:\\1.mp4");
            var st   = new Stopwatch();

            st.Start();
            while (!task.IsCompleted())
            {
                Console.WriteLine(task.GetDownloadedBytes());
                foreach (var item in task.DownloadSources)
                {
                    Console.WriteLine("  " + item.URL.Substring(0, 20) + " " + item.GetDownloadedBytes());
                }
                Thread.Sleep(1000);
            }
            st.Stop();
            Console.WriteLine("Time taken: " + st.ElapsedMilliseconds / 1000);
            // Done
            Console.WriteLine("Success");
            Console.ReadLine();
        }
Example #18
0
        public void Execute(IJobExecutionContext context)
        {
            var taskId        = "";
            var jobDataTaskId = context.Trigger.JobDataMap["taskId"];

            if (jobDataTaskId != null)
            {
                taskId = jobDataTaskId.ToString();
            }
            FileRepository repo = new FileRepository();
            FileTask       task = null;

            while ((task = repo.GetTask(taskId)) != null)
            {
                // 修改开始执行时间
                repo.StartTask(task.ID);
                try
                {
                    if (!IsConvertFormat(task.ExtName))
                    {
                        throw new Exception("未知文件类型,没有相关的转换器!");
                    }

                    string viewMode = AppConfig.GetAppSettings("ViewMode");
                    if (viewMode != ViewModeDTO.TilePicViewer.ToString())
                    {
                        string folderPath   = OfficeHelper.GetFolderPath(task.ID);
                        var    pdfFilePath  = Path.Combine(folderPath, task.ID + ".pdf");
                        var    swfFilePath  = Path.Combine(folderPath, task.ID + ".swf");
                        var    snapFilePath = Path.Combine(folderPath, task.ID + ".png");

                        #region 1.转换PDF

                        byte[] pdfBuffer = null;

                        if (!string.IsNullOrEmpty(task.ExtName))
                        {
                            if (task.ExtName.ToLower() == "pdf")
                            {
                                pdfBuffer = FileStoreHelper.GetFile(task.Name);
                            }
                            else if (task.ExtName.ToLower() == "docx" || task.ExtName.ToLower() == "doc")
                            {
                                // 获取文件
                                var butter = FileStoreHelper.GetFile(task.Name);
                                pdfBuffer = FileConverter.Word2PDF(butter, pdfFilePath, task.ExtName.ToLower());
                            }
                            else if (task.ExtName.ToLower() == "xlsx" || task.ExtName.ToLower() == "xls")
                            {
                                // 获取文件
                                var buffer = FileStoreHelper.GetFile(task.Name);
                                pdfBuffer = FileConverter.Excel2PDF(buffer);
                            }
                            else if (task.ExtName.ToLower() == "txt")
                            {
                                // 获取文件
                                var buffer = FileStoreHelper.GetFile(task.Name);
                                pdfBuffer = FileConverter.Txt2PDF(buffer);
                            }
                            else if (task.ExtName.ToLower() == "jpg" || task.ExtName.ToLower() == "jpeg" || task.ExtName.ToLower() == "png")
                            {
                                // 获取文件
                                var buffer = FileStoreHelper.GetFile(task.Name);
                                pdfBuffer = FileConverter.Img2PDF(buffer);
                            }
                            else if (task.ExtName.ToLower() == "tif" || task.ExtName.ToLower() == "tiff")
                            {
                                // 获取文件
                                var buffer = FileStoreHelper.GetFile(task.Name);
                                pdfBuffer = FileConverter.Tif2PDF(buffer);
                            }
                            else
                            {
                                throw new Exception("未知文件类型,没有相关的转换器!");
                            }
                        }
                        else
                        {
                            throw new Exception("未定义文件类型!");
                        }

                        if (pdfBuffer == null)
                        {
                            throw new Exception("PDF文件不存在!");
                        }

                        #endregion

                        #region 2.生成SWF


                        var pdfPageCount = FileConverter.GetPageCount(pdfBuffer);
                        if (!File.Exists(pdfFilePath))
                        {
                            FileConverter.SaveFileBuffer(pdfBuffer, pdfFilePath);
                            FileConverter.PDF2SWF(pdfFilePath, swfFilePath, pdfPageCount);
                        }
                        #endregion

                        #region 3.生成缩略图
                        byte[] snapBuffer = FileConverter.ConvertToSnap(pdfBuffer, "pdf");
                        FileConverter.SaveFileBuffer(snapBuffer, snapFilePath);
                        #endregion

                        repo.EndTask(task.ID, ResultStatus.Success);
                    }
                    else
                    {
                        //1.获取文件
                        byte[] bytes    = FileStoreHelper.GetFile(task.ID);
                        string filePath = OfficeHelper.GetFolderPath(task.ID, "Files");
                        FileStoreHelper.SaveFileBuffer(bytes, Path.Combine(filePath, task.Name));
                        //2.转图
                        var           imgDTO        = OfficeHelper.InitDTO(task.Name, bytes.Length, task.ID);
                        FileConverter fileConverter = new FileConverter();
                        var           result        = fileConverter.Exec(imgDTO);
                        if (result == null || !result.status)
                        {
                            throw new Exception("转图失败!");
                        }
                        //3.生成记录文件
                        imgDTO.Versions[0].ImageZoomLevel = 18;
                        imgDTO.Versions[0].HighHeightUnit = result.HighHeightUnit;
                        OfficeHelper.WriteJsonFile(imgDTO);
                        //4.设置数据库完成
                        repo.EndTask(task.ID, ResultStatus.Success);
                        //5.删除原始文件
                        if (File.Exists(imgDTO.Versions[0].FullPath))
                        {
                            File.Delete(imgDTO.Versions[0].FullPath);
                        }
                    }
                }
                catch (Exception ex)
                {
                    // 记录日志
                    repo.EndTask(task.ID, ResultStatus.Error);
                    LogWriter.Info(string.Format(ErrInfo, DateTime.Now.ToString(), task.ID, task.Name, ex.Message, ex.StackTrace));
                }
            }

            //新增处理关联word、excel进程关闭问题 2019-5-29
            CloseExit();
        }
Example #19
0
 public void DoNext(Target target, FileTask nextStep)
 {
     NextStep = nextStep;
     Target   = target;
 }