public async Task Handle(ActivityCompleted notification, CancellationToken cancellationToken)
        {
            var workout = await _workoutTableHandler.GetWorkout(notification.UserId, notification.WorkoutId);

            if (workout != null)
            {
                var last = await lastExerciseActivityTableHandler.Retrieve(notification.UserId, notification.ExerciseId);

                if (last == null || workout.StartDateTime >= last.ExerciseDateTime)
                {
                    await lastExerciseActivityTableHandler.InsertOrReplace(new Workouts.TableStorage.LastExerciseActivity(notification.UserId, notification.ExerciseId)
                    {
                        ExerciseDateTime = workout.StartDateTime,
                        Sets             = notification.Sets.ToArray()
                    });
                }
            }
        }
        public async Task <WorkoutDetailResponse> Handle(WorkoutDetailRequest request, CancellationToken cancellationToken)
        {
            var workout = await _tableHandler.GetWorkout(request.UserId, request.WorkoutId);

            if (workout == null)
            {
                return(WorkoutDetailResponse.Empty);
            }
            return(new WorkoutDetailResponse
            {
                Activities = GetActivities(workout),
                PendingActivities = await GetPendingActivitiesAsync(request.WorkoutId),
                StartedDateTime = workout.StartDateTime,
                Id = request.WorkoutId,
                SelectedActivity = await GetActivityFor(request),
                Version = workout.Version,
            });
        }
Exemplo n.º 3
0
 private async Task <Workout> GetWorkoutAsync(string userId, Guid workoutId)
 {
     return(await _workoutTableHandler.GetWorkout(
                userId,
                workoutId));
 }