예제 #1
0
        public async Task <IEnumerable <TrainingToReturnViewModel> > HandleAsync(GetTrainingsQuery query, CancellationToken cancellationToken = default)
        {
            var coachId = httpContext.HttpContext.User.FindFirst(ClaimTypes.NameIdentifier)?.Value;

            var sql = @"SELECT
                        [Core].[Trainings].[Id],
                        [Core].[Trainings].[RunnerId],
                        [Core].[Trainings].[DateToDo],
                        [Core].[Trainings].[Created],
                        [Core].[Trainings].[IsDone],
                        [dbo].[TraningDetails].[Details],
                        [dbo].[TraningDetails].[Comment],
                        [Core].[Runners].[FirstName],
                        [Core].[Runners].[LastName],
                        [Core].[Runners].[CoachId]
                        FROM (([Core].[Trainings]
                        INNER JOIN [dbo].[TraningDetails]
                        ON [Core].[Trainings].[TraningDetailsId] = [dbo].[TraningDetails].[Id])
                        INNER JOIN [Core].[Runners]
                        ON [Core].[Trainings].[RunnerId] = [Core].[Runners].[Id])
                        WHERE [Core].[Runners].[CoachId] = @coachId";

            using (var connection = new SqlConnection(databaseProvider.ConnectionStrings.DefaultConnection))
            {
                connection.Open();

                return(await connection.QueryAsync <TrainingToReturnViewModel>(sql, new { coachId }));
            }
        }
        public async Task <IActionResult> GetTrainings()
        {
            var query = new GetTrainingsQuery();

            var result = await queryDispatcher.ExecuteAsync(query);

            return(Ok(result));
        }