Exemplo n.º 1
0
        public override void Run(List <Variable> variablesList)
        {
            foreach (var variable in variablesList)
            {
                FileInfoSource      = FileInfoSource.Replace("@(" + variable.Name + ")", variable.Value);
                FileInfoDestination = FileInfoDestination.Replace("@(" + variable.Name + ")", variable.Value);
            }

            Console.Write($"Activating File {new FileInfo(FileInfoSource).Name} ... ");

            var fileMaker = new NgFileMaker();
            var fsource   = Environment.ExpandEnvironmentVariables(FileInfoSource);
            var fdest     = Environment.ExpandEnvironmentVariables(FileInfoDestination);

            var from = new System.IO.FileInfo(fsource);
            var to   = new System.IO.FileInfo(fdest);

            fileMaker.CopyFile(from, to);
            Console.WriteLine($"Done");
        }
Exemplo n.º 2
0
        public static Dictionary <string, FileInfoSource> EnumerateFiles(OGLContext context, string type, SearchOption option = SearchOption.AllDirectories, string pattern = "*.xml")
        {
            Dictionary <string, FileInfoSource> result = new Dictionary <string, FileInfoSource>(StringComparer.InvariantCultureIgnoreCase);

            try
            {
                string t  = type.TrimEnd('/', '\\').ToLowerInvariant() + "/";
                string tt = type.TrimEnd('/', '\\').ToLowerInvariant() + "\\";
                string p  = pattern.StartsWith("*") ? pattern.Substring(1, pattern.Length - 1).ToLowerInvariant() : pattern.ToLowerInvariant();
                foreach (var z in GetAllZips(context, type))
                {
                    string s = z.Value;
                    foreach (ZipArchiveEntry e in z.Key.Entries)
                    {
                        string f    = s.ToLowerInvariant() + "/" + t;
                        string ff   = s.ToLowerInvariant() + "\\" + tt;
                        string name = e.FullName.ToLowerInvariant();
                        if (name.StartsWith(t) && name.EndsWith(p))
                        {
                            if (option == SearchOption.AllDirectories || !name.Substring(t.Length).Contains("/"))
                            {
                                FileInfoSource fis = new FileInfoSource()
                                {
                                    Archive  = e,
                                    FullName = Path.Combine(AppPath, s, type, name.Substring(t.Length).Replace('/', Path.DirectorySeparatorChar)),
                                    Source   = z.Value
                                };
                                if (result.ContainsKey(fis.FullName))
                                {
                                    ConfigManager.LogError(fis.FullName + "already exists");
                                }
                                result.Add(fis.FullName, fis);
                            }
                        }
                        else if (name.StartsWith(f) && name.EndsWith(p))
                        {
                            if (option == SearchOption.AllDirectories || !name.Substring(f.Length).Contains("/"))
                            {
                                FileInfoSource fis = new FileInfoSource()
                                {
                                    Archive  = e,
                                    FullName = Path.Combine(AppPath, s, type, name.Substring(f.Length).Replace('/', Path.DirectorySeparatorChar)),
                                    Source   = z.Value
                                };
                                if (result.ContainsKey(fis.FullName))
                                {
                                    ConfigManager.LogError(fis.FullName + "already exists");
                                }
                                result.Add(fis.FullName, fis);
                            }
                        }
                        else if (name.StartsWith(tt) && name.EndsWith(p))
                        {
                            if (option == SearchOption.AllDirectories || !name.Substring(tt.Length).Contains("\\"))
                            {
                                FileInfoSource fis = new FileInfoSource()
                                {
                                    Archive  = e,
                                    FullName = Path.Combine(AppPath, s, type, name.Substring(tt.Length).Replace('\\', Path.DirectorySeparatorChar)),
                                    Source   = z.Value
                                };
                                if (result.ContainsKey(fis.FullName))
                                {
                                    ConfigManager.LogError(fis.FullName + "already exists");
                                }
                                result.Add(fis.FullName, fis);
                            }
                        }
                        else if (name.StartsWith(ff) && name.EndsWith(p))
                        {
                            if (option == SearchOption.AllDirectories || !name.Substring(ff.Length).Contains("/"))
                            {
                                FileInfoSource fis = new FileInfoSource()
                                {
                                    Archive  = e,
                                    FullName = Path.Combine(AppPath, s, type, name.Substring(ff.Length).Replace('/', Path.DirectorySeparatorChar)),
                                    Source   = z.Value
                                };
                                if (result.ContainsKey(fis.FullName))
                                {
                                    ConfigManager.LogError(fis.FullName + "already exists");
                                }
                                result.Add(fis.FullName, fis);
                            }
                        }
                    }
                }
            } catch (Exception e)
            {
                ConfigManager.LogError(e);
            }
            try
            {
                foreach (var f in GetAllDirectories(context, type))
                {
                    foreach (FileInfo file in f.Key.EnumerateFiles(pattern, option))
                    {
                        FileInfoSource fis = new FileInfoSource()
                        {
                            File     = file,
                            FullName = file.FullName,
                            Source   = f.Value
                        };
                        result[fis.FullName] = fis;
                    }
                }
            }
            catch (Exception e)
            {
                ConfigManager.LogError(e);
            }
            return(result);
        }