You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
diplomatic-quarter/lib/core/viewModels/vaccine_view_model.dart

66 lines
2.0 KiB
Dart

import 'package:diplomaticquarterapp/core/model/vaccine/vaccination_item.dart';
import 'package:diplomaticquarterapp/uitl/app_toast.dart';
4 years ago
import 'base_view_model.dart';
import '../../locator.dart';
import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
import 'package:diplomaticquarterapp/core/model/vaccine/my_vaccine.dart';
import 'package:diplomaticquarterapp/core/service/vaccine_service.dart';
class VaccineViewModel extends BaseViewModel {
bool hasError = false;
VaccineService _vaccineService = locator<VaccineService>();
List<VaccineModel> get vaccineList => _vaccineService.vaccineList;
List<VaccinationItem> get vaccinationItemList => _vaccineService.vaccinationItemList;
4 years ago
Future getVaccine() async {
hasError = false;
setState(ViewState.Busy);
await _vaccineService.getMyVaccine();
if (_vaccineService.hasError) {
error = _vaccineService.error;
setState(ViewState.ErrorLocal);
} else
setState(ViewState.Idle);
}
Future getMyVaccinationItem() async {
hasError = false;
setState(ViewState.Busy);
await _vaccineService.getMyVaccinationItem();
if (_vaccineService.hasError) {
error = _vaccineService.error;
setState(ViewState.Error);
} else
setState(ViewState.Idle);
}
Future getMyVaccinationOnHand({String pItemCode}) async {
hasError = false;
setState(ViewState.Busy);
await _vaccineService.getMyVaccinationOnHand(pItemCode: pItemCode);
if (_vaccineService.hasError) {
error = _vaccineService.error;
setState(ViewState.ErrorLocal);
} else
setState(ViewState.Idle);
}
Future sendEmail({String message}) async {
hasError = false;
setState(ViewState.BusyLocal);
await _vaccineService.sendEmail();
if (_vaccineService.hasError) {
error = _vaccineService.error;
setState(ViewState.ErrorLocal);
AppToast.showErrorToast(message: error);
} else {
AppToast.showSuccessToast(message: message);
setState(ViewState.Idle);
}
}
4 years ago
}