131 lines
3.3 KiB
Dart
131 lines
3.3 KiB
Dart
import 'package:aitrainer_app/model/cache.dart';
|
|
import 'package:aitrainer_app/model/customer.dart';
|
|
import 'package:aitrainer_app/model/exercise.dart';
|
|
import 'package:aitrainer_app/model/exercise_type.dart';
|
|
import 'package:aitrainer_app/service/exercise_service.dart';
|
|
|
|
class ExerciseRepository {
|
|
Exercise exercise;
|
|
Customer customer;
|
|
ExerciseType exerciseType;
|
|
List<Exercise> exerciseList;
|
|
|
|
double rmWendler = 0;
|
|
double rmMcglothlin = 0;
|
|
double rmLombardi = 0;
|
|
double rmMayhew = 0;
|
|
double rmOconner = 0;
|
|
double rmWathen = 0;
|
|
|
|
createNew() {
|
|
this.exercise = Exercise();
|
|
exercise.dateAdd = DateTime.now();
|
|
}
|
|
|
|
setQuantity(double quantity) {
|
|
if ( this.exercise == null ) {
|
|
this.createNew();
|
|
}
|
|
this.exercise.quantity = quantity;
|
|
}
|
|
|
|
setUnitQuantity(double unitQuantity) {
|
|
if ( this.exercise == null ) {
|
|
this.createNew();
|
|
}
|
|
|
|
this.exercise.unitQuantity = unitQuantity;
|
|
}
|
|
|
|
setUnit( String unit) {
|
|
if ( this.exercise == null ) {
|
|
this.createNew();
|
|
}
|
|
|
|
this.exercise.unit = unit;
|
|
}
|
|
|
|
setDatetimeExercise(DateTime datetimeExercise) {
|
|
if ( this.exercise == null ) {
|
|
this.createNew();
|
|
}
|
|
|
|
this.exercise.dateAdd = datetimeExercise;
|
|
}
|
|
|
|
double get unitQuantity {
|
|
return this.exercise.unitQuantity;
|
|
}
|
|
|
|
double get quantity {
|
|
return this.exercise.quantity;
|
|
}
|
|
|
|
Exercise getExercise() {
|
|
return this.exercise;
|
|
}
|
|
|
|
Future<void> addExercise() async {
|
|
final Exercise modelExercise = this.exercise;
|
|
modelExercise.customerId = this.customer.customerId;
|
|
modelExercise.exerciseTypeId = this.exerciseType.exerciseTypeId;
|
|
await ExerciseApi().addExercise(modelExercise);
|
|
}
|
|
|
|
|
|
setCustomer(Customer customer) {
|
|
this.customer = customer;
|
|
}
|
|
|
|
setExerciseType( ExerciseType exerciseType) {
|
|
this.exerciseType = exerciseType;
|
|
}
|
|
|
|
|
|
Future<List<Exercise>> getExercisesByCustomer( int customerId ) async {
|
|
final results = await ExerciseApi().getExercisesByCustomer(customerId);
|
|
this.exerciseList = results;
|
|
Cache().setExercises(exerciseList);
|
|
return this.exerciseList;
|
|
}
|
|
|
|
List<Exercise> getExerciseList() {
|
|
if ( this.exerciseList == null || this.exerciseList.length == 0 ) {
|
|
this.exerciseList = Cache().getExercises();
|
|
}
|
|
return this.exerciseList;
|
|
}
|
|
|
|
double getBaseExerciseFinishedPercent() {
|
|
return 0;
|
|
}
|
|
|
|
void getLastExercise() {
|
|
List<Exercise> exercises = this.getExerciseList();
|
|
Exercise lastExercise = exercises[0];
|
|
exercises.forEach((element) {
|
|
Exercise actualExercise = element;
|
|
if ( actualExercise.dateAdd.compareTo(lastExercise.dateAdd) > 0 ) {
|
|
lastExercise = actualExercise;
|
|
}
|
|
});
|
|
this.exercise = lastExercise;
|
|
this.customer = Cache().userLoggedIn;
|
|
this.exerciseType = getExerciseTypeById(exercise.exerciseTypeId);
|
|
return;
|
|
}
|
|
|
|
ExerciseType getExerciseTypeById(int exerciseTypeId) {
|
|
ExerciseType actualExerciseType;
|
|
Cache().getExerciseTypes().forEach((element) {
|
|
ExerciseType exerciseType = element;
|
|
if ( exerciseType.exerciseTypeId == exerciseTypeId) {
|
|
actualExerciseType = exerciseType;
|
|
}
|
|
});
|
|
if ( actualExerciseType == null ) {
|
|
throw Exception("Data error, no ExerciseType for exerciseTypeId $exerciseTypeId" );
|
|
}
|
|
return actualExerciseType;
|
|
}
|
|
} |