Esempio n. 1
0
        private bool CheckExist(XLTaskItem xlTaskItem, out string message)
        {
            //check file in disk?
            var filePath = string.Format("{0}\\{1}", xlTaskItem.SaveTo, xlTaskItem.FileName);

            if (File.Exists(filePath))
            {
                message = string.Format("Escape completed task: {0}", xlTaskItem.FileName);
                return(true);
            }

            //check file in db?
            var courseName = GuessCourseName(filePath);

            if (!string.IsNullOrWhiteSpace(courseName))
            {
                var completedCourses = GetCompletedCourses();
                if (completedCourses.Contains(courseName, StringComparer.OrdinalIgnoreCase))
                {
                    message = string.Format("!!! => Escape completed course: {0}", courseName);
                    return(true);
                }
            }
            message = "New Task: " + xlTaskItem.FileName;
            return(false);
        }
Esempio n. 2
0
        public static XLTaskItem ConvertToXLTaskItem(PluralsightFileLink fileLink)
        {
            var xlTaskItem = new XLTaskItem();
            var fileName   = Path.GetFileName(fileLink.FixSaveFilePath);
            var folderName = Path.GetDirectoryName(fileLink.FixSaveFilePath);

            xlTaskItem.FileName = fileName;
            xlTaskItem.SaveTo   = AppDomain.CurrentDomain.BaseDirectory.TrimEnd('\\') + "\\" + folderName;
            xlTaskItem.Url      = fileLink.Link;
            return(xlTaskItem);
        }
Esempio n. 3
0
        public static XLTaskItem ConvertToXLTaskItem(AjaxTaskDto taskDto)
        {
            //fix encode problems
            taskDto.SaveFilePath = taskDto.SaveFilePath.Trim().FixEmpty();

            var xlTaskItem = new XLTaskItem();
            var fileName   = Path.GetFileName(taskDto.SaveFilePath);
            var folderName = Path.GetDirectoryName(taskDto.SaveFilePath);

            xlTaskItem.FileName = fileName;
            xlTaskItem.SaveTo   = AppDomain.CurrentDomain.BaseDirectory.TrimEnd('\\') + "\\" + folderName;
            xlTaskItem.Url      = taskDto.Link;
            return(xlTaskItem);
        }
Esempio n. 4
0
        private MessageResult ProcessTask(XLHelper xlHelper, XLTaskItem xlTaskItem)
        {
            var start = DateTime.Now;

            ConsoleHelper.NewLine();
            var startTask = xlHelper.StartTask(xlTaskItem);

            var logFilePath = AppDomain.CurrentDomain.BaseDirectory.TrimEnd('\\') + "\\fail.txt";

            TryFixFailFile(logFilePath);
            //·ÀÖ¹Á¬½ÓÌ«¿ì£¬×´Ì¬·µ»ØµÄ´íÎó
            Thread.Sleep(3000);

            var processSuccess = false;

            ConsoleHelper.UpdateLine(string.Format("Processing: {0} => ", startTask.FileName));
            int tryConnectCount = 0;

            for (int i = 0; i < ProcessTaskMaxSeconds; i++)
            {
                var queryTask = xlHelper.QueryTask(startTask);
                if (queryTask.Result.Success)
                {
                    processSuccess = true;
                    ConsoleHelper.UpdateLine(string.Format("Processing: {0} => 100%", startTask.FileName));
                    break;
                }

                var completePercent = (float)queryTask.Result.Data;
                ConsoleHelper.UpdateLine(string.Format("Processing: {0} => {1}%", startTask.FileName, (int)(completePercent * 100)));

                if (Math.Abs(completePercent) < 0.0001)
                {
                    tryConnectCount++;
                    ConsoleHelper.UpdateLine(string.Format("Processing: {0} => {1}%  => connect time: {2}", startTask.FileName, (int)(completePercent * 100), tryConnectCount));
                }

                if (tryConnectCount > 30)
                {
                    var filePath = string.Format("{0}\\{1}",
                                                 startTask.SaveTo,
                                                 startTask.FileName);
                    var message = string.Format("{0}\n", filePath);
                    if (File.Exists(filePath))
                    {
                        processSuccess = true;
                    }
                    ConsoleHelper.NewLine();
                    Console.WriteLine(message);
                    File.AppendAllText(logFilePath, message);
                    break;
                }

                Thread.Sleep(1000);
            }

            var end            = DateTime.Now;
            var processSeconds = (int)(end - start).TotalSeconds;

            Console.WriteLine("\n{0} Process Task Use Seconds: {1}", xlTaskItem.FileName, processSeconds);

            var mr = new MessageResult();

            mr.Success = processSuccess;
            mr.Message = string.Format("Processing Complete: {0} => {1}({2})", startTask.FileName, processSuccess, processSeconds);
            mr.Data    = processSeconds;
            return(mr);
        }