コード例 #1
0
        private void SetStandardDistricts(List <Miejscowosc> gusDistricts, Lokalizacje loc, Miejscowosc city)
        {
            foreach (var district in gusDistricts)
            {
                loc.Ulice.Where(q => q.Miejscowosc.Symbol == district.Symbol && q.Miejscowosc.Gmina.Symbol == district.Gmina.Symbol && q.Miejscowosc.Gmina.Powiat.Symbol == district.Gmina.Powiat.Symbol && q.Miejscowosc.Gmina.Powiat.Wojewodztwo.Symbol == district.Gmina.Powiat.Wojewodztwo.Symbol).ToList().ForEach(q => q.Miejscowosc = city);

                var cityName = city.Nazwa + "-";
                var name     = district.Nazwa.StartsWith(cityName) ? district.Nazwa.Substring(cityName.Length) : district.Nazwa;
                var d        = new Dzielnica
                {
                    Miejscowosc = city,
                    Symbol      = district.Symbol,
                    StanNa      = district.StanNa,
                    Nazwa       = name
                };
                loc.Dzielnice.Add(d);

                var regions = loc.Dzielnice.Where(q => q.Miejscowosc.Symbol == district.Symbol).ToList();
                loc.Rejony.AddRange(regions.Select(q => new Rejon
                {
                    Dzielnica = d,
                    Nazwa     = q.Nazwa,
                    Symbol    = q.Symbol,
                    StanNa    = q.StanNa
                }));
                loc.Dzielnice.RemoveAll(q => regions.Contains(q));
            }
            loc.Miejscowosci.RemoveAll(gusDistricts.Contains);
        }
コード例 #2
0
 private void PrepareNonStandardDistrict(List <Miejscowosc> gusDistricts, Lokalizacje loc, Miejscowosc city)
 {
     foreach (var district in gusDistricts)
     {
         loc.Ulice.Where(q => q.Miejscowosc.Symbol == district.Symbol && q.Miejscowosc.Gmina.Symbol == district.Gmina.Symbol && q.Miejscowosc.Gmina.Powiat.Symbol == district.Gmina.Powiat.Symbol && q.Miejscowosc.Gmina.Powiat.Wojewodztwo.Symbol == district.Gmina.Powiat.Wojewodztwo.Symbol).ToList().ForEach(q => q.Miejscowosc = city);
     }
     loc.Miejscowosci.RemoveAll(gusDistricts.Contains);
     loc.Dzielnice.RemoveAll(q => q.Miejscowosc.Gmina.Powiat.Nazwa == city.Nazwa);
 }
コード例 #3
0
 public void Export(Lokalizacje lokalizacje, string outputDirectoryPath)
 {
     ExportWojewodztwa(lokalizacje, Path.Combine(outputDirectoryPath, "wojewodztwa.sql"));
     ExportPowiaty(lokalizacje, Path.Combine(outputDirectoryPath, "powiaty.sql"));
     ExportGminy(lokalizacje, Path.Combine(outputDirectoryPath, "gminy.sql"));
     ExportMiejscowosci(lokalizacje, Path.Combine(outputDirectoryPath, "miejscowosci.sql"));
     ExportDzielnice(lokalizacje, Path.Combine(outputDirectoryPath, "dzielnice.sql"));
     ExportRejony(lokalizacje, Path.Combine(outputDirectoryPath, "rejony.sql"));
     ExportUlice(lokalizacje, Path.Combine(outputDirectoryPath, "ulice.sql"));
 }
コード例 #4
0
        public void ExportRejony(Lokalizacje lokalizacje, string outputFileName)
        {
            if (lokalizacje.Rejony.Count == 0)
            {
                if (File.Exists(outputFileName))
                {
                    File.Delete(outputFileName);
                }
                return;
            }

            WriteFile(outputFileName, lokalizacje.Rejony, q => $"INSERT INTO `location_cityregion` (`Id`, `CityDistrictId`, `Name`, `TerytId`) VALUES ({q.Lp}, (SELECT `location_citydistrict`.`Id` FROM `location_citydistrict` JOIN `location_city` ON `location_citydistrict`.`CityId` = `location_city`.`Id` WHERE `location_city`.`TerytId` = '{q.Dzielnica.Miejscowosc.Symbol}' AND `location_citydistrict`.`TerytId` = '{q.Dzielnica.Symbol}'), '{q.Nazwa}', '{q.Symbol}');");
        }
