/// <summary> /// Обрабатываем базу городов /// </summary> /// <param name="cityStream"></param> static void ProceedCities(Stream cityStream) { Console.Write("Загружаем локации... "); LoadService service = new LoadService(); string[] data; Int32 id; string locationName, regionName, areaName; Decimal latitlude, longitude; using (DataReader reader = new DataReader(cityStream)) { while (reader.HasMore()) { data = reader.Next(); locationName = data[1]; regionName = data[2]; areaName = data[3]; if (!Int32.TryParse(data[0], out id)) { Console.WriteLine("Ошибка при чтении локаций: неверный формат идентификатора локации"); Environment.Exit(1); } if (!Decimal.TryParse(data[4].Replace('.', ','), out latitlude)) { Console.WriteLine("Ошибка при чтении локаций: неверный формат широты центра локации"); Environment.Exit(1); } if (!Decimal.TryParse(data[5].Replace('.', ','), out longitude)) { Console.WriteLine("Ошибка при чтении локаций: неверный формат долготы центра локации"); Environment.Exit(1); } Area area = service.GetOrCreateArea(areaName); Region region = service.GetOrCreateRegion(regionName, area); service.UpdateOrCreateLocation(id, locationName, latitlude, longitude, region); } } Console.WriteLine("Локации успешно загружены."); }