@ -4,9 +4,11 @@ import 'package:diplomaticquarterapp/models/Appointments/DoctorListResponse.dart
import ' package:diplomaticquarterapp/models/Appointments/FreeSlot.dart ' ;
import ' package:diplomaticquarterapp/models/Appointments/PatientShareResposne.dart ' ;
import ' package:diplomaticquarterapp/models/Appointments/timeSlot.dart ' ;
import ' package:diplomaticquarterapp/models/Appointments/toDoCountProviderModel.dart ' ;
import ' package:diplomaticquarterapp/models/CovidDriveThru/CovidTestProceduresResponse.dart ' ;
import ' package:diplomaticquarterapp/pages/Covid-DriveThru/covid-payment-alert.dart ' ;
import ' package:diplomaticquarterapp/services/appointment_services/GetDoctorsList.dart ' ;
import ' package:diplomaticquarterapp/services/clinic_services/get_clinic_service.dart ' ;
import ' package:diplomaticquarterapp/services/covid-drivethru/covid-drivethru.dart ' ;
import ' package:diplomaticquarterapp/theme/colors.dart ' ;
import ' package:diplomaticquarterapp/uitl/app_shared_preferences.dart ' ;
@ -15,7 +17,6 @@ import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
import ' package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart ' ;
import ' package:diplomaticquarterapp/uitl/translations_delegate_base.dart ' ;
import ' package:diplomaticquarterapp/uitl/utils_new.dart ' ;
import ' package:diplomaticquarterapp/widgets/buttons/defaultButton.dart ' ;
import ' package:diplomaticquarterapp/widgets/dialogs/confirm_dialog.dart ' ;
import ' package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart ' ;
import ' package:diplomaticquarterapp/widgets/transitions/fade_page.dart ' ;
@ -66,7 +67,7 @@ class _CovidTimeSlotsState extends State<CovidTimeSlots> with TickerProviderStat
ScrollController _scrollController ;
ProjectViewModel projectViewModel ;
ToDoCountProviderModel toDoProvider ;
@ override
void initState ( ) {
@ -119,203 +120,211 @@ class _CovidTimeSlotsState extends State<CovidTimeSlots> with TickerProviderStat
@ override
Widget build ( BuildContext context ) {
projectViewModel = Provider . of ( context ) ;
ProjectViewModel projectViewModel = Provider . of ( context ) ;
toDoProvider = Provider . of < ToDoCountProviderModel > ( context ) ;
return AppScaffold (
appBarTitle: TranslationBase . of ( context ) . covidTest ,
isShowAppBar: true ,
showNewAppBar: true ,
showNewAppBarTitle: true ,
body: SingleChildScrollView (
child: Container (
margin: EdgeInsets . fromLTRB ( 15.0 , 15.0 , 15.0 , 0.0 ) ,
child: Column (
crossAxisAlignment: CrossAxisAlignment . start ,
children: < Widget > [
Container (
height: 150.0 ,
decoration: BoxDecoration (
image: DecorationImage (
image: AssetImage ( " assets/images/new-design/covid-19-big-banner-bg.png " ) ,
fit: BoxFit . fill ,
) ,
color: Colors . white . withOpacity ( 0.3 ) ,
borderRadius: BorderRadius . all ( Radius . circular ( 10 ) ) ) ,
child: Row (
crossAxisAlignment: CrossAxisAlignment . start ,
children: < Widget > [
Container (
margin: EdgeInsets . only ( left: 15.0 , right: 15.0 , top: 30.0 ) ,
child: SvgPicture . asset ( ' assets/images/new-design/covid-19-car.svg ' , width: 90.0 , height: 90.0 ) ,
) ,
Column (
crossAxisAlignment: CrossAxisAlignment . start ,
children: < Widget > [
Container (
margin: EdgeInsets . only ( left: 20.0 , right: 20.0 , top: 20.0 ) ,
child: Text ( TranslationBase . of ( context ) . covidTest , style: TextStyle ( color: Colors . white , fontWeight: FontWeight . bold , fontSize: 24.0 ) ) ,
) ,
Container (
margin: EdgeInsets . only ( left: 20.0 , right: 20.0 , top: 10.0 ) ,
child: Text ( TranslationBase . of ( context ) . driveThru , style: TextStyle ( color: Colors . white , fontSize: 24.0 ) ) ,
) ,
] ,
) ,
] ,
) ,
) ,
Container (
backgroundColor: CustomColors . appBackgroudGrey2Color ,
body: Column (
children: [
Expanded (
child: SingleChildScrollView (
child: Container (
margin: EdgeInsets . fromLTRB ( 15.0 , 15.0 , 15.0 , 0.0 ) ,
child: Column (
crossAxisAlignment: CrossAxisAlignment . start ,
mainAxisSize: MainAxisSize . max ,
children: < Widget > [
_buildTableCalendarWithBuilders ( projectViewModel ) ,
Padding (
padding: const EdgeInsets . only ( left: 16 , right: 16 , bottom: 16 ) ,
child: Text ( selectedDate , style: TextStyle ( fontSize: 16.0 , fontWeight: FontWeight . w600 , letterSpacing: - 0.64 ) ) ,
) ,
Container (
height: 40 ,
child: ListView . builder (
controller: _scrollController ,
scrollDirection: Axis . horizontal ,
itemCount: dayEvents . length ,
itemBuilder: ( context , index ) {
return Container (
margin: EdgeInsets . only ( right: ( index = = dayEvents . length - 1 ) ? 16 : 5.0 , left: index = = 0 ? 16 : 5 ) ,
child: ButtonTheme (
shape: RoundedRectangleBorder (
borderRadius: BorderRadius . circular ( 5.0 ) ,
side: BorderSide (
color: index = = selectedButtonIndex ? CustomColors . green : Colors . black , / / Color of the border
style: BorderStyle . solid , / / Style of the border
width: 1.5 , / / width of the border
) ,
) ,
minWidth: MediaQuery . of ( context ) . size . width * 0.18 ,
child: index = = selectedButtonIndex ? getSelectedButton ( index ) : getNormalButton ( index ) ) ,
) ;
} ,
child: Column (
crossAxisAlignment: CrossAxisAlignment . start ,
mainAxisSize: MainAxisSize . max ,
children: < Widget > [
Text (
TranslationBase . of ( context ) . selectAppo ,
style: TextStyle (
color: Colors . black ,
fontSize: 16.0 ,
letterSpacing: - 0.64 ,
fontWeight: FontWeight . w600 ,
) ,
) ,
Card (
shape: cardRadius ( 12 ) ,
child: _buildTableCalendarWithBuilders ( projectViewModel ) ,
) ,
mHeight ( 12 ) ,
Text (
selectedDate ,
style: TextStyle (
fontSize: 16.0 ,
fontWeight: FontWeight . bold ,
letterSpacing: - 0.64 ,
) ,
) ,
mHeight ( 8 ) ,
Container (
height: 40 ,
child: ListView . builder (
controller: _scrollController ,
scrollDirection: Axis . horizontal ,
itemCount: dayEvents . length ,
itemBuilder: ( context , index ) {
return Container (
margin: EdgeInsets . only ( right: ( index = = dayEvents . length - 1 ) ? 0 : 5.0 , left: index = = 0 ? 0 : 5 ) ,
child: ButtonTheme (
shape: RoundedRectangleBorder (
borderRadius: BorderRadius . circular ( 5.0 ) ,
side: BorderSide (
color: index = = selectedButtonIndex ? CustomColors . green : Colors . black , / / Color of the border
style: BorderStyle . solid , / / Style of the border
width: 1.5 , / / width of the border
) ,
) ,
minWidth: MediaQuery . of ( context ) . size . width * 0.2 ,
child: index = = selectedButtonIndex ? getSelectedButton ( index ) : getNormalButton ( index ) ) ,
) ;
} ,
) ,
) ,
] ,
) ,
) ,
SizedBox (
height: 100.0 ,
) ,
] ,
) ,
) ,
SizedBox (
height: 10.0 ,
) ,
if ( CovidTimeSlots . areSlotsAvailable )
Container (
color: Colors . grey [ 100 ] ,
margin: EdgeInsets . all ( 10.0 ) ,
child: DefaultButton (
TranslationBase . of ( context ) . bookNow ,
( ) {
bookCovidTestAppointment ( ) ;
} ,
) ,
) ,
Card (
elevation: 20 ,
margin: EdgeInsets . zero ,
shape: cardRadius ( 0 ) ,
child: Container (
width: double . infinity ,
padding: EdgeInsets . all ( 12 ) ,
child: ButtonTheme (
shape: RoundedRectangleBorder (
borderRadius: BorderRadius . circular ( 10.0 ) ,
) ,
minWidth: MediaQuery . of ( context ) . size . width * 0.7 ,
height: 45.0 ,
child: RaisedButton (
color: CustomColors . green ,
textColor: Colors . white ,
disabledTextColor: Colors . white ,
elevation: 0 ,
disabledColor: Colors . grey [ 500 ] ,
onPressed: ( ) {
bookCovidTestAppointment ( ) ;
} ,
child: Text (
TranslationBase . of ( context ) . bookAppo ,
style: TextStyle (
fontSize: 16.0 ,
letterSpacing: - 0.64 ,
) ,
) ,
) ,
] ,
) ,
) ,
) ,
) ,
)
] ,
) ,
) ;
}
Widget _buildTableCalendarWithBuilders ( ProjectViewModel projectViewModel ) {
return Card (
shape: cardRadius ( 12 ) ,
margin: EdgeInsets . all ( 16 ) ,
clipBehavior: Clip . antiAlias ,
child: Padding (
padding: const EdgeInsets . only ( bottom: 12 ) ,
child: TableCalendar (
locale: projectViewModel . isArabic ? ' ar_SA ' : ' en_US ' ,
calendarController: _calendarController ,
events: _events ,
initialCalendarFormat: CalendarFormat . month ,
startDay: DateTime . now ( ) ,
formatAnimation: FormatAnimation . slide ,
startingDayOfWeek: StartingDayOfWeek . sunday ,
weekendDays: [ DateTime . friday , DateTime . saturday ] ,
availableGestures: AvailableGestures . horizontalSwipe ,
availableCalendarFormats: const {
CalendarFormat . month: ' ' ,
CalendarFormat . week: ' ' ,
} ,
calendarStyle: CalendarStyle (
outsideDaysVisible: false ,
weekendStyle: TextStyle ( ) . copyWith ( color: Colors . blue [ 800 ] ) ,
holidayStyle: TextStyle ( ) . copyWith ( color: Colors . blue [ 800 ] ) ,
) ,
daysOfWeekStyle: DaysOfWeekStyle (
weekendStyle: TextStyle ( ) . copyWith ( color: Colors . black , fontSize: 11.0 , fontWeight: FontWeight . w600 ) ,
weekdayStyle: TextStyle ( ) . copyWith ( color: Colors . black , fontSize: 11.0 , fontWeight: FontWeight . w600 ) ,
) ,
headerStyle: HeaderStyle ( centerHeaderTitle: true , formatButtonVisible: false , titleTextStyle: TextStyle ( fontSize: 16 , letterSpacing: - 0.64 , fontWeight: FontWeight . w600 ) ) ,
builders: CalendarBuilders (
selectedDayBuilder: ( context , date , _ ) {
return FadeTransition (
opacity: Tween ( begin: 0.0 , end: 1.0 ) . animate ( _animationController ) ,
child: Container (
margin: const EdgeInsets . all ( 4.0 ) ,
padding: const EdgeInsets . only ( top: 5.0 , left: 5.0 ) ,
color: Colors . transparent ,
width: 0 ,
height: 0 ,
child: Text (
' ${ date . day } ' ,
style: TextStyle ( ) . copyWith ( fontSize: 14.0 ) ,
) ,
) ,
) ;
} ,
todayDayBuilder: ( context , date , _ ) {
return Container (
decoration: BoxDecoration (
shape: BoxShape . circle ,
color: _calendarController . isSelected ( date )
? Colors . green [ 400 ]
: _calendarController . isToday ( date )
? Colors . transparent
: Color ( 0xff76cfb7 ) ,
) ,
width: 40.0 ,
height: 40.0 ,
child: Center (
child: Text (
' ${ date . day } ' ,
style: TextStyle ( ) . copyWith (
color: Colors . white ,
fontSize: 14.0 ,
) ,
) ,
return TableCalendar (
locale: projectViewModel . isArabic ? ' ar_SA ' : ' en_US ' ,
calendarController: _calendarController ,
events: _events ,
initialCalendarFormat: CalendarFormat . month ,
startDay: DateTime . now ( ) ,
formatAnimation: FormatAnimation . slide ,
startingDayOfWeek: StartingDayOfWeek . sunday ,
weekendDays: [ DateTime . friday , DateTime . saturday ] ,
availableGestures: AvailableGestures . horizontalSwipe ,
availableCalendarFormats: const {
CalendarFormat . month: ' ' ,
CalendarFormat . week: ' ' ,
} ,
calendarStyle: CalendarStyle (
outsideDaysVisible: false ,
weekendStyle: TextStyle ( ) . copyWith ( color: Colors . blue [ 800 ] ) ,
holidayStyle: TextStyle ( ) . copyWith ( color: Colors . blue [ 800 ] ) ,
) ,
daysOfWeekStyle: DaysOfWeekStyle (
weekendStyle: TextStyle ( ) . copyWith ( color: Colors . black , fontSize: 11.0 , fontWeight: FontWeight . w600 ) ,
weekdayStyle: TextStyle ( ) . copyWith ( color: Colors . black , fontSize: 11.0 , fontWeight: FontWeight . w600 ) ,
) ,
headerStyle: HeaderStyle ( centerHeaderTitle: true , formatButtonVisible: false , titleTextStyle: TextStyle ( fontSize: 16 , letterSpacing: - 0.64 , fontWeight: FontWeight . w600 ) ) ,
builders: CalendarBuilders (
selectedDayBuilder: ( context , date , _ ) {
return FadeTransition (
opacity: Tween ( begin: 0.0 , end: 1.0 ) . animate ( _animationController ) ,
child: Container (
margin: const EdgeInsets . all ( 4.0 ) ,
padding: const EdgeInsets . only ( top: 5.0 , left: 6.0 ) ,
color: Colors . transparent ,
width: 0 ,
height: 0 ,
child: Text (
' ${ date . day } ' ,
style: TextStyle ( ) . copyWith ( fontSize: 14.0 ) ,
) ,
) ,
) ;
} ,
todayDayBuilder: ( context , date , _ ) {
return Container (
decoration: BoxDecoration (
shape: BoxShape . circle ,
color: _calendarController . isSelected ( date )
? Colors . green [ 400 ]
: _calendarController . isToday ( date )
? Colors . transparent
: Color ( 0xff76cfb7 ) ,
) ,
width: 40.0 ,
height: 40.0 ,
child: Center (
child: Text (
' ${ date . day } ' ,
style: TextStyle ( ) . copyWith (
color: Colors . white ,
fontSize: 14.0 ,
) ,
) ;
} ,
markersBuilder: ( context , date , events , holidays ) {
final children = < Widget > [ ] ;
if ( events . isNotEmpty ) {
children . add (
Positioned (
right: 4 ,
bottom: 4 ,
child: _buildEventsMarker ( date , events ) ,
) ,
) ;
}
) ,
) ,
) ;
} ,
markersBuilder: ( context , date , events , holidays ) {
final children = < Widget > [ ] ;
if ( events . isNotEmpty ) {
children . add (
Positioned (
right: 4 ,
bottom: 4 ,
child: _buildEventsMarker ( date , events ) ,
) ,
) ;
}
return children ;
} ,
) ,
onDaySelected: ( date , event , _ ) {
_onDaySelected ( date , event , projectViewModel ) ;
_animationController . forward ( from: 0.0 ) ;
} ,
onVisibleDaysChanged: _onVisibleDaysChanged ,
onCalendarCreated: _onCalendarCreated ,
) ,
return children ;
} ,
) ,
onDaySelected: ( date , event , _ ) {
_onDaySelected ( date , event , projectViewModel ) ;
_animationController . forward ( from: 0.0 ) ;
} ,
onVisibleDaysChanged: _onVisibleDaysChanged ,
onCalendarCreated: _onCalendarCreated ,
) ;
}
@ -353,7 +362,7 @@ class _CovidTimeSlotsState extends State<CovidTimeSlots> with TickerProviderStat
_eventsParsed = Map . fromIterable ( slotsList , key: ( e ) = > e . slot , value: ( e ) = > e . event ) ;
setState ( ( ) {
CovidTimeSlots . selectedDate = dateFormatter . format ( DateUtil . convertStringToDate ( freeSlotsResponse [ 0 ] [ ' FreeTimeSlots ' ] ) ) ;
selectedDate = DateUtil . get WeekDay MonthDayYearDateFormatted( DateUtil . convertStringToDate ( freeSlotsResponse [ 0 ] [ ' FreeTimeSlots ' ] ) , projectViewModel . isArabic ? " ar " : " en " ) ;
selectedDate = DateUtil . get MonthDayYearDateFormatted( DateUtil . convertStringToDate ( freeSlotsResponse [ 0 ] [ ' FreeTimeSlots ' ] ) ) ;
selectedDateJSON = freeSlotsResponse [ 0 ] [ ' FreeTimeSlots ' ] ;
} ) ;
openTimeSlotsPickerForDate ( DateUtil . convertStringToDate ( selectedDateJSON ) , docFreeSlots ) ;
@ -363,12 +372,21 @@ class _CovidTimeSlotsState extends State<CovidTimeSlots> with TickerProviderStat
Widget _buildEventsMarker ( DateTime date , List events ) {
return Container (
/ / decoration: BoxDecoration (
/ / shape: BoxShape . circle ,
/ / color: _calendarController . isSelected ( date )
/ / ? Colors . green [ 400 ]
/ / : _calendarController . isToday ( date )
/ / ? Colors . brown [ 300 ]
/ / : Colors . blue [ 400 ] ,
/ / ) ,
decoration: containerColorRadiusBorderWidth (
_calendarController . isSelected ( date )
? CustomColors . green
: _calendarController . isToday ( date )
? CustomColors . green . withOpacity ( 0.5 )
: Colors . white ,
? CustomColors . green . withOpacity ( 0.5 )
: Colors . white ,
200 ,
_calendarController . isSelected ( date ) ? CustomColors . green : Colors . black ,
2 ) ,
@ -379,7 +397,7 @@ class _CovidTimeSlotsState extends State<CovidTimeSlots> with TickerProviderStat
' ${ date . day } ' ,
style: TextStyle ( ) . copyWith (
color: _calendarController . isSelected ( date ) ? Colors . white : Colors . black ,
fontSize: 1 4 .0,
fontSize: 1 3 .0,
) ,
) ,
) ,
@ -395,53 +413,35 @@ class _CovidTimeSlotsState extends State<CovidTimeSlots> with TickerProviderStat
setState ( ( ) {
selectedButtonIndex = index ;
CovidTimeSlots . selectedTime = dayEvents [ index ] . isoTime ;
print ( CovidTimeSlots . selectedTime ) ;
} ) ;
} ,
child: Text ( dayEvents [ index ] . isoTime , style: TextStyle ( fontSize: 12.0 )) ,
child: Text ( dayEvents [ index ] . isoTime , style: TextStyle ( fontSize: 12.0 , fontWeight: FontWeight . bold )) ,
) ;
}
Widget getSelectedButton ( int index ) {
return RaisedButton (
color: CustomColors . green ,
/ / Color of the border
color: CustomColors . green , / / Color of the border
textColor: Colors . white ,
elevation: 0 ,
onPressed: ( ) {
setState ( ( ) {
selectedButtonIndex = index ;
CovidTimeSlots . selectedTime = dayEvents [ index ] . isoTime ;
print ( CovidTimeSlots . selectedTime ) ;
} ) ;
} ,
child: Text ( dayEvents [ index ] . isoTime , style: TextStyle ( fontSize: 12.0 )) ,
child: Text ( dayEvents [ index ] . isoTime , style: TextStyle ( fontSize: 12.0 , fontWeight: FontWeight . bold )) ,
) ;
}
bookCovidTestAppointment ( ) {
var messageEn = " This Appointment is being booked for patient " +
projectViewModel . user . firstName +
" " +
projectViewModel . user . lastName +
" , Having file number " +
projectViewModel . user . patientID . toString ( ) +
" . Please confirm! " ;
var messageAr =
" يتم حجز هذا الموعد المراجع " + projectViewModel . user . firstName + " " + projectViewModel . user . lastName + " , وجود رقم الملف " + projectViewModel . user . patientID . toString ( ) + " . يرجى تأكيد! " ;
ConfirmDialog dialog = new ConfirmDialog (
context: context ,
confirmMessage: projectViewModel . isArabic ? messageAr : messageEn ,
okText: TranslationBase . of ( context ) . confirm ,
cancelText: TranslationBase . of ( context ) . cancel_nocaps ,
okFunction: ( ) {
GifLoaderDialogUtils . showMyDialog ( context ) ;
DoctorList docObject = new DoctorList ( ) ;
docObject . doctorID = widget . selectedDoctorID ;
docObject . clinicID = widget . selectedClinicID ;
docObject . projectID = widget . projectID ;
insertAppointmentCovidTest ( context , docObject ) ;
} ,
cancelFunction: ( ) = > { } ) ;
dialog . showAlertDialog ( context ) ;
GifLoaderDialogUtils . showMyDialog ( context ) ;
DoctorList docObject = new DoctorList ( ) ;
docObject . doctorID = widget . selectedDoctorID ;
docObject . clinicID = widget . selectedClinicID ;
docObject . projectID = widget . projectID ;
insertAppointmentCovidTest ( context , docObject ) ;
}
insertAppointmentCovidTest ( context , DoctorList docObject ) {
@ -452,6 +452,7 @@ class _CovidTimeSlotsState extends State<CovidTimeSlots> with TickerProviderStat
. then ( ( res ) {
if ( res [ ' MessageStatus ' ] = = 1 ) {
AppToast . showSuccessToast ( message: " Appointment Booked Successfully " ) ;
getToDoCount ( ) ;
getPatientShare ( context , res [ ' AppointmentNo ' ] , docObject . clinicID , docObject . projectID , docObject ) ;
} else {
GifLoaderDialogUtils . hideDialog ( context ) ;
@ -483,13 +484,28 @@ class _CovidTimeSlotsState extends State<CovidTimeSlots> with TickerProviderStat
} ) ;
}
getToDoCount ( ) {
toDoProvider . setState ( 0 , true ) ;
ClinicListService service = new ClinicListService ( ) ;
service . getActiveAppointmentNo ( context ) . then ( ( res ) {
print ( res [ ' AppointmentActiveNumber ' ] ) ;
if ( res [ ' MessageStatus ' ] = = 1 ) {
toDoProvider . setState ( res [ ' AppointmentActiveNumber ' ] , true ) ;
} else { }
} ) . catchError ( ( err ) {
print ( err ) ;
} ) ;
}
cancelAppointment ( DoctorList docObject , AppoitmentAllHistoryResultList appo , BuildContext context ) {
ConfirmDialog . closeAlertDialog ( context ) ;
GifLoaderDialogUtils . showMyDialog ( context ) ;
DoctorsListService service = new DoctorsListService ( ) ;
service . cancelAppointment ( appo , context ) . then ( ( res ) {
if ( res [ ' MessageStatus ' ] = = 1 ) {
/ / Future . delayed ( new Duration ( milliseconds: 1500 ) , ( ) {
insertAppointmentCovidTest ( context , docObject ) ;
/ / } ) ;
} else {
GifLoaderDialogUtils . hideDialog ( context ) ;
AppToast . showErrorToast ( message: res [ ' ErrorEndUserMessage ' ] ) ;
@ -522,26 +538,24 @@ class _CovidTimeSlotsState extends State<CovidTimeSlots> with TickerProviderStat
}
getCovidFreeSlots ( BuildContext context , int projectID ) {
CovidTimeSlots . areSlotsAvailable = false ;
CovidDriveThruService service = new CovidDriveThruService ( ) ;
GifLoaderDialogUtils . showMyDialog ( context ) ;
service . getCovidFreeSlots ( context , projectID ) . then ( ( res ) {
GifLoaderDialogUtils . hideDialog ( context ) ;
if ( res [ ' MessageStatus ' ] = = 1 ) {
if ( res [ ' COVID19_FreeTimeSlots ' ] . length ! = 0 ) {
CovidTimeSlots . areSlotsAvailable = true ;
freeSlotsResponse = res [ ' COVID19_FreeTimeSlots ' ] ;
_getJSONSlots ( ) . then ( ( value ) = > {
setState ( ( ) = > { widget . selectedClinicID = freeSlotsResponse [ 0 ] [ ' ClinicID ' ] , widget . selectedDoctorID = freeSlotsResponse [ 0 ] [ ' DoctorID ' ] , _events . clear ( ) , _events = value } )
} ) ;
} else {
CovidTimeSlots . areSlotsAvailable = false ;
}
setState ( ( ) = > { widget . selectedClinicID = freeSlotsResponse [ 0 ] [ ' ClinicID ' ] , widget . selectedDoctorID = freeSlotsResponse [ 0 ] [ ' DoctorID ' ] , _events . clear ( ) , _events = value } )
} ) ;
} else { }
} else {
GifLoaderDialogUtils . hideDialog ( context ) ;
AppToast . showErrorToast ( message: res [ ' ErrorEndUserMessage ' ] ) ;
}
} ) . catchError ( ( err ) {
GifLoaderDialogUtils . hideDialog ( context ) ;
AppToast . showErrorToast ( message: err . toString ( ) ) ;
print ( err ) ;
} ) ;
}