private static List <string> GetAvailableStates(ElementSave elementSave, string categoryName) { List <string> toReturn = new List <string>(); if (elementSave != null) { if (string.IsNullOrEmpty(categoryName)) { toReturn = elementSave.States.Select(item => item.Name).ToList(); } else { // This could be defined in a base: var category = elementSave.GetStateSaveCategoryRecursively(categoryName); toReturn = category?.States.Select(item => item.Name).ToList(); } } return(toReturn); }