Пример #1
0
        /// <summary>
        /// Сравнение с другой папкой проекта пофайлово
        /// </summary>
        /// <param name="Dir2"></param>
        /// <returns>[0]-кол-во файлов новее чем в Dir2, [1]-старше чем в Dir2,
        /// [2]-новых файлов, [3]-отсутсвующих файлов по сравнению с Dir2</returns>
        public int[] CompairDir(Projdir Dir2)
        {
            int[] res    = new int[2];
            var   files2 = Dir2.AllFiles();
            //key - filepath
            //value - datetime
            var all = AllFiles();

            foreach (var filedate in all)
            {
                var n0 = all.Count(x => files2.Any(c => c.Key == x.Key && c.Value < x.Value));
                var n1 = all.Count(x => files2.Any(c => c.Key == x.Key && c.Value > x.Value));
                var n2 = all.Count(x => !files2.Any(c => c.Key == x.Key));
                var n3 = files2.Count(x => !all.Any(c => c.Key == x.Key));
            }

            return(res);
        }
Пример #2
0
        public List <Project> ReadAllProjects()
        {
            List <Project> Result = new List <Project>();

            try
            {
                doc = XDocument.Load(Filepath);
                var projs = from pr in doc.Descendants(ProjXML)
                            select new
                {
                    NAME     = pr.Attribute("name")?.Value,
                    AutoSync = pr.Attribute(CONSTS.AutoSync)?.Value,
                    Dirs     = pr.Descendants(DirXML),
                    ExcDirs  = pr.Descendants(CONSTS.ExceptXML)
                };
                foreach (var project in projs) //read each project
                {
                    var p = new Project(project.NAME);
                    if (project.AutoSync != null)
                    {
                        p.AutoSync = Boolean.Parse(project.AutoSync);
                    }
                    else
                    {
                        p.AutoSync = false;
                    }
                    foreach (var e in project.ExcDirs)
                    {                                                                   //Adding exceptions Dirs
                        string exDir = e.Attribute(CONSTS.AttDirName).Value.ToString(); //Exception DIR path from XML file
                        p.ExceptionDirs.Add(exDir);
                    }
                    foreach (var d in project.Dirs)
                    {   //read directory for the project
                        var projDir = new Projdir(d.Attribute(CONSTS.AttDirName).Value.TrimEnd('\\'), p, d.Attribute(CONSTS.PC_XML).Value);
                        p.AllProjectDirs.Add(projDir);
                    }
                    Result.Add(p);
                }
                return(Result);
            }
            catch (Exception)
            { return(Result); }
        }