コード例 #1
0
        /// <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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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"));
            }
        }
コード例 #4
0
        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"));
            }
        }