コード例 #5
0
ファイル: CsvCreator.cs プロジェクト: r00ti/ZTP
        public Lokalizacje Create(Models.Teryt teryt, bool useNaturalDistricts)
        {
            var loc = new Lokalizacje
            {
                Wojewodztwa = GetWojewodztwa(teryt)
            };

            loc.Powiaty      = GetPowiaty(teryt, loc.Wojewodztwa);
            loc.Gminy        = GetGminy(teryt, loc.Powiaty, loc.Wojewodztwa);
            loc.Miejscowosci = GetMiejscowosci(teryt);
            loc.Ulice        = GetUlice(teryt, loc.Powiaty, loc.Gminy, loc.Wojewodztwa, loc.Miejscowosci);

            return(loc);
        }
コード例 #6
0
ファイル: CsvExporter.cs プロジェクト: bpiec/teryt-parser
        private void ExportRejony(Lokalizacje lokalizacje, string outputFileName)
        {
            if (lokalizacje.Rejony.Count == 0)
            {
                if (File.Exists(outputFileName))
                {
                    File.Delete(outputFileName);
                }
                return;
            }

            const string header = "Lp.;Symbol miejscowości;Symbol dzielnicy;Symbol rejonu;Nazwa;Stan na";

            WriteFile(outputFileName, lokalizacje.Rejony, header, q => $"{q.Lp};{q.Dzielnica.Miejscowosc.Symbol};{q.Dzielnica.Symbol};{q.Symbol};{q.Nazwa};{q.StanNa:d}");
        }
コード例 #7
0
 public void ExportGminy(Lokalizacje lokalizacje, string outputFileName)
 {
     WriteFile(outputFileName, lokalizacje.Gminy, q => $"INSERT INTO `location_commune` (`Id`, `CountyId`, `Name`, `Type`, `TerytId`) VALUES ({q.Lp}, (SELECT `location_county`.`Id` FROM `location_county` JOIN `location_province` ON `location_county`.`ProvinceId` = `location_province`.`Id` WHERE `location_province`.`TerytId` = '{q.Powiat.Wojewodztwo.Symbol}' AND `location_county`.`TerytId` = '{q.Powiat.Symbol}'), '{q.Nazwa}', '{q.Rodzaj}', '{q.Symbol}');");
 }
コード例 #8
0
 public void ExportPowiaty(Lokalizacje lokalizacje, string outputFileName)
 {
     WriteFile(outputFileName, lokalizacje.Powiaty, q => $"INSERT INTO `location_county` (`Id`, `ProvinceId`, `Name`, `Type`, `TerytId`) VALUES ({q.Lp}, (SELECT `Id` FROM `location_province` WHERE `TerytId` = {q.Wojewodztwo.Symbol}), '{q.Nazwa}', '{q.Rodzaj}', '{q.Symbol}');");
 }
コード例 #9
0
 public void ExportWojewodztwa(Lokalizacje lokalizacje, string outputFileName)
 {
     WriteFile(outputFileName, lokalizacje.Wojewodztwa, q => $"INSERT INTO `location_province` (`Id`, `Name`, `TerytId`) VALUES ({q.Lp}, '{q.Nazwa}', '{q.Symbol}');");
 }
コード例 #10
0
ファイル: CsvExporter.cs プロジェクト: bpiec/teryt-parser
        private void ExportUlice(Lokalizacje lokalizacje, string outputFileName)
        {
            const string header = "Lp.;Symbol miejscowości;Symbol ulicy;Cecha;Nazwa 1;Nazwa 2;Stan na";

            WriteFile(outputFileName, lokalizacje.Ulice, header, q => $"{q.Lp};{q.Miejscowosc.Symbol};{q.Symbol};{q.Cecha};{q.Nazwa1};{q.Nazwa2};{q.StanNa:d}");
        }
