private static XElement CreateFeatureElement(Feature feature) { return new XElement("Feature", new XElement("Name", feature.Name), new XElement("SupportLevel", feature.SupportLevel.ToString()), new XElement("Type", feature.Type.ToString()), new XElement("Features", feature.Features.Select(CreateFeatureElement))); }
private void AddFeature_Execute() { var list = SelectedFeature == null ? Features : SelectedFeature.Features; var newFeature = new Feature { Name = "New Feature", SupportLevel = SupportLevels.None }; list.Add(newFeature); SelectedFeature = newFeature; }
private Feature GetParentFeature(Feature curFeature, Feature feature) { var source = curFeature == null ? Features : curFeature.Features; if (source.Any(f => f == feature)) return curFeature; return source .Select(f => GetParentFeature(f, feature)) .FirstOrDefault(f => f != null); }
private void DeleteFeature_Execute() { if (SelectedFeature == null) return; var parent = GetParentFeature(null, SelectedFeature); if (parent == null) Features.Remove(SelectedFeature); else parent.Features.Remove(SelectedFeature); SelectedFeature = null; }