TrainNotifier.Service.TrainMovementRepository.GetTmSteps C# (CSharp) Method

GetTmSteps() private method

private GetTmSteps ( Guid trainId, DbConnection dbConnection ) : IEnumerable
trainId Guid
dbConnection DbConnection
return IEnumerable
        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;
        }