Example #1
0
        //Получение сгенерированных строк
        public List<Row> GetRandomRows(int columnQuantity, int rowQuantity, int stringLenght)
        {
            var randomRows = new List<Row>(); 
            var factory = new Factory(stringLenght);

            factory.GenerateListRandomTypes(columnQuantity); //Генерация случайных типов
            var header = new Row(0);

            //Получение заголовка
            for(var headcellIndex = 0; headcellIndex < columnQuantity; headcellIndex++)
            {
                var cell = new Cell(headcellIndex);
                cell.Value = factory.GetHeaderRandomValue(headcellIndex);
                header.Cells.Add(cell);
            }
            randomRows.Add(header);

            //Генерация остальных строк
            for(var rowIndex = 1; rowIndex <= rowQuantity; rowIndex++)
            {
                var row = new Row(rowIndex); //Создание строки с ID
                for(var cellIndex = 0; cellIndex < columnQuantity; cellIndex++)
                {
                    var cell = new Cell(cellIndex);
                    cell.Value = factory.GetRandomValue(cellIndex); //Генерация значения
                    row.Cells.Add(cell);
                }
                randomRows.Add(row);
            }
            return randomRows;
        }
Example #2
0
        //Парсинг CSV
        public List<Row> ParseCSV()
        {
            Factory factory = new Factory();
            List<Row> result = new List<Row>();
            string[] rows = GetRows();
            string headRow = rows[0];
            List<string> types = GetTypes(headRow);

            for (var rowIndex = 0; rowIndex < rows.Length; rowIndex++)
            {
                var row = new Row(rowIndex);
                string line = rows[rowIndex];

                if (string.IsNullOrWhiteSpace(line))
                {
                    Console.WriteLine("Строка пуста, файл некорректен");
                    Console.ReadKey();
                    Environment.Exit(1);
                }

                string[] parts = SplitLine(line);

                for (var cellIndex = 0; cellIndex < parts.Length; cellIndex++)
                {
                    var cell = new Cell(cellIndex);
                    string part = parts[cellIndex]; //Значение
                    string type = types[cellIndex]; //Тип

                    string piece;

                    //Обработка правил CSV формата
                    if (rowIndex == 0)
                    {
                        string columnName = part.Split(nameTypeSeparator).First();
                        string typeName = part.Split(nameTypeSeparator).Last(); 
                        var handledColumnName = HandleSpecialSymbolsAndQoute(columnName);
                        piece = handledColumnName + nameTypeSeparator + typeName; //Получение обработанного значения ячейки
                        cell.Value = factory.GetValueFromString(piece, headerType); //Получение значения необходимого типа
                    }
                    else 
                    {
                        piece = HandleSpecialSymbolsAndQoute(part); //Получение обработанного значения
                        cell.Value = factory.GetValueFromString(piece, type); //Получение значения необходимого типа
                    }
                    row.Cells.Add(cell);
                }
                result.Add(row);
            }
            return result;
        }
        public static Place FromRow(Row row, int id)
        {
            var place = new Place
            {
                Id = id,
                EnglishName = (string) row.ValueOfColumnContaining("English"),
                Type = (string) row.ValueOfColumnContaining("Type"),
                Parish = (string) row.ValueOfColumnContaining("Parish"),
                Keverang = (string) row.ValueOfColumnContaining("Keverang"),
                GridReference = (string) row.ValueOfColumnContaining("Grid"),
                CornishName = (string) row.ValueOfColumnContaining("Cornish"),
                Administration = (string) row.ValueOfColumnContaining("Administration"),
                Notes = (string) row.ValueOfColumnContaining("Notes"),
                Etymology = (string) row.ValueOfColumnContaining("Etymology"),
                HistoricForms = (string) row.ValueOfColumnContaining("Historic")
            };

            return place;
        }
Example #4
0
        //Получение типа столбца для проверки фильтра
        public ConverteType GetFilterType(Row header, string columnName)
        {
            Factory factory = new Factory();

            foreach (var cell in header.Cells)
            {
                string name = cell.Value.DisplayValue().Split(nameTypeSeparator).First();
                if (name == columnName)
                {
                    string columnType = cell.Value.DisplayValue().Split(nameTypeSeparator).Last(); 
                    return factory.GetConverteType(columnType);
                }
            }
            NotFoundColumnName();
            return ConverteType.String; //Метод должен вернуть значение
        }
Example #5
0
        //Получение номера столбца
        public int GetColumnId(Row header, string columnName)
        {
            foreach(var cell in header.Cells)
            {
                string name = cell.Value.DisplayValue().Split(nameTypeSeparator).First();
                if (name == columnName)
                    return cell.ColumnId;
            }

            NotFoundColumnName();
            return 0;
        }