Esempio n. 1
0
        public override IDbContext CreateDbContext()
        {
            // 直接用无参构造函数时会使用默认配置项 XFrameworkConnString
            // new NpgDbContext();
            var context = new NpgDbContext(connString)
            {
                IsDebug = base.IsDebug
            };

            return(context);
        }
Esempio n. 2
0
        // 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();
        }
Esempio n. 3
0
        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;
 }
Esempio n. 7
0
        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();
            }
        }
Esempio n. 8
0
 public HomeController(ILogger <HomeController> logger, NpgDbContext db)
 {
     _logger = logger;
     _db     = db;
 }
Esempio n. 9
0
 public Generator(string url, NpgDbContext db)
 {
     _url = url;
     _db  = db;
 }