/// <summary> /// Обработчик пункта меню Настройки - Обновить базу номерных диапозонов /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void UpdateOperatorCodes_ToolStripMenuItem_Click(object sender, EventArgs e) { if (openFileDialogCSV.ShowDialog() != DialogResult.OK) { return; } var fileNameCsv = openFileDialogCSV.FileName; int countSuccessed = 0; int countFailed = 0; int countTotal = 0; using (var reader = new StreamReader(fileNameCsv)) { while (!reader.EndOfStream) { countTotal++; reader.ReadLine(); } } using (var reader = new StreamReader(fileNameCsv)) { int i = 0; while (!reader.EndOfStream) { i++; Log($@"Обработка записи {i} / {countTotal}"); var line = reader.ReadLine(); var values = line.Split(new char[] { ';', ',' }); if (values.Count() != 7) { MessageBox.Show("Формат CSV файла не соответствует для импорта данных.\n Должно быть 7 колонок разделенные запятой или точкой запятой: Код, МинЗначениеДиапазона, МаксЗначениеДиапазона, ОбъемНомернойЕмкости, Оператор, Регион, Направление"); return; } try { var valueCode = values[0]; var valueMin = values[1]; var valueMax = values[2]; var valueOperator = values[4]; var valueRegion = values[5]; var valueDistrict = values[6]; var code = Code.GetByTitle(valueCode); if (code is null) { code = new Code { Title = valueCode }; code.Save(); } var operatorModel = Operator.GetByTitle(valueOperator); if (operatorModel is null) { operatorModel = new Operator { Title = valueOperator }; operatorModel.Save(); } var district = District.GetByTitle(valueDistrict); if (district is null) { district = new District { Title = valueDistrict }; district.Save(); } var region = IndexMobileEntity.Models.Region.GetByTitle(valueRegion); if (region is null) { region = new IndexMobileEntity.Models.Region { Title = valueRegion, District = district }; region.Save(); } var capacity = new Capacity { MinValue = Convert.ToInt32(valueMin), MaxValue = Convert.ToInt32(valueMax), Code = code, Operator = operatorModel, Region = region }; capacity.Save(); countSuccessed++; } catch { countFailed++; } } } string strLog = $@"Импорт завершен. Успешно внесено: {countSuccessed}. Ошибочно внесено: {countFailed}."; MessageBox.Show(strLog); }