Esempio n. 1
0
        /// <summary>
        /// Obtient toutes les actions qui sont au niveau d'indentation spécifié et ont les valeurs spécifiées pour les indentations précédentes.
        /// </summary>
        /// <param name="indentationLevel">Le niveau d'indentation.</param>
        /// <param name="firstLevelsValue">Les valeurs pour les premiers niveaux d'indentation.</param>
        /// <param name="allActions">Toutes les actions.</param>
        /// <returns>
        /// Les actions qui sont au niveau d'indentation spécifié.
        /// </returns>
        public static IEnumerable <KAction> GetActionsAtIndentationLevel(int indentationLevel, int[] firstLevelsValue, IEnumerable <KAction> allActions)
        {
            Assertion.AreEquals(firstLevelsValue.Length, indentationLevel);

            return(allActions.Where(action =>
            {
                var isValid = true;
                isValid &= IndentationFromWBS(action.WBS) == indentationLevel;

                if (isValid)
                {
                    for (int i = 0; i < firstLevelsValue.Length; i++)
                    {
                        isValid &= GetNumberAtLevel(action.WBS, i) == firstLevelsValue[i];
                    }
                }

                return isValid;
            }));
        }