public AppointmentDto GetById(int appointmentId)
        {
            Appointment appointment = _dbContext.Appointments.SingleOrDefault(a => a.Id == appointmentId);

            if (appointment == null)
            {
                return(null);
            }

            return(AppointmentAdapter.AppointmentToAppointmentDto(appointment));
        }
        //appointment is set to "Done" when it's date expires
        public AppointmentDto SetAppointmentDone(int appointmentId)
        {
            Appointment myAppointment = _dbContext.Appointments.SingleOrDefault(appointment => appointment.Id == appointmentId);

            if (myAppointment == null)
            {
                return(null);
            }

            if (DateTime.Parse(GetAppointmentFullDateString(myAppointment)) < DateTime.Today && myAppointment.Status != AppointmentStatus.Cancelled)
            {
                SetAppointmentStatusDone(myAppointment);
                _dbContext.SaveChanges();
            }

            return(AppointmentAdapter.AppointmentToAppointmentDto(myAppointment));
        }
        public AppointmentDto CancelAppointment(int appointmentId)
        {
            Appointment myAppointment = _dbContext.Appointments.SingleOrDefault(appointment => appointment.Id == appointmentId);

            PatientsCancelledAppointmentsAdded(myAppointment);

            if (myAppointment == null || (GetAppointmentFullDate(myAppointment) - DateTime.Now).TotalDays < 2)
            {
                return(null);
            }

            myAppointment.Status           = AppointmentStatus.Cancelled;
            myAppointment.CancellationDate = DateTime.Today.ToString("yyyy-MM-dd");
            ReturnDoctorsCancelledDate(_dbContext.Doctors.SingleOrDefault(doctor => doctor.Id == myAppointment.DoctorId), myAppointment);

            return(AppointmentAdapter.AppointmentToAppointmentDto(myAppointment));
        }
        //doctor can set appointment to "Done"
        public AppointmentDto FinishAppointment(int appointmentId)
        {
            Appointment myAppointment = _dbContext.Appointments.SingleOrDefault(appointment => appointment.Id == appointmentId);
            Patient     p             = myAppointment.Patient;

            if (myAppointment == null)
            {
                return(null);
            }

            Appointment ap = p.Appointments.Find(a => a.Id == appointmentId);

            ap.Status = AppointmentStatus.Done;

            SetAppointmentStatusDone(myAppointment);
            _dbContext.SaveChanges();

            return(AppointmentAdapter.AppointmentToAppointmentDto(myAppointment));
        }
        public AppointmentDto Add(AppointmentDto appointmentDto)
        {
            if (appointmentDto == null)
            {
                return(null);
            }

            Appointment myAppointment = AppointmentAdapter.AppointmentDtoToAppointment(appointmentDto);

            myAppointment.Status = AppointmentStatus.Active;
            _dbContext.Patients.SingleOrDefault(patient => patient.Id == myAppointment.PatientId).Appointments.Add(myAppointment);
            _dbContext.Doctors.SingleOrDefault(doctor => doctor.Id == myAppointment.DoctorId).Appointments.Add(myAppointment);

            if (PatientAlreadyHasAppointmentWithDoctor(appointmentDto.PatientId, appointmentDto.DoctorId))
            {
                return(null);
            }

            RemoveDoctorsActiveAppointmentDate(_dbContext.Doctors.SingleOrDefault(doctor => doctor.Id == myAppointment.DoctorId), myAppointment);
            _dbContext.Appointments.Add(myAppointment);
            _dbContext.SaveChanges();

            return(appointmentDto);
        }
        public List <AppointmentDto> GetAll()
        {
            List <AppointmentDto> myAppointments = new List <AppointmentDto>();

            _dbContext.Appointments.ToList().ForEach(appointment => myAppointments.Add(AppointmentAdapter.AppointmentToAppointmentDto(appointment)));

            return(myAppointments);
        }
Esempio n. 7
0
        private void DateClick(object sender, List<AppointmentItem> appointments, DayOfWeek newDayOfWeek)
        {
            View clickedView = sender as View;
            if (clickedView != activeView) {
                AppointmentAdapter adapter = new AppointmentAdapter (this, appointments, FindViewById<Button> (Resource.Id.saveButton));
                appointmentsListView.Adapter = adapter;

                SetColor (clickedView, activeView, activeDayOfWeek);

                activeView = clickedView;
                activeDayOfWeek = newDayOfWeek;
            }
        }