82 lines
2.7 KiB
Dart
82 lines
2.7 KiB
Dart
import 'package:aitrainer_app/model/cache.dart';
|
|
import 'package:aitrainer_app/model/customer.dart';
|
|
import 'package:aitrainer_app/model/workout_tree.dart';
|
|
import 'package:aitrainer_app/repository/exercise_plan_repository.dart';
|
|
import 'package:aitrainer_app/repository/exercise_repository.dart';
|
|
import 'package:flutter_form_bloc/flutter_form_bloc.dart';
|
|
|
|
class ExerciseAddByPlanFormBloc extends FormBloc<String, String> {
|
|
final ExerciseRepository exerciseRepository;
|
|
final ExercisePlanRepository exercisePlanRepository;
|
|
final WorkoutTree workoutTree;
|
|
final customerId;
|
|
Customer customer;
|
|
int step = 1;
|
|
int countSteps = 1;
|
|
|
|
final quantity1Field = TextFieldBloc(
|
|
);
|
|
|
|
final unitQuantity1Field = TextFieldBloc(
|
|
);
|
|
|
|
ExerciseAddByPlanFormBloc({this.exerciseRepository, this.exercisePlanRepository, this.customerId, this.workoutTree}) {
|
|
addFieldBlocs(fieldBlocs: [
|
|
quantity1Field,
|
|
unitQuantity1Field,
|
|
]);
|
|
|
|
quantity1Field.onValueChanges(onData: (previous, current) async* {
|
|
exerciseRepository.setQuantity(current.valueToDouble);
|
|
});
|
|
|
|
unitQuantity1Field.onValueChanges(onData: (previous, current) async* {
|
|
exerciseRepository.setUnitQuantity(unitQuantity1Field.valueToDouble);
|
|
});
|
|
|
|
exerciseRepository.exerciseType = workoutTree.exerciseType;
|
|
if ( Cache().userLoggedIn.customerId == customerId) {
|
|
customer = Cache().userLoggedIn;
|
|
} else if ( Cache().getTrainee().customerId == customerId) {
|
|
customer = Cache().getTrainee();
|
|
}
|
|
exercisePlanRepository.setActualPlanDetail(workoutTree.exerciseType);
|
|
exerciseRepository.customer = customer;
|
|
countSteps = exercisePlanRepository.actualPlanDetail.serie;
|
|
|
|
unitQuantity1Field.updateInitialValue(exercisePlanRepository.actualPlanDetail.weightEquation);
|
|
quantity1Field.updateInitialValue(exercisePlanRepository.actualPlanDetail.repeats.toString());
|
|
|
|
}
|
|
|
|
@override
|
|
void onSubmitting() async {
|
|
|
|
try {
|
|
emitLoading(progress: 30);
|
|
step++;
|
|
|
|
exerciseRepository.setUnitQuantity(unitQuantity1Field.valueToDouble);
|
|
exerciseRepository.setQuantity(quantity1Field.valueToDouble);
|
|
exerciseRepository.exercise.exercisePlanDetailId =
|
|
exercisePlanRepository.actualPlanDetail.exercisePlanDetailId;
|
|
exerciseRepository.exercise.unit = workoutTree.exerciseType.unit;
|
|
workoutTree.executed = true;
|
|
print("On Submitting Add Exercise By Plan " + exerciseRepository.exercise.toJson().toString());
|
|
await exerciseRepository.addExercise();
|
|
|
|
emitSuccess(canSubmitAgain: true);
|
|
} on Exception catch (ex) {
|
|
emitFailure(failureResponse: ex.toString());
|
|
}
|
|
}
|
|
|
|
//@override
|
|
Future<void> close() {
|
|
quantity1Field.close();
|
|
unitQuantity1Field.close();
|
|
|
|
return super.close();
|
|
}
|
|
}
|