private static void LoadNodesFromXML(XElement a_element, SudokuSolutionNode a_parent) { a_element.Element("solution_nodes").Elements().ForEach(child_element => { SudokuBoard board = SudokuBoard.LoadFromXML(child_element.Element("board")); SudokuSolutionNode child_node = a_parent.AddNode( board, (SudokuSolutionNodeState)Enum.Parse(typeof(SudokuSolutionNodeState), child_element.Attribute("state").Value), SudokuSolution.LoadFromXML(child_element.Element("solution"), board) ); LoadNodesFromXML(child_element, child_node); }); }
private static SudokuIntermediateSolution LoadFromXML(XElement a_element) { try { SudokuBoard before = SudokuBoard.LoadFromXML(a_element.Element("board_before")); SudokuBoard after = SudokuBoard.LoadFromXML(a_element.Element("board_after")); SudokuSolution solution = SudokuSolution.LoadFromXML(a_element.Element("solution"), before); SudokuIntermediateSolution intermediate_solution = new SudokuIntermediateSolution(before, after, solution); return(intermediate_solution); } catch { return(null); } }