public override IDbContext CreateDbContext() { // 直接用无参构造函数时会使用默认配置项 XFrameworkConnString // new NpgDbContext(); var context = new NpgDbContext(connString) { IsDebug = base.IsDebug }; return(context); }
// This method gets called by the runtime. Use this method to add services to the container. // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940 public void ConfigureServices(IServiceCollection services) { services.AddBlazorise(options => { options.ChangeTextOnKeyPress = true; // optional }) .AddBootstrapProviders() .AddFontAwesomeIcons(); var dbContext = new NpgDbContext(Configuration.GetConnectionString("IsUakr_db")); services.AddSingleton(o => dbContext); services.AddSingleton(x => new Generator(Configuration.GetConnectionString("AppPort"), dbContext)); services.AddRazorPages(); services.AddServerSideBlazor(); }
public void Run() { List <House> houses; var streets = new List <Street>(); using (var db = new NpgDbContext(conn)) { houses = db.Houses.ToList(); streets = db.Streets.ToList(); foreach (var house in houses) { var parts = house.number.Split(new string[] { ", д." }, StringSplitOptions.RemoveEmptyEntries); string streetStr; if (parts.Length == 1) { house.number = "д. " + parts[0].Replace(", Домодедово", ""); streetStr = "Домодедово"; } else { house.number = "д. " + parts[1].Replace(", Домодедово", ""); streetStr = parts[0].Replace("г. Домодедово, ", ""); } Street street; if (streets.Exists(p => p.name == streetStr)) { street = streets.FirstOrDefault(p => p.name == streetStr); street.Houses.Add(house); } else { street = new Street { name = streetStr }; street.Houses.Add(house); streets.Add(street); } } db.SaveChanges(); } }
public MetersController(NpgDbContext db) { _db = db; }
public HouseController(NpgDbContext db) { _db = db; }
public StreetsController(NpgDbContext db) { _db = db; }
public async Task RunAsync() { var housesUrl = @"http://dom.mingkh.ru"; var housesResponse = await LoadData(housesUrl + "/api/houses"); var housesJObject = JsonConvert.DeserializeObject <DataGO>(housesResponse); var housesList = new List <House>(); foreach (var house in housesJObject.rows) { var h = new House { id = house.rownumber, square = house.square != "Незаполнено" ? Convert.ToDouble(house.square.Replace(".", ",")) : 0, fullAddress = house.address, year = house.year != "Не заполнено" ? Convert.ToInt32(house.year) : 0, manageStartDate = house.managestartdate != "Не заполнено" ? Convert.ToDateTime(house.managestartdate) : DateTime.MinValue, number = house.url.Split('/').Last(), floors = house.floors != "Не заполнено" ? Convert.ToInt32(house.floors) : 0 }; var result = await LoadPage(housesUrl + house.url) as string; HtmlDocument hap = new HtmlDocument(); hap.LoadHtml(result); var dtnodes = hap.DocumentNode.SelectNodes("//dt"); var ddnodes = hap.DocumentNode.SelectNodes("//dd"); var idx = 0; for (int i = 0; i < dtnodes.Count; i++) { if (dtnodes[i].InnerHtml == "Жилых помещений") { idx = i; break; } } int flats = 0; var isConverted = Int32.TryParse(ddnodes[idx].InnerHtml, out flats); if (isConverted) { h.flatsCount = flats; housesList.Add(h); } } using (var db = new NpgDbContext(conn)) { foreach (var h in housesList) { var(streetStr, houseStr) = GetStreetAndHouse(h.fullAddress); var streetDal = db.Streets.FirstOrDefault(p => p.name == streetStr); if (streetDal != null) { var house = new House { number = houseStr, square = Convert.ToDouble(h.square), year = Convert.ToInt32(h.year), code = Convert.ToInt32(h.code), floors = Convert.ToInt32(h.floors), flatsCount = Convert.ToInt32(h.flatsCount), manageStartDate = Convert.ToDateTime(h.manageStartDate), Street = streetDal }; db.Houses.Add(house); db.SaveChanges(); } else { var street = new Street { name = streetStr }; db.Streets.Add(street); db.SaveChanges(); var house = new House { number = houseStr, square = Convert.ToDouble(h.square), year = Convert.ToInt32(h.year), code = Convert.ToInt32(h.code), floors = Convert.ToInt32(h.floors), flatsCount = Convert.ToInt32(h.flatsCount), manageStartDate = Convert.ToDateTime(h.manageStartDate), Street = db.Streets.FirstOrDefault(p => p.name == streetStr) }; db.Houses.Add(house); db.SaveChanges(); } } foreach (var house in db.Houses.ToList()) { var meterHub = new MeterHub { House = house, code = Guid.NewGuid().ToString() }; db.MeterHubs.Add(meterHub); for (int i = 0; i < house.flatsCount; i++) { var flat = new Flat { Num = (i + 1).ToString(), House = house }; db.Flats.Add(flat); var energyMeter = new Meter { code = Guid.NewGuid().ToString(), type = "energy", Flat = flat, Hub = meterHub }; var heat_water = new Meter { code = Guid.NewGuid().ToString(), type = "heat_water", Flat = flat, Hub = meterHub }; var cold_water = new Meter { code = Guid.NewGuid().ToString(), type = "cold_water", Flat = flat, Hub = meterHub }; db.Meters.Add(energyMeter); db.Meters.Add(heat_water); db.Meters.Add(cold_water); } } db.SaveChanges(); } }
public HomeController(ILogger <HomeController> logger, NpgDbContext db) { _logger = logger; _db = db; }
public Generator(string url, NpgDbContext db) { _url = url; _db = db; }