Пример #1
0
        public void UpdateSubScopeReferenceProperties(TECSubScope subScope)
        {
            var templateSS = SubScopeSynchronizer.GetTemplate(subScope);

            if (templateSS != subScope)
            {
                setProperties(subScope, templateSS);
            }
            SubScopeSynchronizer.ActOnReferences(templateSS, updateSubScope);
            void updateSubScope(TemplateSynchronizer <TECSubScope> synchronizer, TECSubScope template)
            {
                foreach (TECSubScope item in synchronizer.GetFullDictionary()[template])
                {
                    setProperties(template, item);
                }
            }

            void setProperties(TECSubScope tSS, TECSubScope rSS)
            {
                rSS.CopyPropertiesFromScope(tSS);
                rSS.ScopeBranches.ObservablyClear();
                foreach (TECScopeBranch branch in tSS.ScopeBranches)
                {
                    rSS.ScopeBranches.Add(new TECScopeBranch(branch));
                }
            }
        }