예제 #1
0
        public void Execute()
        {
            try
            {
                if (!MvcApplication.Redis.IsConnected)
                {
                    return;
                }
                string  machinesJson = MvcApplication.Redis.GetDatabase().StringGet("machines");
                dynamic machines     = JsonConvert.DeserializeObject(machinesJson);

                foreach (var machine in machines)
                {
                    string uuid = machine.uuid;
                    if (!(bool)machine.isConnected)
                    {
                        continue;
                    }

                    var printer = PrinterManager.Read(uuid);
                    if (printer == null)
                    {
                        continue;
                    }

                    var info         = machine.info;
                    var temperatures = info.temperatures;
                    var status       = machine.info.status;

                    printer.LastSeen          = machine.lastSeen;
                    printer.BedTemperature    = (int)temperatures.bed[0];
                    printer.NozzleTemperature = (int)temperatures.nozzle[0];
                    printer.Printing          = (bool)status.printing;
                    printer.CurrentLine       = (int)status.current_line;

                    PrinterManager.Update(printer);
                }

                string  camsJson = MvcApplication.Redis.GetDatabase().StringGet("cams");
                dynamic cams     = JsonConvert.DeserializeObject(camsJson);

                foreach (var cam in cams)
                {
                    string uuid    = cam.uuid;
                    var    printer = PrinterManager.Read(uuid);

                    printer.LastFrame = cam.lastFrame;
                    PrinterManager.Update(printer);
                }
            }
            catch (Exception e)
            {
            }
        }
예제 #2
0
        // GET: /Frontend/
        public ActionResult Index()
        {
            var printerList = new List <object>();

            // db.Printers.Where(printer => printer.IsBookable)
            foreach (var printer in PrinterManager.Read().Where(printer => printer.IsBookable))
            {
                printerList.Add(new { key = printer.Id, label = printer.Name });
            }
            ViewBag.printers = printerList;

            var bookingList = new List <object>();

            foreach (var booking in BookingManager.Read())
            {
                bookingList.Add(new { text       = booking.User.FirstName + " " + booking.User.LastName,
                                      start_date = booking.StartTime.ToString("MM-dd-yyyy HH:mm:ss"),
                                      end_date   = booking.EndTime.ToString("MM-dd-yyyy HH:mm:ss"),
                                      printer_id = booking.PrinterId });
            }
            ViewBag.bookings = bookingList;
            return(View());
        }
예제 #3
0
 public ActionResult Printers()
 {
     return(View("Printers", PrinterManager.Read()));
 }