public Board GetBoard() { var parser = new FileParser(_fileName); var checker = new FormatChecker(parser, _dimensions.Width); if (!checker.IsValid()) { throw new FileLoadException("Invalid file format detected."); } var cursor = 0; var fileContent = parser.LoadContent(); var digits = new uint[fileContent.Length * _dimensions.Width]; foreach (var line in fileContent) { var uintArray = line.ToCharArray().Select(c => uint.Parse(c.ToString())).ToArray(); Array.Copy(uintArray, 0, digits, cursor, uintArray.Length); cursor += uintArray.Length; } return(new Board(digits, _dimensions)); }
public bool IsValid() { var content = _parser.LoadContent(); return(content.All(ValidLine)); }