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, }); }
private async Task <Workout> GetWorkoutAsync(string userId, Guid workoutId) { return(await _workoutTableHandler.GetWorkout( userId, workoutId)); }