Example #1
0
        static void Main(string[] args)
        {
            TraceFactory.AddTraceConsole();
            SplitArgs Args = new SplitArgs(args);

            string SourceDir = Args.GetValue("sourcedir", "");

            Trace.WriteLine($"Source directory = {SourceDir}");

            if (string.IsNullOrWhiteSpace(SourceDir) || !Directory.Exists(SourceDir))
            {
                Usage($"Missing source directory : directory is missing or access is denied");
            }

            InitTitle($"Processing {SourceDir}");

            EProcessStatus ProcessStatus = ProcessDirectory(new DirectoryInfo(SourceDir));

            if (ProcessStatus != EProcessStatus.Ok)
            {
                ConsoleExtension.Pause();
                Environment.Exit(1);
            }

            //ConsoleExtension.Pause();
            Environment.Exit(0);
        }
Example #2
0
        public Result FinishGrabRequest(DbSession session, TGrabRequest request, EResultCode code, string message)
        {
            EProcessStatus status = EProcessStatus.Ready;

            switch (code)
            {
            case EResultCode.Success:
                status = EProcessStatus.Success;
                break;

            case EResultCode.Failure:
                status = EProcessStatus.Failure;
                break;

            case EResultCode.Error:
                status = EProcessStatus.Error;
                break;

            default:
                ExceptionHelper.DoWhileResultCodeHandlerNotImplemented();
                break;
            }
            return(new Result()
            {
                ResultCode = request.Settle(session, status, message) ? EResultCode.Success : EResultCode.Failure, Message = message
            });
        }
Example #3
0
 public virtual void Load(ref FashionPositionInfo newFpi, HashSet <string> loadedPath)
 {
     if (loadedPath != null)
     {
         if (!string.IsNullOrEmpty(location) && !loadedPath.Contains(location))
         {
             loadedPath.Add(location);
         }
         else
         {
             processStatus = EProcessStatus.EProcessed;
         }
     }
 }
Example #4
0
 public bool MakePath(ref FashionPositionInfo newFpi, HashSet <string> loadedPath)
 {
     fpi = newFpi;
     if (!string.IsNullOrEmpty(fpi.equipName))
     {
         location      = "Equipments/" + fpi.equipName;
         processStatus = EProcessStatus.EProcessing;
     }
     if (loadedPath != null)
     {
         if (!string.IsNullOrEmpty(location) && !loadedPath.Contains(location))
         {
             loadedPath.Add(location);
             return(true);
         }
         else
         {
             processStatus = EProcessStatus.EProcessed;
             return(false);
         }
     }
     return(!string.IsNullOrEmpty(location));
 }
Example #5
0
        static private EProcessStatus ProcessDirectory(DirectoryInfo directory)
        {
            try {
                Trace.WriteLine($"Processing {directory.FullName}");
                Trace.Indent();

                string CbzFilename = $"{directory.FullName}.cbz";

                Trace.WriteLine($"Attempt to create {CbzFilename}");
                try {
                    if (directory == null || !Directory.Exists(directory.FullName))
                    {
                        Trace.WriteLine($"  => Unable to create {CbzFilename} file : source directory is missing or access is denied", Severity.Error);
                        return(EProcessStatus.Error);
                    }

                    DirectoryInfo[] SubDirs = directory.GetDirectories("*", SearchOption.TopDirectoryOnly);

                    if (SubDirs.Count() > 0)
                    {
                        Trace.WriteLine($"  => ## Found {SubDirs.Count()} sub-directories ##");
                        EProcessStatus GlobalProcessStatus = EProcessStatus.Ok;
                        foreach (DirectoryInfo DirectoryItem in SubDirs)
                        {
                            EProcessStatus ProcessStatus = ProcessDirectory(DirectoryItem);
                            if (ProcessStatus != EProcessStatus.Ok)
                            {
                                GlobalProcessStatus = ProcessStatus;
                            }
                        }
                        return(GlobalProcessStatus);
                    }
                    else
                    {
                        IEnumerable <FileInfo> ExcludedFiles = directory.GetFiles("*", SearchOption.TopDirectoryOnly).Where(x => ExcludedExtensions.Contains(x.Extension.ToLower()));
                        if (ExcludedFiles.Count() > 0)
                        {
                            Trace.WriteLine($"  => *** Skipping {CbzFilename} : Found excluded files in folder ***", Severity.Warning);
                            foreach (string FileItem in ExcludedFiles.Select(x => x.Name))
                            {
                                Trace.WriteLine($"    {FileItem}");
                            }
                            return(EProcessStatus.Warning);
                        }

                        if (File.Exists(CbzFilename))
                        {
                            Trace.WriteLine($"  => Unable to create {CbzFilename} : file already exists", Severity.Error);
                            return(EProcessStatus.Error);
                        }

                        ChangeTitle($"Building {CbzFilename}");
                        Trace.WriteLine($"  => Generate {CbzFilename}");
                        ZipFile.CreateFromDirectory(directory.FullName, CbzFilename, CompressionLevel.Fastest, false);
                        directory.Delete(true);
                        ChangeTitle();
                        return(EProcessStatus.Ok);
                    }
                } catch (Exception ex) {
                    Trace.WriteLine($"  => Error while processing : {ex.Message}", Severity.Error);
                    return(EProcessStatus.Error);
                }
            } finally {
                Trace.Unindent();
            }
        }
Example #6
0
 public virtual void Reset()
 {
     processStatus = EProcessStatus.ENotProcess;
     location      = "";
 }
Example #7
0
 public bool Settle(DbSession session, EProcessStatus processStatus, string message = "")
 {
     ProcessStatus = processStatus;
     Message       = message;
     return(this.DbUpdate(session, TGrabRequestProperties.ProcessStatus, TGrabRequestProperties.Message));
 }