public void RasporedLekara_Click(object sender, RoutedEventArgs e) { Panel.Children.Clear(); UserControl usc = new RezervisaniiTermini(); Panel.Children.Add(usc); }
private void Zakazi_click(object sender, RoutedEventArgs e) { String b = bingPathToAppDir(@"JsonFiles\appointments.json"); String c = bingPathToAppDir(@"JsonFiles\refferal.json"); String d = bingPathToAppDir(@"JsonFiles\patients.json"); String m = bingPathToAppDir(@"JsonFiles\doctors.json"); PatientsRepository patientRepo = new PatientsRepository(d); List <PatientUser> patientLista = patientRepo.GetAll(); PatientUser ovajPacijent = new PatientUser(); foreach (PatientUser r1 in patientLista) { if (r1.medicalIdNumber.Equals(KnjizicaBox.Text.ToString())) { ovajPacijent = r1; KnjizicaBox.Text = r1.medicalIdNumber; } } DoctorRepository docRepo = new DoctorRepository(m); List <DoctorUser> doktori = docRepo.GetAll(); DoctorUser drOvaj = new DoctorUser(); foreach (DoctorUser d1 in doktori) { if (d1.email.Equals(emailLekarBox.Text.ToString())) { drOvaj = d1; } } if (!Regex.Match(Time1Box.Text, "^[0-9]{2}:[0-9]{2}$").Success || !Regex.Match(Time2Box.Text, "^[0-9]{2}:[0-9]{2}$").Success) { MessageBox.Show("Vreme mora biti u formatu 00:00", "Error", MessageBoxButton.OK, MessageBoxImage.Error); return; } String[] startParts = Time1Box.Text.Split(':'); String[] endParts = Time2Box.Text.Split(':'); int startIntPart1 = int.Parse(startParts[0]); int startIntPart2 = int.Parse(startParts[1]); int ensIntPart1 = int.Parse(endParts[0]); int endtIntPart2 = int.Parse(endParts[1]); if (startIntPart1 > 23 || startIntPart2 > 60 || ensIntPart1 > 23 || endtIntPart2 > 60 || startIntPart1 > ensIntPart1) { MessageBox.Show("Najveca vrednost za vreme je 23:59", "Error", MessageBoxButton.OK, MessageBoxImage.Error); return; } TimeSpan vremee = new TimeSpan(startIntPart1, startIntPart2, 00); TimeSpan vremee2 = new TimeSpan(ensIntPart1, endtIntPart2, 00); int broj = getNextid(); DoctorAppointment drap = new DoctorAppointment(broj, vremee, DatumBox.Text.ToString(), ovajPacijent, drOvaj, null, ordinacijaBox.Text); AppointmentRepository arepo = new AppointmentRepository(b); List <DoctorAppointment> lista2 = new List <DoctorAppointment>(); PatientController regPat = new PatientController(); List <PatientUser> pac = new List <PatientUser>(); pac = regPat.GetAll(); if (arepo.GetAll() != null) { lista2 = arepo.GetAll(); } String o = bingPathToAppDir(@"JsonFiles\operations.json"); int broj1 = getNextid1(); Operation op = new Operation(broj1, ovajPacijent, DatumBox.Text.ToString(), vremee, vremee2, drOvaj, ordinacijaBox.Text, null); OperationRepository opRep = new OperationRepository(o); List <Operation> lista3 = new List <Operation>(); if (opRep.GetAll() != null) { lista3 = opRep.GetAll(); } if (pregled == true) { String datum = DatumBox.Text; String[] delovi2 = datum.Split('/'); int mesec = int.Parse(delovi2[1]); int dan = int.Parse(delovi2[0]); int godina = int.Parse(delovi2[2]); DateTime dt1 = new DateTime(godina, mesec, dan, 0, 0, 0); DateTime dt2 = DateTime.Now; if (dt1 < dt2) { MessageBox.Show("Molimo vas da unesete datum koji tek predstoji", "Greska", MessageBoxButton.OK, MessageBoxImage.Error); return; } String x = bingPathToAppDir(@"JsonFiles\appointments.json"); AppointmentRepository apc = new AppointmentRepository(x); List <DoctorAppointment> listaPregleda = apc.GetAll(); /* foreach (DoctorAppointment dd in listaPregleda) * { * DoctorUser dr = dd.doctor; * if (dr.id == drOvaj.id) * { * if (dd.Date.Equals(DatumBox.Text)) * { * TimeSpan krajPr = dd.Time + new TimeSpan(0, 15, 0); * int result = TimeSpan.Compare(vremee, dd.Time); * int result1 = TimeSpan.Compare(vremee, krajPr); * if ((result == 1 && result1 == -1) || result == 0) * { * MessageBox.Show("Izvinjavamo se! Trazeni termin je vec zauzet!", "Greska", MessageBoxButton.OK, MessageBoxImage.Error); * return; * } * } * * * * * } * }*/ /* String pre = bingPathToAppDir(@"JsonFiles\operations.json"); * OperationRepository apc1 = new OperationRepository(pre); * List<Operation> listaPregleda1 = apc1.GetAll(); * foreach (Operation dd in listaPregleda1) * { * DoctorUser dr = dd.isResponiable; * if (dr.id == drOvaj.id) * { * if (dd.Date.Equals(DatumBox.Text)) * { * int result = TimeSpan.Compare(vremee, dd.Start); * int result1 = TimeSpan.Compare(vremee, dd.End); * if ((result == 1 && result1 == -1)||result==0 ||result1==0) * { * * MessageBox.Show("Izvinjavamo se! Trazeni termin je vec zauzet!", "Greska", MessageBoxButton.OK, MessageBoxImage.Error); * return; * } * * } * * * * * } * }*/ EmployeesScheduleController schCon = new EmployeesScheduleController(); List <Schedule> listaRasporeda = schCon.GetAll(); Shift smena = schCon.getShiftForDoctorForSpecificDay(DatumBox.Text, drOvaj); if (smena == null || smena.startTime == null || smena.endTime == null) { MessageBox.Show("Trazeni termin nije dostupan.Lekar ne radi tog dana.", "Greska", MessageBoxButton.OK, MessageBoxImage.Error); return; } AppointmentController appointmentController = new AppointmentController(); Boolean notAvaible = appointmentController.isTermNotAvailable(drOvaj, vremee, DatumBox.Text, ovajPacijent); if (notAvaible == true) { MessageBox.Show("Izvinjavamo se! Trazeni termin je vec zauzet!", "Greska", MessageBoxButton.OK, MessageBoxImage.Error); return; } /* foreach (Schedule s in listaRasporeda) * { * * if (s.employeeid.Equals(drOvaj.id.ToString())) * { * if (s.Date.Equals(DatumBox.Text)) * { * smena = s.shift; * } * } * } * if(smena.StartTime==null || smena.EndTime == null) * { * * }*/ bool slobodan = schCon.isDoctorWorkingAtSpecifiedTime(DatumBox.Text, drOvaj, vremee); if (slobodan == false) { MessageBox.Show("Trazeni termin nije dostupan.Lekar ne radi u to vreme.", "Greska", MessageBoxButton.OK, MessageBoxImage.Error); return; } /* String pocetak = smena.StartTime; * String kraj = smena.EndTime; * String[] deloviPocetak = pocetak.Split(':'); * String[] deloviKraj = kraj.Split(':'); * * TimeSpan pocetakTime = new TimeSpan(int.Parse(deloviPocetak[0]), int.Parse(deloviPocetak[1]), 0); * TimeSpan krajTime = new TimeSpan(int.Parse(deloviKraj[0]), int.Parse(deloviKraj[1]), 0); * int result3 = TimeSpan.Compare(vremee, pocetakTime); * int result4 = TimeSpan.Compare(krajTime, vremee); * * if (result3 != 1 || result4 != 1) * { * MessageBox.Show("Trazeni termin nije dostupan.Lekar ne radi u to vreme.", "Greska", MessageBoxButton.OK, MessageBoxImage.Error); * * return; * * }*/ AppointmentController apCon = new AppointmentController(); apCon.New(drap, null); int id1 = 0; String ime = ""; String prezime = ""; String jmbg = ""; String datumRodj = ""; String brojTel = ""; String brKnj = ""; List <Question> pitanja = new List <Question>(); String alergije = ""; String grad = ""; Boolean guest = false; String email = ""; String password = ""; Boolean sekr = false; // foreach (PatientUser pat in lista) // { // if (pat.id.Equals(d.patient.id)) // { id1 = drap.patient.id; ime = drap.patient.firstName; prezime = drap.patient.secondName; jmbg = drap.patient.uniqueCitizensidentityNumber; datumRodj = drap.patient.dateOfBirth; brKnj = drap.patient.medicalIdNumber; brojTel = drap.patient.phoneNumber; alergije = drap.patient.allergie; grad = drap.patient.city; email = drap.patient.email; guest = drap.patient.guest; password = drap.patient.password; sekr = drap.patient.isRegisteredBySecretary; if (drap.patient.notifications == null) { drap.patient.notifications = new List <ModelNotification>(); } List <ModelNotification> notifications = drap.patient.notifications; // } notifications.Add(new ModelNotification("Postovani, zakazana vam je novi pregled datuma : " + drap.date + " u " + drap.time + " h kod lekara " + drap.doctor.firstName + " " + drap.doctor.secondName + ". Ordinacija: " + drap.roomid)); drap.patient.notifications = notifications; // PatientUser rp = new PatientUser(id1, ime, prezime, jmbg, datumRodj, brojTel, brKnj, pitanja, alergije, grad, guest, email, password, sekr, notifications); PatientController pCon = new PatientController(); pCon.Update(drap.patient); Panel.Children.Clear(); UserControl usc = new RezervisaniiTermini(); Panel.Children.Add(usc); } else if (operacija == true) { String datum = DatumBox.Text; String[] delovi2 = datum.Split('/'); int mesec = int.Parse(delovi2[1]); int dan = int.Parse(delovi2[0]); int godina = int.Parse(delovi2[2]); DateTime dt1 = new DateTime(godina, mesec, dan, 0, 0, 0); DateTime dt2 = DateTime.Now; if (dt2 > dt1) { MessageBox.Show("Molimo vas da unesete termin koji tek predstoji", "Greska", MessageBoxButton.OK, MessageBoxImage.Error); return; } String x = bingPathToAppDir(@"JsonFiles\appointments.json"); AppointmentRepository apc = new AppointmentRepository(x); /* List<DoctorAppointment> listaPregleda = apc.GetAll(); * foreach (DoctorAppointment dd in listaPregleda) * { * DoctorUser dr = dd.doctor; * if (dr.id == drOvaj.id) * { * if (dd.Date.Equals(DatumBox.Text)) * { * TimeSpan krajPr = dd.Time + new TimeSpan(0, 15, 0); * int result = TimeSpan.Compare(vremee, dd.Time); * int result1 = TimeSpan.Compare(vremee, krajPr); * if ((result == 1 && result1 == -1) || result == 0) * { * MessageBox.Show("Izvinjavamo se! Trazeni termin je vec zauzet!", "Greska", MessageBoxButton.OK, MessageBoxImage.Error); * return; * } * int rezultat = TimeSpan.Compare(vremee2, dd.Time); * int rezultat1 = TimeSpan.Compare(vremee2, krajPr); * if ((rezultat == 1 && rezultat1 == -1) || rezultat == 0) * { * * MessageBox.Show("Izvinjavamo se! Trazeni termin je vec zauzet!", "Greska", MessageBoxButton.OK, MessageBoxImage.Error); * return; * } * } * * * * * } * }*/ /*String pre = bingPathToAppDir(@"JsonFiles\operations.json"); * OperationRepository apc1 = new OperationRepository(pre); * List<Operation> listaPregleda1 = apc1.GetAll(); * foreach (Operation dd in listaPregleda1) * { * DoctorUser dr = dd.isResponiable; * if (dr.id == drOvaj.id) * { * if (dd.Date.Equals(DatumBox.Text)) * { * int result = TimeSpan.Compare(vremee, dd.Start); * int result1 = TimeSpan.Compare(vremee, dd.End); * if ((result == 1 && result1 == -1) || result == 0) * { * * MessageBox.Show("Izvinjavamo se! Trazeni termin je vec zauzet!", "Greska", MessageBoxButton.OK, MessageBoxImage.Error); * return; * } * int rezultat = TimeSpan.Compare(vremee2, dd.Start); * int rezultat1 = TimeSpan.Compare(vremee2, dd.End); * if ((rezultat == 1 && rezultat1 == -1) || rezultat == 0) * { * * MessageBox.Show("Izvinjavamo se! Trazeni termin je vec zauzet!", "Greska", MessageBoxButton.OK, MessageBoxImage.Error); * return; * } * } * * * * * } * }*/ OperationController opCon = new OperationController(); bool zauzetTermin = opCon.isTermNotAvailable(drOvaj, vremee, vremee2, DatumBox.Text, ovajPacijent); if (zauzetTermin == true) { MessageBox.Show("Trazeni termin nije dostupan.", "Greska", MessageBoxButton.OK, MessageBoxImage.Error); return; } EmployeesScheduleController schCon = new EmployeesScheduleController(); List <Schedule> listaRasporeda = schCon.GetAll(); Shift smena = schCon.getShiftForDoctorForSpecificDay(DatumBox.Text, drOvaj); if (smena == null || smena.startTime == null || smena.endTime == null) { MessageBox.Show("Trazeni termin nije dostupan.Lekar ne radi tog dana.", "Greska", MessageBoxButton.OK, MessageBoxImage.Error); return; } bool slobodan = schCon.isDoctorWorkingAtSpecifiedTime(DatumBox.Text, drOvaj, vremee); if (slobodan == false) { MessageBox.Show("Trazeni termin nije dostupan.Lekar ne radi u to vreme.", "Greska", MessageBoxButton.OK, MessageBoxImage.Error); return; } String pocetak = smena.startTime; String kraj = smena.endTime; String[] deloviPocetak = pocetak.Split(':'); String[] deloviKraj = kraj.Split(':'); TimeSpan pocetakTime = new TimeSpan(int.Parse(deloviPocetak[0]), int.Parse(deloviPocetak[1]), int.Parse("00")); TimeSpan krajTime = new TimeSpan(int.Parse(deloviKraj[0]), int.Parse(deloviKraj[1]), int.Parse("00")); int result3 = TimeSpan.Compare(vremee2, pocetakTime); int result4 = TimeSpan.Compare(krajTime, vremee2); if (result3 != 1 || result4 != 1) { MessageBox.Show("Trazeni termin nije dostupan.Lekar ne radi u to vreme.", "Greska", MessageBoxButton.OK, MessageBoxImage.Error); return; } /* EmployeesScheduleController schCon = new EmployeesScheduleController(); * List<Schedule> listaRasporeda = schCon.GetAll(); * Shift smena = new Shift(); * foreach (Schedule s in listaRasporeda) * { * * if (s.employeeid.Equals(drOvaj.id.ToString())) * { * if (s.Date.Equals(DatumBox.Text)) * { * smena = s.shift; * } * } * } * if (smena.StartTime == null || smena.EndTime == null) * { * MessageBox.Show("Trazeni termin nije dostupan.Lekar ne radi tog dana.", "Greska", MessageBoxButton.OK, MessageBoxImage.Error); * * return; * }*/ /* String pocetak = smena.StartTime; * String kraj = smena.EndTime; * String[] deloviPocetak = pocetak.Split(':'); * String[] deloviKraj = kraj.Split(':'); * * TimeSpan pocetakTime = new TimeSpan(int.Parse(deloviPocetak[0]), int.Parse(deloviPocetak[1]), int.Parse("00")); * TimeSpan krajTime = new TimeSpan(int.Parse(deloviKraj[0]), int.Parse(deloviKraj[1]), int.Parse("00")); * int result3 = TimeSpan.Compare(vremee, pocetakTime); * int result4 = TimeSpan.Compare(krajTime, vremee); * * if (result3 != 1 || result4 != 1) * { * MessageBox.Show("Trazeni termin nije dostupan.Lekar ne radi u to vreme.", "Greska", MessageBoxButton.OK, MessageBoxImage.Error); * * return; * * }*/ opCon.New(null, op); PatientController pCon = new PatientController(); List <PatientUser> pacijenti = pCon.GetAll(); int id1 = 0; String ime = ""; String prezime = ""; String jmbg = ""; String datumRodj = ""; String brojTel = ""; String brKnj = ""; List <Question> pitanja = new List <Question>(); String alergije = ""; String grad = ""; Boolean guest = false; String email = ""; String password = ""; Boolean sekr = false; List <ModelNotification> notifications = new List <ModelNotification>(); // foreach (PatientUser pat in lista) // { // if (pat.id.Equals(d.patient.id)) // { id1 = op.patient.id; ime = op.patient.firstName; prezime = op.patient.secondName; jmbg = op.patient.uniqueCitizensidentityNumber; datumRodj = op.patient.dateOfBirth; brojTel = op.patient.phoneNumber; alergije = op.patient.allergie; grad = op.patient.city; email = op.patient.email; guest = op.patient.guest; password = op.patient.password; sekr = op.patient.isRegisteredBySecretary; notifications = op.patient.notifications; // } if (notifications == null) { notifications = new List <ModelNotification>(); } notifications.Add(new ModelNotification("Postovani, zakazana Vam je nova operacija datuma : " + op.date + " u " + op.start + " h, kod lekara " + op.isResponiable.firstName + " " + op.isResponiable.secondName + " Sala " + op.idRoom)); PatientUser rp = new PatientUser(id1, ime, prezime, jmbg, datumRodj, brojTel, brKnj, alergije, grad, guest, email, password, sekr, notifications); pCon.Update(rp); Panel.Children.Clear(); UserControl usc = new RezervisaniiTermini(); Panel.Children.Add(usc); } }