private IEnumerable<TrainMovementStepViewModel> GetTmSteps(Guid trainId, DbConnection dbConnection)
{
const string tmsSql = @"
SELECT
[EventTypeId]
,[PlannedTimestamp] AS [PlannedTime]
,[ActualTimestamp]
,[Platform]
,[Line]
,[ScheduleStopNumber]
,[Tiploc].[Stanox]
,[Tiploc].[TiplocId]
,[Tiploc].[Tiploc]
,[Tiploc].[Nalco]
,[Tiploc].[Description]
,[Tiploc].[Stanox]
,[Tiploc].[CRS]
,[Station].[StationName]
,[Station].[Location].[Lat] AS [Lat]
,[Station].[Location].[Long] AS [Lon]
FROM [LiveTrainStop]
INNER JOIN [Tiploc] ON [LiveTrainStop].[ReportingTiplocId] = [Tiploc].[TiplocId]
LEFT JOIN [Station] ON [Station].[TiplocId] = [Tiploc].[TiplocId]
WHERE [TrainId] = @trainId
ORDER BY [ScheduleStopNumber] ASC, [EventTypeId] DESC";
IEnumerable<TrainMovementStepViewModel> tmSteps = dbConnection.Query<TrainMovementStepViewModel, ScheduleTiploc, TrainMovementStepViewModel>(
tmsSql,
(tms, loc) =>
{
tms.Station = loc;
return tms;
},
new
{
trainId
},
splitOn: "TiplocId").ToList();
return tmSteps;
}