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 FormatChecker(FileParser parser, uint lineLength)
 {
     Guard.IsNotNull(parser, "parser", "A parser is required");
     _parser     = parser;
     _lineLength = lineLength;
 }