public static ProjectStructureItem Build(CompositeSaxEvent saxEvent, IReadOnlyCollection <SaxEvent> descendants) { var endElementEvents = descendants?.OfType <EndElementEvent>() .ToArray(); return(saxEvent.Switch <CompositeSaxEvent, ProjectStructureItem>() .Case(IsReference, x => HandleReference(x, endElementEvents)) .Case(IsProjectReference, x => HandleProjectReference(x, endElementEvents)) .Case(IsAssemblyName, x => HandleAssemblyName(x, descendants)) .Case(IsOutputType, x => HandleOutputType(x, descendants)) .Case(x => IsAppConfig(x, descendants), x => HandleAppConfig(x, descendants)) .Case(x => IsPackagesConfig(x, descendants), x => HandlePackagesConfig(x, descendants)) .Evaluate()); }
public static IEnumerable <ProjectStructureItem> Build(CompositeSaxEvent saxEvent, IReadOnlyCollection <SaxEvent> descendants) { var endElementEvents = descendants?.OfType <EndElementEvent>() .ToArray(); return(saxEvent.Switch <CompositeSaxEvent, ProjectStructureItem>() .Case(IsReference, x => HandleReference(x, endElementEvents)) .Case(IsProjectReference, x => HandleProjectReference(x, endElementEvents)) .Case(IsAssemblyName, x => HandleAssemblyName(x, descendants)) .Case(IsOutputType, x => HandleOutputType(x, descendants)) .Case(x => IsAppConfig(x, descendants), x => HandleAppConfig(x, descendants)) .Case(x => IsPackagesConfig(x, descendants), x => HandlePackagesConfig(x, descendants)) .Case(IsTargetFrameworkVersion, x => HandleTargetFrameworkVersion(x, descendants)) .Case(IsCompolible, x => HandleCompilable(x, endElementEvents)) .EvaluateAll()); }