public AddedWorkItemStateDifference(string currentWorkItemTypeName, WitdState state)
 {
     _currentWorkItemTypeName = currentWorkItemTypeName;
     _state = state;
 }
 public AddStateModifyWorkItemTypeDefinitionSubAction(WitdState state)
 {
     _state = state;
 }
        public static ModifyWorkItemTypeDefinitionSubAction Deserialize(XmlElement element, DeserializationContext context)
        {
            var cdata = element.ChildNodes.OfType<XmlCDataSection>().Single();
            var doc = new XmlDocument();
            doc.LoadXml(cdata.Value);

            var state = new WitdState(doc.DocumentElement);
            return new AddStateModifyWorkItemTypeDefinitionSubAction(state);
        }
        public ILinkableAction AddWorkflowState(WitdState state)
        {
            var newSubAction = new AddStateModifyWorkItemTypeDefinitionSubAction(state);

            var existingAction = _subActions
                .OfType<AddStateModifyWorkItemTypeDefinitionSubAction>()
                .FirstOrDefault(a => a.Name == newSubAction.Name); // match on more than name?

            if (existingAction != null) return existingAction;

            _subActions.Add(newSubAction);
            return newSubAction;
        }
 public RenamedWorkItemStateDifference(string currentWorkItemTypeName, string currentStateName, WitdState goalState)
 {
     _currentWorkItemTypeName = currentWorkItemTypeName;
     _currentStateName = currentStateName;
     _goalState = goalState;
 }