예제 #1
0
        public void DeserializeConflictResolutionRuleCollection()
        {
            using (TfsMigrationConsolidatedDBEntities context = TfsMigrationConsolidatedDBEntities.CreateInstance())
            {
                var rules = from r in context.ConfigConflictResolutionRuleSet
                            select r;

                SerializableConflictResolutionRuleCollection collection = new SerializableConflictResolutionRuleCollection();
                var serializer = new GenericSerializer <SerializableConflictResolutionRuleCollection>();
                foreach (ConfigConflictResolutionRule rule in rules)
                {
                    SerializableConflictResolutionRule serializableRule = new SerializableConflictResolutionRule(rule);
                    collection.AddRule(serializableRule);
                }

                string serializedText = serializer.Serialize(collection);
                var    ruleSerializer = new GenericSerializer <SerializableConflictResolutionRule>();
                var    newCollection  = serializer.Deserialize(serializedText);
                foreach (var serializableRule in newCollection.Rules)
                {
                    Trace.WriteLine("============================");
                    string ruleText = ruleSerializer.Serialize(serializableRule);
                    Trace.WriteLine(ruleText);
                }
            }
        }
예제 #2
0
        public void SerializeConflictResolutionRule()
        {
            using (TfsMigrationConsolidatedDBEntities context = TfsMigrationConsolidatedDBEntities.CreateInstance())
            {
                var rules = from r in context.ConfigConflictResolutionRuleSet
                            select r;

                var serializer = new GenericSerializer <SerializableConflictResolutionRule>();
                foreach (ConfigConflictResolutionRule rule in rules)
                {
                    SerializableConflictResolutionRule serializableRule = new SerializableConflictResolutionRule(rule);
                    string serializedText = serializer.Serialize(serializableRule);

                    Trace.WriteLine(serializedText);
                }
            }
        }
        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);
            }
        }