/// <summary> /// routes queue to a different department and saves history /// </summary> /// <param name="queueID">queue to route</param> /// <param name="departmentID">department to route to</param> public void RouteQueue(int queueID, int departmentID) { using (var db = new ModelDBContext()) { var currentQueue = db.Queues.Where(q => q.QueueID == queueID).First(); if (currentQueue.DepartmentID != departmentID) { //create history record shows the old and new departments var queueHistory = new QueueHistory(); queueHistory.QueueID = queueID; queueHistory.RoutedFromDepartmentID = currentQueue.DepartmentID; queueHistory.RoutedToDepartmentID = departmentID; queueHistory.AssignedFromEmployeeID = currentQueue.EmployeeID; queueHistory.EventDatetime = DateTime.Now; db.QueueHistories.Add(queueHistory); currentQueue.DepartmentID = departmentID; currentQueue.EmployeeID = null; var inProgressQueueStatus = db.QueueStatus.FirstOrDefault(q => q.QueueStatusID == (int)QueueStatusEnum.InProgress); if (inProgressQueueStatus != null) { currentQueue.QueueStatusID = inProgressQueueStatus.QueueStatusID; } db.SaveChanges(); } } }
public void DeliverOrder(int idQueue) { var objQueue = _queueRepository.Get(idQueue, new string[] { "Order" }); if (objQueue == null) { AddError("Queue not found"); return; } var objQueueHistory = new QueueHistory(objQueue); _queueHistoryRepository.Create(objQueueHistory); _queueRepository.Delete(objQueue); Commit(); }
public async Task <int> SaveQueueHistory(QueueHistory history) { var id = await _queueHistoryRepository.InsertAndGetIdAsync(history); return(id); }