У меня есть некоторые идеи относительно вашего требования.
Вам необходимо создать Queue
(из пространства имен System.Collections) в качестве статической переменной.
Добавить два действия Reverse()
и 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>();
}
Отображение в cshtml
@model QueueTable
<p>@Model.QueueNumber</p>