コード例 #11
0
        private void AddCracowDistricts(Lokalizacje lokalizacje, Miejscowosc cracow)
        {
            #region Names

            var names = new Dictionary <string, List <string> >
            {
                {
                    "Stare Miasto (I)", new List <string>
                    {
                        "Kazimierz",
                        "Kleparz",
                        "Nowe Miasto",
                        "Nowy Świat",
                        "Piasek",
                        "Stare Miasto",
                        "Stradom",
                        "Warszawskie",
                        "Wawel"
                    }
                },
                {
                    "Grzegórzki (II)", new List <string>
                    {
                        "Dąbie",
                        "Grzegórzki",
                        "Kazimierz",
                        "Olsza",
                        "Osiedle Oficerskie",
                        "Wesoła"
                    }
                },
                {
                    "Prądnik Czerwony (III)", new List <string>
                    {
                        "Olsza",
                        "Olsza II",
                        "Prądnik Czerwony",
                        "Rakowice",
                        "Śliczna",
                        "Ugorek",
                        "Warszawskie",
                        "Wieczysta",
                        "Osiedle Gotyk"
                    }
                },
                {
                    "Prądnik Biały (IV)", new List <string>
                    {
                        "Azory",
                        "Bronowice Wielkie",
                        "Górka Narodowa",
                        "Górka Narodowa Wschód",
                        "Górka Narodowa Zachód",
                        "Osiedle Krowodrza Górka",
                        "Osiedle Witkowice Nowe",
                        "Prądnik Biały",
                        "Tonie",
                        "Witkowice",
                        "Żabiniec"
                    }
                },
                {
                    "Krowodrza (V)", new List <string>
                    {
                        "Cichy Kącik",
                        "Czarna Wieś",
                        "Krowodrza",
                        "Łobzów",
                        "Miasteczko Studenckie AGH",
                        "Nowa Wieś"
                    }
                },
                {
                    "Bronowice (VI)", new List <string>
                    {
                        "Bronowice",
                        "Bronowice Małe",
                        "Mydlniki",
                        "Osiedle Bronowice Nowe",
                        "Osiedle Widok Zarzecze"
                    }
                },
                {
                    "Zwierzyniec (VII)", new List <string>
                    {
                        "Bielany",
                        "Chełm",
                        "Olszanica",
                        "Półwsie Zwierzynieckie",
                        "Przegorzały",
                        "Wola Justowska",
                        "Zwierzyniec",
                        "Salwator",
                        "Zakamycze"
                    }
                },
                {
                    "Dębniki (VIII)", new List <string>
                    {
                        "Bodzów",
                        "Dębniki",
                        "Kobierzyn",
                        "Koło Tynieckie",
                        "Kostrze",
                        "Ludwinów",
                        "Podgórki Tynieckie",
                        "Pychowice",
                        "Sidzina",
                        "Skotniki",
                        "Tyniec",
                        "Zakrzówek",
                        "Kapelanka",
                        "Kliny Zacisze",
                        "Mochnaniec",
                        "Osiedle Europejskie",
                        "Osiedle Interbud",
                        "Osiedle Kolejowe",
                        "Osiedle Panorama",
                        "Osiedle Podwawelskie",
                        "Osiedle Proins",
                        "Osiedle Ruczaj",
                        "Osiedle Ruczaj-Zaborze"
                    }
                },
                {
                    "Łagiewniki-Borek Fałęcki (IX)", new List <string>
                    {
                        "Borek Fałęcki",
                        "Łagiewniki",
                        "Osiedle Cegielniana",
                        "Osiedle Zaułek Jugowicki"
                    }
                },
                {
                    "Swoszowice (X)", new List <string>
                    {
                        "Bania",
                        "Barycz",
                        "Jugowice",
                        "Kliny Borkowskie",
                        "Kosocice",
                        "Lusina",
                        "Łysa Góra",
                        "Opatkowice",
                        "Rajsko",
                        "Siarczana Góra",
                        "Soboniowice",
                        "Wróblowice",
                        "Zbydniowice"
                    }
                },
                {
                    "Podgórze Duchackie (XI)", new List <string>
                    {
                        "Kurdwanów",
                        "Kurdwanów Nowy",
                        "Osiedle Piaski Nowe",
                        "Osiedle Podlesie",
                        "Piaski Wielkie",
                        "Wola Duchacka",
                        "Wola Duchacka Wschód",
                        "Wola Duchacka Zachód"
                    }
                },
                {
                    "Bieżanów-Prokocim (XII)", new List <string>
                    {
                        "Bieżanów",
                        "Bieżanów Kolonia",
                        "Kaim",
                        "Łazy",
                        "Osiedle Bieżanów Nowy",
                        "Osiedle Kolejowe",
                        "Osiedle Medyków",
                        "Osiedle Na Kozłówce",
                        "Osiedle Nad Potokiem",
                        "Osiedle Parkowe",
                        "Osiedle Nowy Prokocim",
                        "Osiedle Złocień",
                        "Prokocim",
                        "Rżąka"
                    }
                },
                {
                    "Podgórze (XIII)", new List <string>
                    {
                        "Łutnia",
                        "Mateczny",
                        "Płaszów",
                        "Podgórze",
                        "Przewóz",
                        "Rybitwy",
                        "Zabłocie"
                    }
                },
                {
                    "Czyżyny (XIV)", new List <string>
                    {
                        "Czyżyny",
                        "Łęg",
                        "Osiedle 2 Pułku Lotniczego",
                        "Osiedle Akademickie",
                        "Osiedle Dywizjonu 303"
                    }
                },
                {
                    "Mistrzejowice (XV)", new List <string>
                    {
                        "Batowice",
                        "Dziekanowice",
                        "Mistrzejowice",
                        "Osiedle Bohaterów Września",
                        "Osiedle Kombatantów",
                        "Osiedle Mistrzejowice Nowe",
                        "Osiedle Oświecenia",
                        "Osiedle Piastów",
                        "Osiedle Srebrnych Orłów",
                        "Osiedle Tysiąclecia",
                        "Osiedle Złotego Wieku"
                    }
                },
                {
                    "Bieńczyce (XVI)", new List <string>
                    {
                        "Bieńczyce",
                        "Osiedle Albertyńskie",
                        "Osiedle Jagiellońskie",
                        "Osiedle Kalinowe",
                        "Osiedle Kazimierzowskie",
                        "Osiedle Kościuszkowskie",
                        "Osiedle Na Lotnisku",
                        "Osiedle Niepodległości",
                        "Osiedle Przy Arce",
                        "Osiedle Strusia",
                        "Osiedle Wysokie",
                        "Osiedle Złotej Jesieni"
                    }
                },
                {
                    "Wzgórza Krzesławickie (XVII)", new List <string>
                    {
                        "Grębałów",
                        "Kantorowice",
                        "Krzesławice",
                        "Lubocza",
                        "Łuczanowice",
                        "Dłubnia",
                        "Osiedle Na Stoku",
                        "Osiedle Na Wzgórzach",
                        "Wadów",
                        "Węgrzynowice",
                        "Zesławice"
                    }
                },
                {
                    "Nowa Huta (XVIII)", new List <string>
                    {
                        "Błonie",
                        "Branice",
                        "Osiedle Centrum A",
                        "Osiedle Centrum B",
                        "Osiedle Centrum C",
                        "Osiedle Centrum D",
                        "Osiedle Centrum E",
                        "Chałupki",
                        "Chałupki Górne",
                        "Cło",
                        "Górka Kościelnicka",
                        "Holendry",
                        "Kopaniny",
                        "Kościelniki",
                        "Kujawy",
                        "Mogiła",
                        "Nowa Huta",
                        "Nowa Wieś",
                        "Osiedle Górali",
                        "Osiedle Handlowe",
                        "Osiedle Hutnicze",
                        "Osiedle Kolorowe",
                        "Osiedle Krakowiaków",
                        "Osiedle Lesisko",
                        "Osiedle Młodości",
                        "Osiedle Na Skarpie",
                        "Osiedle Ogrodowe",
                        "Osiedle Słoneczne",
                        "Osiedle Sportowe",
                        "Osiedle Spółdzielcze",
                        "Osiedle Stalowe",
                        "Osiedle Szklane Domy",
                        "Osiedle Szkolne",
                        "Osiedle Teatralne",
                        "Osiedle Urocze",
                        "Osiedle Wandy",
                        "Osiedle Willowe",
                        "Osiedle Zgody",
                        "Osiedle Zielone",
                        "Piekiełko",
                        "Pleszów",
                        "Przylasek Rusiecki",
                        "Przylasek Wyciąski",
                        "Ruszcza",
                        "Stryjów",
                        "Wola Rusiecka",
                        "Wolica",
                        "Wróżenice",
                        "Wyciąże"
                    }
                }
            };

            #endregion Names

            var i    = 1;
            var j    = 1;
            var date = DateTime.Now.Date;
            foreach (var name in names)
            {
                var district = new Dzielnica
                {
                    Miejscowosc = cracow,
                    Symbol      = "K" + i.ToString().PadLeft(3, '0'),
                    StanNa      = date,
                    Nazwa       = name.Key
                };
                foreach (var regionName in name.Value)
                {
                    var region = new Rejon
                    {
                        Nazwa     = regionName,
                        Dzielnica = district,
                        Symbol    = district.Symbol + "R" + j.ToString().PadLeft(3, '0'),
                        StanNa    = date
                    };

                    lokalizacje.Rejony.Add(region);
                    j++;
                }

                lokalizacje.Dzielnice.Add(district);
                i++;
            }
        }
