/// <summary> /// Retrieves batches from the batch queue. /// The query append should start with " " or ";". /// </summary> /// <param name="append"></param> /// <returns></returns> public IList <BatchQueueModel> RetrieveFromBatchQueue(string append) { string query = "SELECT BatchQueue.queueid, BatchQueue.priority, BatchQueue.amount," + "BatchQueue.speed, BatchQueue.beerid, Recipes.name " + "FROM BatchQueue INNER JOIN Recipes ON BatchQueue.beerid = Recipes.beerid" + append; List <BatchQueueModel> list = new List <BatchQueueModel>(); lock (CONN_LOCK) { try { CONN.Open(); NpgsqlCommand command = new NpgsqlCommand(query, CONN); NpgsqlDataReader dr = command.ExecuteReader(); while (dr.Read()) { BatchQueueModel batch = new BatchQueueModel((int)dr[0], (int)dr[1], (int)dr[2], (int)dr[3], (int)dr[4], dr[5].ToString().Trim()); list.Add(batch); } } catch (NpgsqlException ex) { throw ex; } finally { CONN.Close(); } } return(list); }
public bool HandleCommand(string ip, string command) { OpcClient opc; bool succeeded = OpcConnections.TryGetValue(ip, out opc); if (succeeded) { switch (command) { case "start": if (Singleton.Instance.DBManager.RetrieveFromBatchQueue().Count > 0 && opc.StateCurrent == 4) { BatchQueueModel bqm = Singleton.Instance.DBManager.RetrieveFromBatchQueue()[0]; Singleton.Instance.DBManager.RemoveFromBatchQueue(bqm.Id); opc.StartMachine(10, bqm.BeerId, bqm.Amount, bqm.Speed); } break; case "stop": opc.StopMachine(); break; case "clear": opc.ClearMachine(); break; case "abort": opc.AbortMachine(); break; case "reset": opc.ResetMachine(); break; default: throw new Exception("Invalid command"); } } return(succeeded); }
public ActionResult Update(BatchQueueModel bqm) { string s = ""; foreach (ModelState modelState in ViewData.ModelState.Values) { foreach (ModelError error in modelState.Errors) { s += error.ErrorMessage; } } if (ModelState.IsValid) { bqm.Update(); return(RedirectToAction("Index")); } else { TempData["statusMessage"] = s; return(RedirectToAction("Index")); } }
public ActionResult Create(BatchQueueModel bqm) { string s = ""; foreach (ModelState modelState in ViewData.ModelState.Values) { foreach (ModelError error in modelState.Errors) { s += error.ErrorMessage; } } if (ModelState.IsValid) { Singleton.Instance.DBManager.RegisterIntoBatchQueue(bqm.Id, bqm.Priority, bqm.Amount, bqm.Speed, bqm.BeerId); TempData["statusMessage"] = "Batch inserted"; return(RedirectToAction("Index")); } else { TempData["statusMessage"] = s; return(RedirectToAction("Index")); } }