public BE.QueueInfo GetQueueInfoByQueueID(Guid queue_ID) { try { var dbQueue = new DBContext.Queue(); var queueDetails = new List <BE.QueueDetail>(); if (EnumAppConfig.IsLocal) { var queueData = _localUnitOfWork.DataContext.Queues.FirstOrDefault(q => q.Queue_ID == queue_ID); var queueDataDetails = _localUnitOfWork.DataContext.QueueDetails.Where(qd => qd.Queue_ID == queue_ID).ToList().Select(d => d.Map <BE.QueueDetail>()).ToList(); if (queueData != null) { dbQueue = queueData; queueDetails = queueDataDetails; BE.QueueInfo queueInfo = SetQueueInfo(dbQueue, queueDetails); return(queueInfo); } else { bool centralizeStatus; var centralData = CallCentralized.Get <BE.QueueInfo>(EnumAPIParam.QueueNumber, "GetQueueInfoByQueueID", out centralizeStatus, "queueId=" + queue_ID.ToString()); if (centralizeStatus) { return(centralData); } } } else { var queueData = _centralizedUnitOfWork.DataContext.Queues.FirstOrDefault(q => q.Queue_ID == queue_ID); var queueDataDetails = _centralizedUnitOfWork.DataContext.QueueDetails.Where(qd => qd.Queue_ID == queue_ID).ToList().Select(d => d.Map <BE.QueueDetail>()).ToList(); if (queueData != null) { dbQueue = queueData; queueDetails = queueDataDetails; } BE.QueueInfo queueInfo = SetQueueInfo(dbQueue, queueDetails); return(queueInfo); } return(null); } catch (Exception) { return(null); } }
private static BE.QueueInfo SetQueueInfo(DBContext.Queue dbQueue, List <BE.QueueDetail> queueDetails) { BE.QueueInfo queueInfo = new BE.QueueInfo(); if (dbQueue != null) { queueInfo.Queue_ID = dbQueue.Queue_ID; queueInfo.NRIC = dbQueue.Membership_Users1.NRIC; queueInfo.Name = dbQueue.Membership_Users1.Name; queueInfo.CurrentStation = dbQueue.CurrentStation; queueInfo.Status = queueDetails.FirstOrDefault(qd => qd.Station.Equals(dbQueue.CurrentStation)).Status; queueInfo.QueueDetail = queueDetails.Where(qd => qd.Message != null && qd.Message != "").ToList(); queueInfo.UserId = dbQueue.UserId; queueInfo.Date = dbQueue.CreatedTime; } return(queueInfo); }