コード例 #12
0
ファイル: CsvExporter.cs プロジェクト: bpiec/teryt-parser
        private void ExportMiejscowosci(Lokalizacje lokalizacje, string outputFileName)
        {
            const string header = "Lp.;Symbol województwa;Symbol powiatu;Symbol gminy;Symbol miejscowości;Nazwa;Id rodzaju;Rodzaj;Nazwa dzielnic;Nazwa rejonów;Stan na";

            WriteFile(outputFileName, lokalizacje.Miejscowosci, header, q => $"{q.Lp};{q.Gmina.Powiat.Wojewodztwo.Symbol};{q.Gmina.Powiat.Symbol};{q.Gmina.Symbol};{q.Symbol};{q.Nazwa};{q.RodzajId};{q.Rodzaj};{q.NazwaDzielnic};{q.NazwaRejonow};{q.StanNa:d}");
        }
コード例 #13
0
ファイル: CsvExporter.cs プロジェクト: bpiec/teryt-parser
        private void ExportGminy(Lokalizacje lokalizacje, string outputFileName)
        {
            const string header = "Lp.;Symbol województwa;Symbol powiatu;Symbol gminy;Nazwa;Id rodzaju;Rodzaj;Stan na";

            WriteFile(outputFileName, lokalizacje.Gminy, header, q => $"{q.Lp};{q.Powiat.Wojewodztwo.Symbol};{q.Powiat.Symbol};{q.Symbol};{q.Nazwa};{q.RodzajId};{q.Rodzaj};{q.StanNa:d}");
        }
