public void ParseLine(string line) { if (IsCommentLine(line)) { return; } bool isLineValid = false; int currentIndex = 0; string?itemName = ParseString(line, ref currentIndex, ';'); string?itemId = ParseString(line, ref currentIndex, ';'); if ((!String.IsNullOrEmpty(itemName)) && (!String.IsNullOrEmpty(itemId))) { isLineValid = stockPartValidator.Validate(line, currentIndex); if (isLineValid) { while (currentIndex < line.Length) { string?shelf = ParseString(line, ref currentIndex, ','); int quantity = ParseInt(line, ref currentIndex, '|'); warehouse.AddItemToShelf(itemId, itemName, quantity, shelf !); } } } if (!isLineValid) { invalidLines.Add(line); } }