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/medical/EyeViewModel.dart

81 lines
2.7 KiB
Dart

import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
import 'package:diplomaticquarterapp/core/model/eye/AppoimentAllHistoryResult.dart';
import 'package:diplomaticquarterapp/core/model/eye/AppointmentFilter.dart';
import 'package:diplomaticquarterapp/core/service/medical/EyeService.dart';
import 'package:diplomaticquarterapp/core/viewModels/base_view_model.dart';
import 'package:diplomaticquarterapp/locator.dart';
import 'package:diplomaticquarterapp/uitl/app_toast.dart';
class EyeViewModel extends BaseViewModel {
EyeService _eyeService = locator<EyeService>();
List<AppoimentAllHistoryResultList> get appoimentAllHistoryResultList =>
_eyeService.appoimentAllHistoryResultList;
List<AppointmentFilter> appointmentFilter = List();
getEyeMeasurement() async {
setState(ViewState.Busy);
await _eyeService.getEyeMeasurement();
if (_eyeService.hasError) {
error = _eyeService.error;
setState(ViewState.Error);
} else {
if (_eyeService.appoimentAllHistoryResultList.length == 0) {
new AppToast().backWithEmpty();
} else {
_eyeService.appoimentAllHistoryResultList.forEach((element) {
List<AppointmentFilter> _appointmentFilter = appointmentFilter
.where(
(elementFilter) =>
elementFilter.filterName == element.projectName,
)
.toList();
if (_appointmentFilter.length != 0) {
appointmentFilter[appointmentFilter.indexOf(_appointmentFilter[0])]
.appointmentAllHistoryResultList
.add(element);
} else {
appointmentFilter.add(AppointmentFilter(
element,
element.projectName,
));
}
});
}
setState(ViewState.Idle);
}
}
sendGlassesPrescriptionEmail(
{int appointmentNo, String projectName, int projectID}) async {
setState(ViewState.Busy);
await _eyeService.sendGlassesPrescriptionEmail(
appointmentNo: appointmentNo,
projectID: projectID,
projectName: projectName);
if (_eyeService.hasError) {
error = _eyeService.error;
setState(ViewState.Error);
} else {
setState(ViewState.Idle);
}
}
sendContactLensPrescriptionEmail(
{int appointmentNo, String projectName, int projectID}) async {
setState(ViewState.Busy);
await _eyeService.sendContactLensPrescriptionEmail(
appointmentNo: appointmentNo,
projectID: projectID,
projectName: projectName);
if (_eyeService.hasError) {
error = _eyeService.error;
setState(ViewState.Error);
} else {
setState(ViewState.Idle);
}
}
}