import 'package:diplomaticquarterapp/models/Appointments/DoctorListResponse.dart'; class DoctorMapper{ static RegionList getMappedDoctor( List doctorList ){ RegionList regionList = RegionList(); doctorList.forEach((element) { var regionDoctorList = regionList.registeredDoctorMap?[element.region]; regionDoctorList ??= PatientDoctorAppointmentListByRegion(); List doctorByHospital = []; if(element.isHMC == true ){ doctorByHospital = regionDoctorList.hmcDoctorList?.where((elementClinic) => elementClinic.filterName == element.getProjectCompleteName()).toList() ?? []; }else{ doctorByHospital = regionDoctorList.hmcDoctorList?.where((elementClinic) => elementClinic.filterName == element.getProjectCompleteName()).toList() ?? []; } if(doctorByHospital.isNotEmpty){ doctorByHospital.first.patientDoctorAppointmentList?.add(element); }else{ doctorByHospital.add( PatientDoctorAppointmentList( filterName: element.getProjectCompleteName(), distanceInKMs: element.projectDistanceInKiloMeters.toString(), projectTopName: element.projectTopName, projectBottomName: element.projectBottomName, patientDoctorAppointment: element) ); } if(element.isHMC == true ){ regionDoctorList.hmcDoctorList = doctorByHospital; }else{ regionDoctorList.hmgDoctorList = doctorByHospital; } regionList.registeredDoctorMap?[element.region!] = regionDoctorList; }); return regionList; } }