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); } }
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); } }