public List <ScreenData> Get() { List <ScreenData> screenDatas = new List <ScreenData>(); var monitorDatas = _monitorDataRepository.GetAll(); var queueGroups = _queueGroupRepository.GetAll(); foreach (var monitorData in monitorDatas) { var currentQueueGroup = queueGroups.SingleOrDefault(x => x.ID == monitorData.QueueGroupID); screenDatas.Add(new ScreenData { Handled = monitorData.Handled, Offered = monitorData.Offered, QueueGroupName = currentQueueGroup.Name, AverageHandlingTime = OperationHelper.CalculateAverageHandlingTime(monitorData), AverageTalkTime = OperationHelper.CalculateAverageTalkTime(monitorData), ServiceLevel = OperationHelper.CalculateServiceLevel(monitorData), ColumnColour = OperationHelper.DecideColumnColour(currentQueueGroup, monitorData) }); } return(screenDatas); }