public async Task <ActionResult <CursorPaginatedResponse <ExerciseForReturnDto> > > GetExercisesForEquipmentAsync(int id, [FromQuery] CursorPaginationParams searchParams)
        {
            var exerciseSearchParams = new ExerciseSearchParams
            {
                First        = searchParams.First,
                After        = searchParams.After,
                Last         = searchParams.Last,
                Before       = searchParams.Before,
                IncludeTotal = searchParams.IncludeTotal,
                EquipmentId  = new List <int> {
                    id
                }
            };

            var exercises = await exerciseRepository.SearchAsync(exerciseSearchParams);

            var paginatedResponse = CursorPaginatedResponse <ExerciseForReturnDto> .CreateFrom(exercises, mapper.Map <IEnumerable <ExerciseForReturnDto> >);

            return(Ok(paginatedResponse));
        }
Example #2
0
        public async Task <ActionResult <CursorPaginatedResponse <MuscleForReturnDetailedDto> > > GetMusclesDetailedAsync([FromQuery] CursorPaginationParams searchParams)
        {
            var muscles = await muscleRepository.SearchDetailedAsync(searchParams);

            var paginatedResponse = CursorPaginatedResponse <MuscleForReturnDetailedDto> .CreateFrom(muscles, mapper.Map <IEnumerable <MuscleForReturnDetailedDto> >);

            return(Ok(paginatedResponse));
        }
Example #3
0
 public static Task <CursorPagedList <T> > CreateAsync(IQueryable <T> source, CursorPaginationParams searchParams)
 {
     return(CreateAsync(source, searchParams.First, searchParams.After, searchParams.Last, searchParams.Before, searchParams.IncludeTotal));
 }
        public async Task <ActionResult <CursorPaginatedResponse <WorkoutInvitationForReturnDto> > > GetSentWorkoutInvitationsForUserAsync(int userId, [FromQuery] CursorPaginationParams searchParams, string status)
        {
            if (userId != int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value))
            {
                return(Unauthorized());
            }

            var invSearchParams = new WorkoutInvitationSearchParams
            {
                First        = searchParams.First,
                After        = searchParams.After,
                Last         = searchParams.Last,
                Before       = searchParams.Before,
                IncludeTotal = searchParams.IncludeTotal,
                InviterId    = userId,
                Status       = status
            };

            var invitations = await workoutInvitationRepository.SearchAsync(invSearchParams);

            var paginatedResponse = CursorPaginatedResponse <WorkoutInvitationForReturnDto> .CreateFrom(invitations, mapper.Map <IEnumerable <WorkoutInvitationForReturnDto> >);

            return(Ok(paginatedResponse));
        }
Example #5
0
        public async Task <ActionResult <CursorPaginatedResponse <RoleForReturnDto> > > GetRolesAsync([FromQuery] CursorPaginationParams searchParams)
        {
            var roles = await userRepository.GetRolesAsync(searchParams);

            var paginatedResponse = CursorPaginatedResponse <RoleForReturnDto> .CreateFrom(roles, mapper.Map <IEnumerable <RoleForReturnDto> >);

            return(Ok(paginatedResponse));
        }
        public Task <CursorPagedList <ExerciseGroup> > GetScheduledWorkoutAdHocExercisesAsync(int scheduledWorkoutId, CursorPaginationParams searchParams)
        {
            IQueryable <ExerciseGroup> query = context.ExerciseGroups
                                               .Where(eg => eg.ScheduledWorkout.Id == scheduledWorkoutId)
                                               .Include(eg => eg.Exercise);

            return(CursorPagedList <ExerciseGroup> .CreateAsync(query, searchParams));
        }
        public Task <CursorPagedList <User> > GetScheduledWorkoutAttendeesAsync(int scheduledWorkoutId, CursorPaginationParams searchParams)
        {
            IQueryable <User> query = context.ScheduledWorkouts
                                      .Where(wo => wo.Id == scheduledWorkoutId)
                                      .SelectMany(swo => swo.Attendees.Select(attendee => attendee.User));

            return(CursorPagedList <User> .CreateAsync(query, searchParams));
        }
        public async Task <ActionResult <CursorPaginatedResponse <UserForReturnDto> > > GetScheduledWorkoutAttendeesAsync(int id, [FromQuery] CursorPaginationParams searchParams)
        {
            var workout = await scheduledWorkoutRepository.GetByIdAsync(id);

            if (workout == null)
            {
                return(NotFound());
            }

            var attendees = await scheduledWorkoutRepository.GetScheduledWorkoutAttendeesAsync(id, searchParams);

            var paginatedResponse = CursorPaginatedResponse <UserForReturnDto> .CreateFrom(attendees, mapper.Map <IEnumerable <UserForReturnDto> >);

            return(Ok(paginatedResponse));
        }