Exemple #1
0
        public async Task <IActionResult> ClearQueue()
        {
            db.Queue.RemoveRange(db.Queue);
            await db.SaveChangesAsync();

            return(RedirectToAction(nameof(Index)));
        }
Exemple #2
0
        public async Task <IActionResult> DeleteConfirmed(int id)
        {
            var timers = db.Timers.Where(t => t.TimeTableId == id);

            db.RemoveRange(timers);

            var timeTable = await db.Timetables.FindAsync(id);

            db.Timetables.Remove(timeTable);
            await db.SaveChangesAsync();

            return(RedirectToAction(nameof(Index)));
        }
Exemple #3
0
        public async Task <IActionResult> Index([Bind("ConfigID, ConfigValue")] Config config)
        {
            if (ModelState.IsValid)
            {
                var be = await db.Configs.SingleOrDefaultAsync(b => b.ConfigID == "BoilerEnabled");

                if (be.ConfigValue != config.ConfigValue)
                {
                    be.ConfigValue = config.ConfigValue;
                    await db.SaveChangesAsync();
                }
            }
            return(View(config));
        }
Exemple #4
0
 private async Task SaveValveLogAsync(int addr, StateMessage state)
 {
     using (IServiceScope scope = scopeFactory.CreateScope())
     {
         HeatAppContext db   = scope.ServiceProvider.GetRequiredService <HeatAppContext>();
         ValveLog       vl   = new ValveLog(addr, state);
         var            last = db.ValveLog.SingleOrDefault(v => v.Addr == vl.Addr && v.Time == vl.Time);
         if (last == null)
         {
             db.ValveLog.Add(vl);
             await db.SaveChangesAsync();
         }
     }
 }
Exemple #5
0
        public async Task <IActionResult> Edit(int id, [Bind("Addr,Caption,BoilerEnabled,Temperature,TimeTable,Wanted,Auto,Locked")] ValveView valveView)
        {
            if (ModelState.IsValid && valveView.Addr > 0)
            {
                var valve = await db.Valves.SingleOrDefaultAsync(v => v.Addr == valveView.Addr);

                if (valve == null)
                {
                    valve = new Valve()
                    {
                        Addr = valveView.Addr, BoilerEnabled = valveView.BoilerEnabled, Caption = valveView.Caption, TimeTable = valveView.TimeTable, Locked = valveView.Locked
                    };
                    await db.Valves.AddAsync(valve);

                    await db.SaveChangesAsync();

                    commandService.SendTimetableToValve(valve.Addr, valve.TimeTable);
                }
                else
                {
                    bool change = false;
                    if (valve.Caption != valveView.Caption)
                    {
                        valve.Caption = valveView.Caption;
                        change        = true;
                    }
                    if (valve.Addr != valveView.Addr)
                    {
                        valve.Addr = valveView.Addr;
                        change     = true;
                    }
                    if (valve.BoilerEnabled != valveView.BoilerEnabled)
                    {
                        valve.BoilerEnabled = valveView.BoilerEnabled;
                        change = true;
                    }
                    if (valve.Locked != valveView.Locked)
                    {
                        valve.Locked = valveView.Locked;
                        change       = true;
                    }
                    if (change)
                    {
                        await db.SaveChangesAsync();
                    }
                    if (valve.TimeTable != valveView.TimeTable)
                    {
                        valve.TimeTable = valveView.TimeTable;
                        await db.SaveChangesAsync();

                        commandService.SendTimetableToValve(valve.Addr, valve.TimeTable);
                    }
                }
                commandService.UpdateValve(valveView);
                return(RedirectToAction(nameof(Index)));
            }
            List <SelectListItem> timetables = new List <SelectListItem> {
                new SelectListItem()
                {
                    Value = "0", Text = "žádný"
                }
            };

            timetables.AddRange(await db.Timetables.Select(t => new SelectListItem {
                Value = t.Id.ToString(), Text = t.Caption
            }).ToListAsync());
            ViewBag.TimeTables = timetables;
            return(View(valveView));
        }