public static MorphAction Deserialize(XmlElement element, DeserializationContext context)
 {
     var cdata = element.ChildNodes.OfType<XmlCDataSection>().Single();
     var doc = new XmlDocument();
     doc.LoadXml(cdata.Value);
     var typeDef = new WorkItemTypeDefinition(doc);
     return new ImportWorkItemTypeDefinitionMorphAction(typeDef);
 }
 public AddedWorkItemTypeDefinitionDifference(WorkItemTypeDefinition witd)
 {
     _witd = witd;
 }
        public override void Execute(ExecutionContext context)
        {
            if (_subActions.Count == 0)
            {
                return;
            }

            var project = context.GetWorkItemProject();
            project.Store.RefreshCache(true);
            var witdElement = project.WorkItemTypes[_workItemTypeName].Export(false).DocumentElement;

            foreach (var action in _subActions)
            {
                action.Execute(witdElement);
            }

            var workItemTypeDefinition = new WorkItemTypeDefinition(witdElement, true); // TODO perform actions on WorkItemTypeDefinition instead of witdElement directly

            var importAction = new ImportWorkItemTypeDefinitionMorphAction(workItemTypeDefinition);
            importAction.Execute(context);
        }
 public ImportWorkItemTypeDefinitionMorphAction(WorkItemTypeDefinition typeDefinition)
 {
     _typeDefinition = typeDefinition;
 }