Exemplo n.º 1
0
 public SerializableConflictResolutionRule(ConfigConflictResolutionRule edmResolutionRule)
 {
     this.StorageId     = edmResolutionRule.Id;
     this.ReferenceName = edmResolutionRule.ReferenceName;
     edmResolutionRule.ConflictTypeReference.Load();
     this.ConflictType = new SerializableConflictType(edmResolutionRule.ConflictType);
     edmResolutionRule.ResolutionActionReference.Load();
     this.ResolutionAction = new SerializableResolutionAction(edmResolutionRule.ResolutionAction);
     edmResolutionRule.RuleScopeReference.Load();
     this.Scope                = new SerializableResolutionRuleScope(edmResolutionRule.RuleScope);
     this.ScopeInfoUniqueId    = edmResolutionRule.ScopeInfoUniqueId;
     this.SourceInfoUniqueId   = edmResolutionRule.SourceInfoUniqueId;
     this.RuleDataXmlDocString = edmResolutionRule.RuleData;
     this.Status               = edmResolutionRule.Status;
 }
        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);
            }
        }