Пример #1
0
        public List <Field> ReadFields(ILineRetriever lineRetriever)
        {
            var fieldData = new List <List <CellType> >();
            var fields    = CreateInitialFields(lineRetriever, fieldData);

            PopulateFields(fields, fieldData);
            return(fields);
        }
Пример #2
0
        private List <Field> CreateInitialFields(ILineRetriever lineRetriever, ICollection <List <CellType> > fieldData)
        {
            var allFields = new List <Field>();

            while (true)
            {
                var line = lineRetriever.GetNextLine();
                if (int.TryParse(line, out _))
                {
                    var(row, col) = LineParser.GetSize(line);
                    if (row == 0 || col == 0)
                    {
                        break;
                    }

                    allFields.Add(new Field(row, col));
                }
                else
                {
                    fieldData.Add(LineParser.GetFieldRow(line));
                }
            }
            return(allFields);
        }