Пример #1
0
        /// <summary>
        ///
        /// </summary>
        /// <description>
        ///     Reference from https://www.gso.gov.vn/dmhc2015/
        /// </description>
        /// <returns></returns>
        public bool InitCityDistrictDatabase()
        {
            if (_cityRepository.GetAll().ToList().Count != 0)
            {
                return(false);
            }

            var webRequest = WebRequest.Create(@"https://raw.githubusercontent.com/madnh/hanhchinhvn/master/dist/tinh_tp.json");

            using (var response = webRequest.GetResponse())
                using (var content = response.GetResponseStream())
                    using (var reader = new StreamReader(content ?? throw new Exception())){
                        var strContent = reader.ReadToEnd();
                        Dictionary <string, City> cities = JsonConvert.DeserializeObject <Dictionary <string, City> >(strContent);
                        var cityEntities = cities.Select(c => new Cities
                        {
                            Code = c.Value.Code,
                            Name = c.Value.Name
                        }).ToList();

                        _cityRepository.AddBulk(cityEntities);
                    }

            webRequest = WebRequest.Create(@"https://raw.githubusercontent.com/madnh/hanhchinhvn/master/dist/quan_huyen.json");

            using (var response = webRequest.GetResponse())
                using (var content = response.GetResponseStream())
                    using (var reader = new StreamReader(content ?? throw new Exception())){
                        var strContent = reader.ReadToEnd();
                        Dictionary <string, District> districts = JsonConvert.DeserializeObject <Dictionary <string, District> >(strContent);
                        var entities = districts.Select(d => new Districts
                        {
                            Code     = d.Value.Code,
                            Name     = d.Value.Name,
                            CitiCode = d.Value.Parent_code
                        }).ToList();

                        _districtRepository.AddBulk(entities);
                    }

            return(true);
        }