コード例 #14
0
ファイル: CsvExporter.cs プロジェクト: bpiec/teryt-parser
        private void ExportWojewodztwa(Lokalizacje lokalizacje, string outputFileName)
        {
            const string header = "Lp.;Symbol;Nazwa;Stan na";

            WriteFile(outputFileName, lokalizacje.Wojewodztwa, header, q => $"{q.Lp};{q.Symbol};{q.Nazwa};{q.StanNa:d}");
        }
コード例 #15
0
        private void AddPoznanDistricts(Lokalizacje lokalizacje, Miejscowosc poznan)
        {
            var names = new List <string>
            {
                "Antoninek-Zieliniec-Kobylepole",
                "Chartowo",
                "Fabianowo-Kotowo",
                "Główna",
                "Głuszyna",
                "Górczyn",
                "Grunwald Południe",
                "Grunwald Północ",
                "Jana III Sobieskiego i Marysieńki",
                "Jeżyce",
                "Junikowo",
                "Kiekrz",
                "Krzesiny-Pokrzywno-Garaszewo",
                "Krzyżowniki-Smochowice",
                "Kwiatowe",
                "Ławica",
                "Morasko-Radojewo",
                "Naramowice",
                "Nowe Winogrady Południe",
                "Nowe Winogrady Północ",
                "Nowe Winogrady Wschód",
                "Ogrody",
                "Ostrów Tumski-Śródka-Zawady-Komandoria",
                "Piątkowo",
                "Podolany",
                "Rataje",
                "Sołacz",
                "Stare Miasto",
                "Stare Winogrady",
                "Starołęka-Minikowo-Marlewo",
                "Stary Grunwald",
                "Strzeszyn",
                "Szczepankowo-Spławie-Krzesinki",
                "Świerczewo",
                "Św. Łazarz",
                "Umultowo",
                "Warszawskie-Pomet-Maltańskie",
                "Wilda",
                "Winiary",
                "Wola",
                "Zielony Dębiec",
                "Żegrze"
            };

            var i    = 1;
            var date = DateTime.Now.Date;

            foreach (var name in names)
            {
                var district = new Dzielnica
                {
                    Miejscowosc = poznan,
                    Symbol      = "P" + i.ToString().PadLeft(3, '0'),
                    StanNa      = date,
                    Nazwa       = name
                };

                lokalizacje.Dzielnice.Add(district);
                i++;
            }
        }
