private ConfigConflictResolutionRuleScope ImportScope(SerializableResolutionRuleScope serializableResolutionRuleScope)
        {
            if (m_oldStorageIdToNewEdmScope.ContainsKey(serializableResolutionRuleScope.StorageId))
            {
                return(m_oldStorageIdToNewEdmScope[serializableResolutionRuleScope.StorageId]);
            }
            else
            {
                var query = from s in m_context.ConfigConflictResolutionRuleScopeSet
                            where s.Scope.Equals(serializableResolutionRuleScope.Scope)
                            select s;

                ConfigConflictResolutionRuleScope edmScope;
                if (query.Count() > 0)
                {
                    edmScope = query.First();
                }
                else
                {
                    edmScope = ConfigConflictResolutionRuleScope.CreateConfigConflictResolutionRuleScope(
                        0, serializableResolutionRuleScope.Scope);
                    m_context.AddToConfigConflictResolutionRuleScopeSet(edmScope);
                    m_context.TrySaveChanges();
                }
                m_oldStorageIdToNewEdmScope.Add(serializableResolutionRuleScope.StorageId, edmScope);
                return(edmScope);
            }
        }
Example #2
0
        public SerializableResolutionRuleScope(ConfigConflictResolutionRuleScope edmScope)
        {
            if (null == edmScope)
            {
                throw new ArgumentNullException("scope");
            }

            this.StorageId = edmScope.Id;
            this.Scope     = edmScope.Scope;
        }
        private void ImportRule(SerializableConflictResolutionRule rule)
        {
            if (!m_oldRuleRefNameToNewOne.ContainsKey(rule.ReferenceName))
            {
                ConfigConflictType                edmConflictType     = ImportConflictType(rule.ConflictType);
                ConfigConflictResolutionAction    edmResolutionAction = ImportResolutionAction(rule.ResolutionAction);
                ConfigConflictResolutionRuleScope edmRuleScope        = ImportScope(rule.Scope);

                Guid   newRuleRefName                = Guid.NewGuid();
                string newRuleDataXmlDocString       = rule.RuleDataXmlDocString.Replace(rule.ReferenceName.ToString(), newRuleRefName.ToString());
                ConfigConflictResolutionRule edmRule = ConfigConflictResolutionRule.CreateConfigConflictResolutionRule(
                    0, newRuleRefName, rule.ScopeInfoUniqueId, rule.SourceInfoUniqueId, newRuleDataXmlDocString, DateTime.Now, rule.Status);
                m_context.AddToConfigConflictResolutionRuleSet(edmRule);

                edmRule.ConflictType     = edmConflictType;
                edmRule.ResolutionAction = edmResolutionAction;
                edmRule.RuleScope        = edmRuleScope;

                m_context.TrySaveChanges();

                m_oldRuleRefNameToNewOne.Add(rule.ReferenceName, newRuleRefName);
            }
        }