在将对象保存到数据库之前或之后如何入队?

时间:2019-05-09 07:14:42

标签: c# asp.net asp.net-mvc

我现在正在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");
    }

1 个答案:

答案 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}}