コード例 #16
0
 public void ExportMiejscowosci(Lokalizacje lokalizacje, string outputFileName)
 {
     WriteFile(outputFileName, lokalizacje.Miejscowosci, q => $"INSERT INTO `location_city` (`Id`, `CommuneId`, `Name`, `Type`, `DistrictsName`, `RegionsName`, `TerytId`) VALUES ({q.Lp}, (SELECT `location_commune`.`Id` FROM `location_commune` JOIN `location_county` ON `location_commune`.`CountyId` = `location_county`.`Id` JOIN `location_province` ON `location_county`.`ProvinceId` = `location_province`.`Id` WHERE `location_province`.`TerytId` = '{q.Gmina.Powiat.Wojewodztwo.Symbol}' AND `location_county`.`TerytId` = '{q.Gmina.Powiat.Symbol}' AND `location_commune`.`TerytId` = '{q.Gmina.Symbol}'), '{q.Nazwa}', '{q.Rodzaj}', '{q.NazwaDzielnic}', '{q.NazwaRejonow}', '{q.Symbol}');");
 }
コード例 #17
0
 public void ExportDzielnice(Lokalizacje lokalizacje, string outputFileName)
 {
     WriteFile(outputFileName, lokalizacje.Dzielnice, q => $"INSERT INTO `location_citydistrict` (`Id`, `CityId`, `Name`, `TerytId`) VALUES ({q.Lp}, (SELECT `Id` FROM `location_city` WHERE `TerytId` = '{q.Miejscowosc.Symbol}'), '{q.Nazwa}', '{q.Symbol}');");
 }
コード例 #18
0
ファイル: CsvExporter.cs プロジェクト: bpiec/teryt-parser
        private void ExportDzielnice(Lokalizacje lokalizacje, string outputFileName)
        {
            const string header = "Lp.;Symbol miejscowości;Symbol dzielnicy;Nazwa;Stan na";

            WriteFile(outputFileName, lokalizacje.Dzielnice, header, q => $"{q.Lp};{q.Miejscowosc.Symbol};{q.Symbol};{q.Nazwa};{q.StanNa:d}");
        }
コード例 #19
0
 public void ExportUlice(Lokalizacje lokalizacje, string outputFileName)
 {
     WriteFile(outputFileName, lokalizacje.Ulice, q => $"INSERT INTO `location_street` (`Id`, `CityId`, `Attribute`, `Name1`, `Name2`, `TerytId`) VALUES ({q.Lp}, (SELECT `Id` FROM `location_city` WHERE `TerytId` = '{q.Miejscowosc.Symbol}'), '{q.Cecha}', '{q.Nazwa1.Replace("'", "\\'")}', '{q.Nazwa2.Replace("'", "\\'")}', '{q.Symbol}');");
 }
