Пример #1
0
 public MainWindow()
 {
     InitializeComponent();
     Network = new Network();
     Data    = new DataCountry();
     Api     = new Api();
     Dialog  = new Dialog();
     LoadCountries();
     ReportProgress();
 }
Пример #2
0
        public static DataCountry LoadCitiesXmlData(string appDirectory)
        {
            DataCountry data = new DataCountry();
            XDocument   xDoc = XDocument.Load(appDirectory);
            //    XDocument xDoc = XDocument.Parse(appDirectory);
            var regions = xDoc.Descendants("table").Where(n => n.Attribute("name").Value == "regions")
                          .Select(b => new
            {
                Field = b.Elements().Select(x => new
                {
                    Attribute = CapitalizeFirstLetter(x.FirstAttribute.Value),
                    Value     = x.Value.Trim()
                })
            }).Distinct().ToList();
            var subregions = xDoc.Descendants("table").Where(n => n.Attribute("name").Value == "subregions")
                             .Select(b => new
            {
                Field = b.Elements().Select(x => new
                {
                    Attribute = CapitalizeFirstLetter(x.FirstAttribute.Value),
                    Value     = x.Value.Trim()
                })
            }).Distinct().ToList();
            var countries = new List <CountryModel>();
            var cities    = new List <ProvinceModel>();

            foreach (var region in regions)
            {
                var country = new CountryModel();
                foreach (var fl in region.Field.ToList())
                {
                    country[fl.Attribute] = fl.Value;
                }
                countries.Add(country);
            }
            foreach (var region in subregions)
            {
                var city = new ProvinceModel();
                foreach (var fl in region.Field.ToList())
                {
                    city[fl.Attribute] = fl.Value;
                }
                city.Country = countries.FirstOrDefault(c => c.Id == city.CountryId);
                cities.Add(city);
            }
            data.CountryModels  = countries;
            data.ProvinceModels = cities;
            return(data);
        }