I refer this tutorial https://github.com/bhrugen/AppointmentScheduler I did same code but I’m not able to show Get Calendar Data when I running it, It’s shows error – Unable to cast object of type ‘System.String’ to type ‘System.Boolean. My Code is :-
AppointmentApiController.cs :
[HttpGet] [Route("GetCalendarData")] public IActionResult GetCalendarData(string doctorId) { CommonResponse<List<AppointmentVM>> commonResponse = new CommonResponse<List<AppointmentVM>>(); try { if (role == Helper.Patient) { commonResponse.dataenum = _appointmentService.PatientsEventsById(loginUserId); commonResponse.status = Helper.success_code; } else if (role == Helper.Doctor) { commonResponse.dataenum = _appointmentService.DoctorsEventsById(loginUserId); commonResponse.status = Helper.success_code; } else { commonResponse.dataenum = _appointmentService.DoctorsEventsById(doctorId); commonResponse.status = Helper.success_code; } } catch (Exception e) { commonResponse.message = e.Message; commonResponse.status = Helper.failure_code; } return Ok(commonResponse); }
Script.js :
var routeURL = location.protocol + "//" + location.host; $(document).ready(function () { $("#appointmentDate").kendoDateTimePicker({ value: new Date(), dateInput: false }); InitializeCalendar(); }); var calendar; function InitializeCalendar() { try { var calendarEl = document.getElementById('calendar'); if (calendarEl != null) { calendar = new FullCalendar.Calendar(calendarEl, { initialView: 'dayGridMonth', headerToolbar: { left: 'prev,next,today', center: 'title', right: 'dayGridMonth,timeGridWeek,timeGridDay' }, selectable: true, editable: false, select: function (event) { onShowModal(event, null); }, eventDisplay:'block', events: function (frtch, successCallback, failureCallback) { $.ajax({ url: routeURL + '/api/Appointment/GetCalendarData?doctorId=' + $("#doctorId").val(), type: 'GET', dataType: 'JSON', success: function (response) { var events = []; if (response.status === 1) { $.each(response.dataenum, function (i, data) { events.push({ title: data.title, description: data.description, start: data.startDate, end: data.endDate, backgroundColor: "#162466", textColor: "white", id: data.id }); }) } successCallback(events); }, error: function (xhr) { $.notify("Error", "error"); } }); }, eventClick: function (info) { getEventDetailsByEventId(info.event); } }); calendar.render(); } } catch (e) { alert(e); } }
AppointmentService.cs :
public List<AppointmentVM> DoctorsEventsById(string doctorId) { return _db.Appointments.Where(x => x.DoctorId == doctorId).ToList().Select(c => new AppointmentVM() { Id = c.Id, Description = c.Description, StartDate = c.StartDate.ToString("yyyy-MM-dd HH:mm:ss"), EndDate = c.EndDate.ToString("yyyy-MM-dd HH:mm:ss"), Title = c.Title, Duration = c.Duration, IsDoctorApproved = c.IsDoctorApproved }).ToList(); }
IAppointmentService.cs :
public List<AppointmentVM> DoctorsEventsById(string doctorId);
Advertisement
Answer
Unable to cast object of type ‘System.String’ to type ‘System.Boolean.
You need to make sure the type of IsDoctorApproved
in AppointmentVM
is bool:
public class AppointmentVM { public bool IsDoctorApproved {get;set;} }
Also,you need to make sure the type of IsDoctorApproved
in your database is bool.