コード例 #20
0
        public Lokalizacje Create(TerytModel.Teryt teryt, bool useNaturalDistricts)
        {
            var loc = new Lokalizacje
            {
                Wojewodztwa = GetWojewodztwa(teryt)
            };

            loc.Powiaty      = GetPowiaty(teryt, loc.Wojewodztwa);
            loc.Gminy        = GetGminy(teryt, loc.Powiaty);
            loc.Miejscowosci = GetMiejscowosci(teryt, loc.Gminy);
            loc.Dzielnice    = GetDzielnice(teryt);
            loc.Rejony       = new List <Rejon>();
            loc.Ulice        = GetUlice(teryt);

            if (useNaturalDistricts)
            {
                var cracow = loc.Miejscowosci.Single(q => q.Nazwa == "Kraków" && q.RodzajId == "96");
                cracow.NazwaRejonow = "część dzielnicy";
                var cracowDistricts = loc.Miejscowosci.Where(q => q.Gmina.Powiat.Wojewodztwo.Symbol == cracow.Gmina.Powiat.Wojewodztwo.Symbol && q.Gmina.Powiat.Symbol == cracow.Gmina.Powiat.Symbol && q.Symbol != cracow.Symbol).ToList();
                PrepareNonStandardDistrict(cracowDistricts, loc, cracow);
                AddCracowDistricts(loc, cracow);

                var poznan = loc.Miejscowosci.Single(q => q.Nazwa == "Poznań" && q.RodzajId == "96");
                poznan.NazwaDzielnic = "osiedle";
                var poznanDistricts = loc.Miejscowosci.Where(q => q.Gmina.Powiat.Wojewodztwo.Symbol == poznan.Gmina.Powiat.Wojewodztwo.Symbol && q.Gmina.Powiat.Symbol == poznan.Gmina.Powiat.Symbol && q.Symbol != poznan.Symbol).ToList();
                PrepareNonStandardDistrict(poznanDistricts, loc, poznan);
                AddPoznanDistricts(loc, poznan);

                var lodz = loc.Miejscowosci.Single(q => q.Nazwa == "Łódź" && q.RodzajId == "96");
                lodz.NazwaRejonow = "osiedle";
                var lodzDistricts = loc.Miejscowosci.Where(q => q.Gmina.Powiat.Wojewodztwo.Symbol == lodz.Gmina.Powiat.Wojewodztwo.Symbol && q.Gmina.Powiat.Symbol == lodz.Gmina.Powiat.Symbol && q.Symbol != lodz.Symbol).ToList();
                SetStandardDistricts(lodzDistricts, loc, lodz);

                var wroclaw = loc.Miejscowosci.Single(q => q.Nazwa == "Wrocław" && q.RodzajId == "96");
                wroclaw.NazwaRejonow = "osiedle";
                var wroclawDistricts = loc.Miejscowosci.Where(q => q.Gmina.Powiat.Wojewodztwo.Symbol == wroclaw.Gmina.Powiat.Wojewodztwo.Symbol && q.Gmina.Powiat.Symbol == wroclaw.Gmina.Powiat.Symbol && q.Symbol != wroclaw.Symbol).ToList();
                SetStandardDistricts(wroclawDistricts, loc, wroclaw);

                var warsaw = loc.Miejscowosci.Single(q => q.Nazwa == "Warszawa" && q.RodzajId == "96");
                warsaw.NazwaRejonow = "rejon";
                var warsawDistricts = loc.Miejscowosci.Where(q => q.Gmina.Powiat.Wojewodztwo.Symbol == warsaw.Gmina.Powiat.Wojewodztwo.Symbol && q.Gmina.Powiat.Symbol == warsaw.Gmina.Powiat.Symbol && q.Symbol != warsaw.Symbol).ToList();
                SetStandardDistricts(warsawDistricts, loc, warsaw);
            }

            // adjust ids
            var i = 1;

            loc.Wojewodztwa.ForEach(q => q.Lp = i++);
            i = 1;
            loc.Powiaty.ForEach(q => q.Lp = i++);
            i = 1;
            loc.Gminy.ForEach(q => q.Lp = i++);
            i = 1;
            loc.Miejscowosci.ForEach(q => q.Lp = i++);
            i = 1;
            loc.Dzielnice.ForEach(q => q.Lp = i++);
            i = 1;
            loc.Rejony.ForEach(q => q.Lp = i++);
            i = 1;
            loc.Ulice.ForEach(q => q.Lp = i++);

            return(loc);
        }