Пример #1
0
        public void ResolveWithDefaults()
        {
            // Add missing entries
            foreach (PathEntry defaultpath in DefaultValues)
            {
                var path = Paths.FirstOrDefault(p => p.System == defaultpath.System && p.Type == defaultpath.Type);
                if (path == null)
                {
                    Paths.Add(defaultpath);
                }
            }

            List <PathEntry> entriesToRemove = new List <PathEntry>();

            // Remove entries that no longer exist in defaults
            foreach (PathEntry pathEntry in Paths)
            {
                var path = DefaultValues.FirstOrDefault(p => p.System == pathEntry.System && p.Type == pathEntry.Type);
                if (path == null)
                {
                    entriesToRemove.Add(pathEntry);
                }
            }

            foreach (PathEntry entry in entriesToRemove)
            {
                Paths.Remove(entry);
            }

            // Add missing displaynames
            var missingDisplayPaths = Paths.Where(p => p.SystemDisplayName == null).ToList();

            foreach (PathEntry path in missingDisplayPaths)
            {
                path.SystemDisplayName = DefaultValues.First(p => p.System == path.System).SystemDisplayName;
            }
        }