コード例 #1
0
        public string GetTargetState(WorkItem workItem, ICustomState targetState)
        {
            if (WorkItemTransitions == null)
            {
                return(null);
            }
            if (!WorkItemTransitions.ContainsKey(workItem.Type.Name))
            {
                var witName = workItem.Type.Name;
                List <Transition> witTransitions = GetTransitions(witName);
                WorkItemTransitions.Add(witName, witTransitions);
            }
            var transitions = WorkItemTransitions[workItem.Type.Name];

            if (transitions == null)
            {
                return(null);
            }

            var stateField = workItem.Fields[CoreField.State];

            // If the target state is the same state as the original state value of the work item it means we move a changed work item back to its original state
            if (targetState.WorkItemStates.Contains(stateField.OriginalValue))
            {
                return((string)stateField.OriginalValue);
            }

            var possibleStates = from Transition transition in transitions
                                 where transition.FromState == (string)stateField.OriginalValue && targetState.WorkItemStates.Contains(transition.ToState)
                                 select transition.ToState;

            return(possibleStates.Count() > 0 ? possibleStates.ElementAt(0) : null);
        }
コード例 #2
0
        /// <summary>
        /// Updates the grid columns.
        /// </summary>
        private void UpdateColumnWidth()
        {
            double size;

            foreach (DataGridColumn dataGridColumn in dataGrid.Columns)
            {
                ICustomState header = dataGridColumn.Header as ICustomState;

                if (header == null)
                {
                    continue;
                }

                if (Model != null && Model.SelectedWorkItem != null)
                {
                    if (header.Name == Model.SelectedWorkItem.State)
                    {
                        size = Math.Max(GetLargestWorkitemWithState(Model.SelectedWorkItem.State), 200);

                        if (dataGridColumn.Width.Value <= size + 21)
                        {
                            size = (size + 21) * ZoomFactor;
                            dataGridColumn.Width = new DataGridLength(size);
                        }

                        return;
                    }
                }
            }
        }
コード例 #3
0
        public void AddCustomState(string name)
        {
            ICustomState customState = DataObjectFactory.CreateObject <ICustomState> ();

            customState.Name  = name;
            customState.Color = DefaultStateColor;
            CustomStates.Add(customState);
        }
コード例 #4
0
 public static IEnumerable <WorkItem> GetWorkItemsByState(this IList <WorkItem> workItems, ICustomState state)
 {
     return(workItems.Where(c => state.WorkItemStates.Contains(c.State)));
 }
コード例 #5
0
 public string GetTargetState(WorkItem workItem, ICustomState targetState)
 {
     return(TaskboardService.GetTargetState(workItem, targetState));
 }