// Constructor untuk mengubah jadwal obat di database
        public EditorJadwalObat(Pengguna user, int id) : this(user)
        {
            _jadwalBaru          = false;
            _id                  = id;
            this.Title           = "Ubah Jadwal Obat";
            buttonSimpan.Content = "Simpan";

            using (var db = new HLDatabaseContext())
            {
                JadwalObatModel selection = db.DaftarJadwalObat.Where(o => o.Id == id).First();
                textboxNama.Text      = selection.Nama;
                textboxDeskripsi.Text = selection.Deskripsi;
                if (selection.Hari == "setiapHari")
                {
                    radiobuttonHarian.IsChecked = true;
                }
                else
                {
                    radiobuttonMingguan.IsChecked = true;
                    comboboxHari.SelectedValue    = selection.Hari;
                }
                textboxJam.Text   = selection.Waktu.Split(":")[0];
                textboxMenit.Text = selection.Waktu.Split(":")[1];
            }
        }
 public void Hapus(int id)
 {
     using (var db = new HLDatabaseContext())
     {
         JadwalObatModel removeTarget = db.DaftarJadwalObat.Where(i => i.Id == id).First();
         db.Remove(removeTarget);
         db.SaveChanges();
     }
 }
        private void buttonSimpan_Click(object sender, RoutedEventArgs e)
        {
            if (textboxNama.Text == "")
            {
                MessageBox.Show("Nama obat tidak boleh kosong", "Nama obat tidak valid", MessageBoxButton.OK, MessageBoxImage.Error);
            }

            else if (!int.TryParse(textboxJam.Text, out _) || !int.TryParse(textboxMenit.Text, out _))
            {
                MessageBox.Show("Waktu hanya dapat berupa angka", "Waktu tidak valid", MessageBoxButton.OK, MessageBoxImage.Error);
            }

            else if (int.Parse(textboxJam.Text) > 23 || int.Parse(textboxMenit.Text) > 59 || int.Parse(textboxJam.Text) < 0 || int.Parse(textboxMenit.Text) < 0)
            {
                MessageBox.Show("Jam atau menit tidak valid", "Waktu tidak valid", MessageBoxButton.OK, MessageBoxImage.Error);
            }

            else if ((radiobuttonMingguan.IsChecked ?? false) && comboboxHari.SelectedIndex < 0)
            {
                MessageBox.Show("Anda belum memilih hari", "Tidak ada hari yang terpilih", MessageBoxButton.OK, MessageBoxImage.Error);
            }

            else if (_jadwalBaru)
            {
                _user.JadwalObat.Tambah(
                    textboxNama.Text,
                    textboxDeskripsi.Text,
                    ReformatWaktu(textboxJam.Text, textboxMenit.Text),
                    radiobuttonMingguan.IsChecked ?? false,
                    comboboxHari.SelectedIndex);
                this.Close();
            }

            else
            {
                using (var db = new HLDatabaseContext())
                {
                    JadwalObatModel editTarget = db.DaftarJadwalObat.Where(o => o.Id == _id).First();
                    editTarget.Nama      = textboxNama.Text;
                    editTarget.Deskripsi = textboxDeskripsi.Text;
                    editTarget.Waktu     = ReformatWaktu(textboxJam.Text, textboxMenit.Text);
                    if (radiobuttonHarian.IsChecked ?? false)
                    {
                        editTarget.Hari = "setiapHari";
                    }
                    else
                    {
                        editTarget.Hari = HLBase.GetDaftarHari()[comboboxHari.SelectedIndex];
                    }
                    db.SaveChanges();
                }
                this.Close();
            }
        }
        public void Tambah(string nama, string deskripsi, string waktu, bool isMingguan, int indeksHari)
        {
            JadwalObatModel dataBaru = new JadwalObatModel
            {
                Nama      = nama,
                Deskripsi = deskripsi,
                Waktu     = waktu,
                Hari      = isMingguan ? GetDaftarHari()[indeksHari] : "setiapHari"
            };

            base.Tambah(dataBaru);
        }