我现在正在ASP.NET MVC中创建队列管理系统
第一种情况:
客户将转到笔记本电脑,输入他们的姓名,然后确认接收队列号,然后数据将保存到数据库中。
我的问题是如何将他们排入队列?这样我就可以在座席打电话给他们以后出队?
KiosksController:
public static Queue<Queue> todayQueue = new Queue<Queue>();
public ActionResult SetQueueInfo([Bind(Include = "QueueId,Name,QueueNumber,ServiceId,ServiceName,ServiceLetter")] Queue queue, int? id)
{
if (ModelState.IsValid)
{
db.Queues.Add(queue);
db.SaveChanges();
return View(queue);
}
return View();
}
第二种情况,代理将单击“下一步”,然后它将为下一个客户“先进先出”服务。
我该如何使它们出队?这是我的“完成”按钮
TellerScreenController
public static Queue<QueueTable> todayQueue;
public ActionResult BtnNext()
{
var first = todayQueue.Dequeue();
return RedirectToAction("Index");
}
答案 0 :(得分:0)
我对您的要求有一些想法。
您需要创建一个Reverse()
(来自System.Collections命名空间)作为静态变量。
添加两个操作Reset()
和Dequeue()
添加新项目时,将其推送到队列并保存到数据库中
要处理队列时,请致电private static Queue<QueueTable> todayQueue = new Queue<QueueTable>();
public ActionResult SetQueueInfo([Bind(Include = "QueueId,Name,QueueNumber,ServiceId,ServiceName,ServiceLetter")] QueueTable queue, int? id)
{
if (ModelState.IsValid)
{
todayQueue.Enqueue(queue);
db.Queues.Add(queue);
db.SaveChanges();
return View(queue);
}
return View();
}
public ActionResult Reserve()
{
var first = todayQueue.Dequeue();
// pass to view and handle it
return View(first);
}
public ActionResult ResetQueue()
{
// reset queue after finish
todayQueue = new Queue<QueueTable>();
}
从列表中获取第一项,也将从队列中删除。
由于您将静态变量用于Queue,因此需要支持方法Queue的下一次保留。
@model QueueTable
<p>@Model.QueueNumber</p>
以cshtml显示
{{1}}