public void JadwalHariDal_ListData_Test() { // arrange JadwalHariModel jadwal = new JadwalHariModel { Kode = "A", KodeDokter = "A1", KodeLayanan = "B1", Hari = 1, JamMulai = "10:00", JamSelesai = "12:00", JadwalPerJams = new List <JadwalHariPerJamModel> { new JadwalHariPerJamModel { Jam = "10:00", Max = 4, Booked = 1 }, new JadwalHariPerJamModel { Jam = "11:00", Max = 4, Booked = 0 } } }; _jadwalHariDal.Insert(jadwal); // act var dummy = _jadwalHariDal.ListData(new LayananModel { Kode = "A1" }); }
public void JadwalHariDal_Update_Test() { // arrange JadwalHariModel jadwal = new JadwalHariModel { Kode = "A", KodeDokter = "A1", KodeLayanan = "B1", Hari = 1, JamMulai = "10:00", JamSelesai = "12:00", JadwalPerJams = new List <JadwalHariPerJamModel> { new JadwalHariPerJamModel { Jam = "10:00", Max = 4, Booked = 1 }, new JadwalHariPerJamModel { Jam = "11:00", Max = 4, Booked = 0 } } }; // act _jadwalHariDal.Update(jadwal); }
public void JadwalHariDal_GetId_Test() { // arrange JadwalHariModel jadwal = new JadwalHariModel { Kode = "A", KodeDokter = "A1", KodeLayanan = "B1", Hari = 1, JamMulai = "10:00", JamSelesai = "12:00", JadwalPerJams = new List <JadwalHariPerJamModel> { new JadwalHariPerJamModel { Jam = "10:00", Max = 4, Booked = 1 }, new JadwalHariPerJamModel { Jam = "11:00", Max = 4, Booked = 0 } } }; _jadwalHariDal.Insert(jadwal); // act string id = _jadwalHariDal.GetId("A1", 1, "10:00"); }
public void JadwalHariBL_IsExist2_Succeed() { // arrange var jadwal = new JadwalHariModel { Kode = "A", KodeDokter = "B", KodeLayanan = "C", Hari = 1, JadwalPerJams = new List <JadwalHariPerJamModel> { new JadwalHariPerJamModel { Jam = "08:00", Max = 4, Booked = 1 }, new JadwalHariPerJamModel { Jam = "09:00", Max = 4, Booked = 0 } } }; var jadwals = new List <JadwalHariModel>(); jadwals.Add(jadwal); _jadwalHariDal.Stub(x => x.ListData( Arg <DokterModel> .Matches(y => y.Kode == "B"))) .Return(jadwals); // act var actual = _jadwalHariBL.IsExist("B", 1, "09:00"); // assert Assert.IsTrue(actual); }
public void JadwalHariBL_Save_Edit_Succeed_Test() { // arrange var jadwal = new JadwalHariModel { Kode = "A", KodeDokter = "A", KodeLayanan = "A", Hari = 2, JamMulai = "08:00", JamSelesai = "10:00", JadwalPerJams = new List <JadwalHariPerJamModel> { new JadwalHariPerJamModel { Jam = "08:00", Max = 4, Booked = 1 }, new JadwalHariPerJamModel { Jam = "09:00", Max = 4, Booked = 0 } } }; _layananBL.Stub(x => x.GetById("A")).Return(new LayananModel { Kode = "A", Nama = "Data2" }); _dokterBL.Stub(x => x.GetById("A")).Return(new DokterModel { Kode = "A", Nama = "Data2" }); // act _jadwalHariBL.Save(jadwal); // assert _jadwalHariDal.AssertWasCalled(x => x.Update(Arg <JadwalHariModel> .Is.Anything)); }
public void JadwalHariBL_IsExist2_Failed_Test() { // arrange var jadwal = new JadwalHariModel { Kode = "A", KodeDokter = "B", KodeLayanan = "C", Hari = 1, JadwalPerJams = new List <JadwalHariPerJamModel> { new JadwalHariPerJamModel { Jam = "08:00", Max = 4, Booked = 1 }, new JadwalHariPerJamModel { Jam = "10:00", Max = 4, Booked = 0 } } }; var jadwals = new List <JadwalHariModel>(); jadwals.Add(jadwal); _jadwalHariDal.Stub(x => x.ListData( new DokterModel { Kode = "A" })) .Return(jadwals); // act var actual = _jadwalHariBL.IsExist("A", 1, "09:00"); // assert Assert.IsFalse(actual); }
public void Insert(JadwalHariModel jadwal) { string sSql = @" INSERT INTO ta_jadwal_hari ( fs_kd_jadwal, fs_kd_dokter, fs_kd_layanan, fn_hari, fs_jam_mulai, fs_jam_selesai ) VALUES ( @KodeJadwal, @KodeDokter, @KodeLayanan, @Hari, @JamMulai, @JamSelesai ) "; TransactionOptions tranOpt = new TransactionOptions { IsolationLevel = IsolationLevel.ReadCommitted }; using (TransactionScope tran = new TransactionScope(TransactionScopeOption.Required, tranOpt)) using (SqlConnection conn = new SqlConnection(_connString)) using (SqlCommand cmd = new SqlCommand(sSql, conn)) { cmd.Parameters.AddWithValue("@KodeJadwal", jadwal.Kode); cmd.Parameters.AddWithValue("@KodeDokter", jadwal.KodeDokter); cmd.Parameters.AddWithValue("@KodeLayanan", jadwal.KodeLayanan); cmd.Parameters.AddWithValue("@Hari", jadwal.Hari); cmd.Parameters.AddWithValue("@JamMulai", jadwal.JamMulai); cmd.Parameters.AddWithValue("@JamSelesai", jadwal.JamSelesai); conn.Open(); cmd.ExecuteNonQuery(); // hapus detil-nya sSql = @" DELETE ta_jadwal_hari_jam WHERE fs_kd_jadwal = @Kode"; cmd.CommandText = sSql; cmd.Parameters.Clear(); cmd.Parameters.AddWithValue("@Kode", jadwal.Kode); cmd.ExecuteNonQuery(); // insert detil foreach (JadwalHariPerJamModel item in jadwal.JadwalPerJams) { sSql = @" INSERT INTO ta_jadwal_hari_jam (fs_kd_jadwal, fs_jam, fn_durasi, fn_max, fn_booked) VALUES (@Kode, @Jam, @Durasi, @Max, @Booked) "; cmd.CommandText = sSql; cmd.Parameters.Clear(); cmd.Parameters.AddWithValue("@Kode", jadwal.Kode); cmd.Parameters.AddWithValue("@Jam", item.Jam); cmd.Parameters.AddWithValue("@Durasi", item.Durasi); cmd.Parameters.AddWithValue("@Max", item.Max); cmd.Parameters.AddWithValue("@Booked", item.Booked); cmd.ExecuteNonQuery(); } tran.Complete(); } }
public void JadwalHariBL_Save_DuplicatedJamPraktek_Test() { // arrange var jadwal = new JadwalHariModel { Kode = "A", KodeDokter = "A", KodeLayanan = "A", Hari = 2, JamMulai = "09:00", JamSelesai = "11:00", JadwalPerJams = new List <JadwalHariPerJamModel> { new JadwalHariPerJamModel { Jam = "09:00", Max = 4, Booked = 1 }, new JadwalHariPerJamModel { Jam = "10:00", Max = 4, Booked = 0 }, new JadwalHariPerJamModel { Jam = "11:00", Max = 4, Booked = 0 }, new JadwalHariPerJamModel { Jam = "09:00", Max = 4, Booked = 0 } } }; var jadwals = new List <JadwalHariModel>(); jadwals.Add(jadwal); _layananBL.Stub(x => x.GetById("A")).Return(new LayananModel { Kode = "A", Nama = "Data1" }); _dokterBL.Stub(x => x.GetById("A")).Return(new DokterModel { Kode = "A", Nama = "Data1" }); // act var errMsg = ""; try { _jadwalHariBL.Save(jadwal); errMsg = ""; } catch (ArgumentException ex) { errMsg = ex.Message; } // assert Assert.IsTrue(errMsg == "Duplicated JAM PRAKTEK"); }
public List <JadwalHariModel> ListData(int hari) { List <JadwalHariModel> retVal = null; string sSql = @" SELECT aa.fs_kd_dokter, aa.fs_kd_layanan, aa.fn_hari, aa.fs_jam_mulai, aa.fs_jam_selesai, ISNULL(bb.fs_nm_dokter, ' ') fs_nm_dokter, ISNULL(cc.fs_nm_layanan, ' ') fs_nm_layanan FROM ta_jadwal_hari aa LEFT JOIN ta_dokter bb ON aa.fs_kd_dokter = bb.fs_kd_dokter LEFT JOIN ta_layanan cc ON aa.fs_kd_layanan = cc.fs_kd_layanan WHERE aa.fn_hari = @Hari ORDER BY cc.fs_nm_layanan, bb.fs_nm_dokter "; using (SqlConnection conn = new SqlConnection(_connString)) using (SqlCommand cmd = new SqlCommand(sSql, conn)) { cmd.Parameters.AddWithValue("@KodeDokter", hari); conn.Open(); SqlDataReader dr = cmd.ExecuteReader(); if (dr.HasRows) { retVal = new List <JadwalHariModel>(); while (dr.Read()) { JadwalHariModel item = new JadwalHariModel(); item.KodeDokter = dr["fs_kd_dokter"].ToString(); item.NamaDokter = dr["fs_nm_dokter"].ToString(); item.KodeLayanan = dr["fs_kd_layanan"].ToString(); item.NamaLayanan = dr["fs_nm_layanan"].ToString(); item.Hari = Convert.ToInt16(dr["fn_hari"].ToString()); item.JamMulai = dr["fs_jam_mulai"].ToString(); item.JamSelesai = dr["fs_jam_selesai"].ToString(); retVal.Add(item); } } } return(retVal); }
public void Seed() { var jadwalHariBL = new JadwalHariBL(); jadwalHariBL.Clear(); var sesion0800_1100 = new List <JadwalHariPerJamModel> { new JadwalHariPerJamModel { Jam = "08:00", Durasi = 60, Max = 4, Booked = 0 }, new JadwalHariPerJamModel { Jam = "09:00", Durasi = 60, Max = 4, Booked = 0 }, new JadwalHariPerJamModel { Jam = "10:00", Durasi = 60, Max = 4, Booked = 0 }, }; var sesion1200_1430 = new List <JadwalHariPerJamModel> { new JadwalHariPerJamModel { Jam = "12:00", Durasi = 60, Max = 4, Booked = 0 }, new JadwalHariPerJamModel { Jam = "13:00", Durasi = 60, Max = 4, Booked = 0 }, new JadwalHariPerJamModel { Jam = "14:00", Durasi = 30, Max = 2, Booked = 0 }, }; var sesion1600_1800 = new List <JadwalHariPerJamModel> { new JadwalHariPerJamModel { Jam = "16:00", Durasi = 60, Max = 4, Booked = 0 }, new JadwalHariPerJamModel { Jam = "17:00", Durasi = 60, Max = 4, Booked = 0 } }; var sesion1900_2130 = new List <JadwalHariPerJamModel> { new JadwalHariPerJamModel { Jam = "19:00", Durasi = 60, Max = 4, Booked = 0 }, new JadwalHariPerJamModel { Jam = "20:00", Durasi = 60, Max = 4, Booked = 0 }, new JadwalHariPerJamModel { Jam = "21:00", Durasi = 30, Max = 2, Booked = 0 } }; // AgusSumadi var jadwalHari = new JadwalHariModel { Kode = "", KodeDokter = "DK001", KodeLayanan = "RJ001", Hari = 1, JamMulai = "08:00", JamSelesai = "11:00", JadwalPerJams = sesion0800_1100 }; jadwalHariBL.Save(jadwalHari); jadwalHari.Kode = ""; jadwalHari.Hari = 2; jadwalHariBL.Save(jadwalHari); jadwalHari.Kode = ""; jadwalHari.Hari = 3; jadwalHari.JamMulai = "16:00"; jadwalHari.JamSelesai = "18:00"; jadwalHari.JadwalPerJams = sesion1600_1800; jadwalHariBL.Save(jadwalHari); // Budi SUkartono jadwalHari = new JadwalHariModel { Kode = "", KodeDokter = "DK002", KodeLayanan = "RJ001", Hari = 2, JamMulai = "06:00", JamSelesai = "18:00", JadwalPerJams = sesion1600_1800 }; jadwalHariBL.Save(jadwalHari); jadwalHari.Kode = ""; jadwalHari.Hari = 3; jadwalHariBL.Save(jadwalHari); jadwalHari.Kode = ""; jadwalHari.Hari = 6; jadwalHariBL.Save(jadwalHari); // Citra Rini Ghazali jadwalHari = new JadwalHariModel { Kode = "", KodeDokter = "DK003", KodeLayanan = "RJ001", Hari = 1, JamMulai = "12:00", JamSelesai = "14:30", JadwalPerJams = sesion1200_1430 }; jadwalHariBL.Save(jadwalHari); jadwalHari.Kode = ""; jadwalHari.Hari = 2; jadwalHariBL.Save(jadwalHari); jadwalHari.Kode = ""; jadwalHari.Hari = 5; jadwalHariBL.Save(jadwalHari); // Darwin Saswono jadwalHari = new JadwalHariModel { Kode = "", KodeDokter = "DK004", KodeLayanan = "RJ002", Hari = 3, JamMulai = "08:00", JamSelesai = "11:00", JadwalPerJams = sesion0800_1100 }; jadwalHariBL.Save(jadwalHari); jadwalHari.Kode = ""; jadwalHari.Hari = 4; jadwalHariBL.Save(jadwalHari); jadwalHari.Kode = ""; jadwalHari.Hari = 5; jadwalHariBL.Save(jadwalHari); jadwalHari.Kode = ""; jadwalHari.Hari = 6; jadwalHariBL.Save(jadwalHari); // Etik Jazuli jadwalHari = new JadwalHariModel { Kode = "", KodeDokter = "DK005", KodeLayanan = "RJ002", Hari = 1, JamMulai = "19:00", JamSelesai = "21:30", JadwalPerJams = sesion1900_2130 }; jadwalHariBL.Save(jadwalHari); jadwalHari.Kode = ""; jadwalHari.Hari = 2; jadwalHariBL.Save(jadwalHari); jadwalHari.Kode = ""; jadwalHari.Hari = 4; jadwalHariBL.Save(jadwalHari); // Firdaus Allahudin jadwalHari = new JadwalHariModel { Kode = "", KodeDokter = "DK006", KodeLayanan = "RJ002", Hari = 2, JamMulai = "08:00", JamSelesai = "11:00", JadwalPerJams = sesion0800_1100 }; jadwalHariBL.Save(jadwalHari); jadwalHari.Kode = ""; jadwalHari.Hari = 4; jadwalHariBL.Save(jadwalHari); jadwalHari.Kode = ""; jadwalHari.Hari = 6; jadwalHari.JamMulai = "19:00"; jadwalHari.JamSelesai = "21:30"; jadwalHari.JadwalPerJams = sesion1900_2130; jadwalHariBL.Save(jadwalHari); // Gerick Schuldze jadwalHari = new JadwalHariModel { Kode = "", KodeDokter = "DK007", KodeLayanan = "RJ002", Hari = 1, JamMulai = "08:00", JamSelesai = "11:00", JadwalPerJams = sesion0800_1100 }; jadwalHariBL.Save(jadwalHari); jadwalHari.Kode = ""; jadwalHari.Hari = 3; jadwalHari.JamMulai = "12:00"; jadwalHari.JamSelesai = "14:30"; jadwalHari.JadwalPerJams = sesion1200_1430; jadwalHariBL.Save(jadwalHari); jadwalHari.Kode = ""; jadwalHari.Hari = 5; jadwalHari.JamMulai = "19:00"; jadwalHari.JamSelesai = "21:30"; jadwalHari.JadwalPerJams = sesion1900_2130; jadwalHariBL.Save(jadwalHari); // Husoro Getadiono jadwalHari = new JadwalHariModel { Kode = "", KodeDokter = "DK008", KodeLayanan = "RJ003", Hari = 1, JamMulai = "08:00", JamSelesai = "11:00", JadwalPerJams = sesion0800_1100 }; jadwalHariBL.Save(jadwalHari); // Indah Prisesa jadwalHari = new JadwalHariModel { Kode = "", KodeDokter = "DK009", KodeLayanan = "RJ003", Hari = 1, JamMulai = "08:00", JamSelesai = "11:00", JadwalPerJams = sesion0800_1100 }; jadwalHariBL.Save(jadwalHari); jadwalHari.Kode = ""; jadwalHari.Hari = 2; jadwalHariBL.Save(jadwalHari); jadwalHari.Kode = ""; jadwalHari.Hari = 3; jadwalHariBL.Save(jadwalHari); jadwalHari.Kode = ""; jadwalHari.Hari = 4; jadwalHari.JamMulai = "19:00"; jadwalHari.JamSelesai = "21:30"; jadwalHari.JadwalPerJams = sesion1900_2130; jadwalHariBL.Save(jadwalHari); jadwalHari.Kode = ""; jadwalHari.Hari = 5; jadwalHari.JamMulai = "19:00"; jadwalHari.JamSelesai = "21:30"; jadwalHari.JadwalPerJams = sesion1900_2130; jadwalHariBL.Save(jadwalHari); jadwalHari.Kode = ""; jadwalHari.Hari = 6; jadwalHari.JamMulai = "19:00"; jadwalHari.JamSelesai = "21:30"; jadwalHari.JadwalPerJams = sesion1900_2130; jadwalHariBL.Save(jadwalHari); // Joko Putranto jadwalHari = new JadwalHariModel { Kode = "", KodeDokter = "DK010", KodeLayanan = "RJ004", Hari = 4, JamMulai = "08:00", JamSelesai = "11:00", JadwalPerJams = sesion0800_1100 }; jadwalHariBL.Save(jadwalHari); jadwalHari.Kode = ""; jadwalHari.Hari = 6; jadwalHari.JamMulai = "19:00"; jadwalHari.JamSelesai = "21:30"; jadwalHari.JadwalPerJams = sesion1900_2130; jadwalHariBL.Save(jadwalHari); // Kumala Andriningsih jadwalHari = new JadwalHariModel { Kode = "", KodeDokter = "DK011", KodeLayanan = "RJ004", Hari = 1, JamMulai = "08:00", JamSelesai = "11:00", JadwalPerJams = sesion0800_1100 }; jadwalHariBL.Save(jadwalHari); jadwalHari.Kode = ""; jadwalHari.Hari = 2; jadwalHari.JamMulai = "12:00"; jadwalHari.JamSelesai = "14:30"; jadwalHari.JadwalPerJams = sesion1200_1430; jadwalHariBL.Save(jadwalHari); jadwalHari.Kode = ""; jadwalHari.Hari = 3; jadwalHari.JamMulai = "16:00"; jadwalHari.JamSelesai = "18:00"; jadwalHari.JadwalPerJams = sesion1600_1800; jadwalHariBL.Save(jadwalHari); jadwalHari.Kode = ""; jadwalHari.Hari = 4; jadwalHari.JamMulai = "19:00"; jadwalHari.JamSelesai = "21:30"; jadwalHari.JadwalPerJams = sesion1900_2130; jadwalHariBL.Save(jadwalHari); // Lalu Kirmanto jadwalHari = new JadwalHariModel { Kode = "", KodeDokter = "DK012", KodeLayanan = "RJ005", Hari = 1, JamMulai = "08:00", JamSelesai = "11:00", JadwalPerJams = sesion0800_1100 }; jadwalHariBL.Save(jadwalHari); jadwalHari.Kode = ""; jadwalHari.Hari = 4; jadwalHari.JamMulai = "12:00"; jadwalHari.JamSelesai = "14:30"; jadwalHari.JadwalPerJams = sesion1200_1430; jadwalHariBL.Save(jadwalHari); // Mima Florence jadwalHari = new JadwalHariModel { Kode = "", KodeDokter = "DK013", KodeLayanan = "RJ005", Hari = 3, JamMulai = "08:00", JamSelesai = "11:00", JadwalPerJams = sesion0800_1100 }; jadwalHariBL.Save(jadwalHari); jadwalHari.Kode = ""; jadwalHari.Hari = 4; jadwalHari.JamMulai = "08:00"; jadwalHari.JamSelesai = "11:00"; jadwalHari.JadwalPerJams = sesion0800_1100; jadwalHariBL.Save(jadwalHari); jadwalHari.Kode = ""; jadwalHari.Hari = 5; jadwalHari.JamMulai = "12:00"; jadwalHari.JamSelesai = "14:30"; jadwalHari.JadwalPerJams = sesion1200_1430; jadwalHariBL.Save(jadwalHari); // Nihaya Simanjuntak jadwalHari = new JadwalHariModel { Kode = "", KodeDokter = "DK014", KodeLayanan = "RJ006", Hari = 1, JamMulai = "16:00", JamSelesai = "18:00", JadwalPerJams = sesion1600_1800 }; jadwalHariBL.Save(jadwalHari); jadwalHari.Kode = ""; jadwalHari.Hari = 6; jadwalHari.JamMulai = "12:00"; jadwalHari.JamSelesai = "14:30"; jadwalHari.JadwalPerJams = sesion1200_1430; jadwalHariBL.Save(jadwalHari); // Ogura Kagawa jadwalHari = new JadwalHariModel { Kode = "", KodeDokter = "DK015", KodeLayanan = "RJ007", Hari = 1, JamMulai = "16:00", JamSelesai = "18:00", JadwalPerJams = sesion1600_1800 }; jadwalHariBL.Save(jadwalHari); jadwalHari.Kode = ""; jadwalHari.Hari = 2; jadwalHariBL.Save(jadwalHari); jadwalHari.Kode = ""; jadwalHari.Hari = 3; jadwalHari.JamMulai = "19:00"; jadwalHari.JamSelesai = "21:30"; jadwalHari.JadwalPerJams = sesion1900_2130; jadwalHariBL.Save(jadwalHari); jadwalHari.Kode = ""; jadwalHari.Hari = 4; jadwalHari.JamMulai = "12:00"; jadwalHari.JamSelesai = "14:30"; jadwalHari.JadwalPerJams = sesion1200_1430; jadwalHariBL.Save(jadwalHari); jadwalHari.Kode = ""; jadwalHari.Hari = 5; jadwalHari.JamMulai = "19:00"; jadwalHari.JamSelesai = "21:30"; jadwalHari.JadwalPerJams = sesion1900_2130; jadwalHariBL.Save(jadwalHari); // Pangeran A. Peluu jadwalHari = new JadwalHariModel { Kode = "", KodeDokter = "DK016", KodeLayanan = "RJ008", Hari = 1, JamMulai = "12:00", JamSelesai = "14:30", JadwalPerJams = sesion1200_1430 }; jadwalHariBL.Save(jadwalHari); jadwalHari.Kode = ""; jadwalHari.Hari = 2; jadwalHari.JamMulai = "19:00"; jadwalHari.JamSelesai = "21:30"; jadwalHari.JadwalPerJams = sesion1900_2130; jadwalHariBL.Save(jadwalHari); jadwalHari.Kode = ""; jadwalHari.Hari = 3; jadwalHariBL.Save(jadwalHari); // Quraish Muchlis jadwalHari = new JadwalHariModel { Kode = "", KodeDokter = "DK017", KodeLayanan = "RJ009", Hari = 4, JamMulai = "16:00", JamSelesai = "18:00", JadwalPerJams = sesion1600_1800 }; jadwalHariBL.Save(jadwalHari); jadwalHari.Kode = ""; jadwalHari.Hari = 6; jadwalHari.JamMulai = "12:00"; jadwalHari.JamSelesai = "14:30"; jadwalHari.JadwalPerJams = sesion1200_1430; jadwalHariBL.Save(jadwalHari); // Rahmat Bajang jadwalHari = new JadwalHariModel { Kode = "", KodeDokter = "DK018", KodeLayanan = "RJ010", Hari = 1, JamMulai = "16:00", JamSelesai = "18:00", JadwalPerJams = sesion1600_1800 }; jadwalHariBL.Save(jadwalHari); jadwalHari.Kode = ""; jadwalHari.Hari = 2; jadwalHariBL.Save(jadwalHari); jadwalHari.Kode = ""; jadwalHari.Hari = 3; jadwalHari.JamMulai = "12:00"; jadwalHari.JamSelesai = "14:30"; jadwalHari.JadwalPerJams = sesion1200_1430; jadwalHariBL.Save(jadwalHari); jadwalHari.Kode = ""; jadwalHari.Hari = 4; jadwalHariBL.Save(jadwalHari); }
public JadwalHariModel GetById(string id) { JadwalHariModel retVal = null; string sSql = @" SELECT aa.fs_kd_dokter, aa.fs_kd_layanan, aa.fn_hari, aa.fs_jam_mulai, aa.fs_jam_selesai, ISNULL(bb.fs_nm_dokter, ' ') fs_nm_dokter, ISNULL(cc.fs_nm_layanan, ' ') fs_nm_layanan FROM ta_jadwal_hari aa LEFT JOIN ta_dokter bb ON aa.fs_kd_dokter = bb.fs_kd_dokter LEFT JOIN ta_layanan cc ON aa.fs_kd_layanan = cc.fs_kd_layanan WHERE fs_kd_jadwal = @Kode "; using (SqlConnection conn = new SqlConnection(_connString)) using (SqlCommand cmd = new SqlCommand(sSql, conn)) { conn.Open(); cmd.Parameters.AddWithValue("@Kode", id); SqlDataReader dr = cmd.ExecuteReader(); if (dr.HasRows) { dr.Read(); retVal = new JadwalHariModel(); retVal.Kode = id; retVal.KodeDokter = dr["fs_kd_dokter"].ToString(); retVal.NamaDokter = dr["fs_nm_dokter"].ToString(); retVal.KodeLayanan = dr["fs_kd_layanan"].ToString(); retVal.NamaLayanan = dr["fs_nm_layanan"].ToString(); retVal.Hari = Convert.ToInt16(dr["fn_hari"].ToString()); retVal.JamMulai = dr["fs_jam_mulai"].ToString(); retVal.JamSelesai = dr["fs_jam_selesai"].ToString(); } dr.Close(); // query detil sSql = @" SELECT fs_jam, fn_durasi, fn_max, fn_booked FROM ta_jadwal_hari_jam WHERE fs_kd_jadwal = @Kode "; cmd.CommandText = sSql; cmd.Parameters.Clear(); cmd.Parameters.AddWithValue("@Kode", id); SqlDataReader dr2 = cmd.ExecuteReader(); if (dr2.HasRows) { retVal.JadwalPerJams = new List <JadwalHariPerJamModel>(); while (dr2.Read()) { JadwalHariPerJamModel item = new JadwalHariPerJamModel(); item.Jam = dr2["fs_jam"].ToString(); item.Durasi = Convert.ToInt16(dr2["fn_durasi"].ToString()); item.Max = Convert.ToInt16(dr2["fn_max"].ToString()); item.Booked = Convert.ToInt16(dr2["fn_booked"].ToString()); retVal.JadwalPerJams.Add(item); } } } return(retVal); }
public void Save(JadwalHariModel jadwal) { //--validasi // dokter if (_dokterBL.GetById(jadwal.KodeDokter).Nama.Trim() == "") { throw new ArgumentException("Invalid DOKTER"); } // layanan if (_layananBL.GetById(jadwal.KodeLayanan).Nama.Trim() == "") { throw new ArgumentException("Invalid LAYANAN"); } // hari if (jadwal.Hari < 1 || jadwal.Hari > 7) { throw new ArgumentException("Invalid HARI"); } // jam mulai TimeSpan jamMulai; if (!TimeSpan.TryParse(jadwal.JamMulai, out jamMulai)) { throw new ArgumentException("Invalid JAM MULAI"); } // jam selesai TimeSpan jamSelesai; if (!TimeSpan.TryParse(jadwal.JamSelesai, out jamSelesai)) { throw new ArgumentException("Invalid JAM SELESAI"); } // urutan jam mulai-jam selesai if (TimeSpan.Compare(jamMulai, jamSelesai) == 1) { throw new ArgumentException("Invalid JAM MULAI-SELESAI"); } //--validasi detil per jam foreach (JadwalHariPerJamModel item in jadwal.JadwalPerJams) { // format jam TimeSpan jamDetil; if (!TimeSpan.TryParse(item.Jam, out jamDetil)) { throw new ArgumentException("Invalid Format Detil JAM"); } // jam detil harus berada di range jam di header if (TimeSpan.Compare(jamMulai, jamDetil) == 1) { throw new ArgumentException("Invalid Range Detil JAM"); } if (TimeSpan.Compare(jamDetil, jamSelesai) == 1) { throw new ArgumentException("Invalid Range Detil JAM"); } // booked tidak boleh melebihi max if (item.Booked > item.Max) { throw new ArgumentException("Invalid BOOKED QTY"); } } // cek duplikasi dokter-hari-jam (case beda jadwal sama (ini))) // ambil data header var result = from jadwalJam in jadwal.JadwalPerJams group jadwalJam by jadwalJam.Jam into jamGroup select new { Jam = jamGroup.Key, Count = jamGroup.Count() }; if (result.ToList().Exists(x => x.Count > 1)) { throw new ArgumentException("Duplicated JAM PRAKTEK"); } TransactionOptions tranOption = new TransactionOptions { IsolationLevel = IsolationLevel.ReadCommitted }; using (TransactionScope tran = new TransactionScope(TransactionScopeOption.Required, tranOption)) { // generate kode jadwal jika kosong if (jadwal.Kode.Trim() == "") { ParamNoModel paramNo = _paramNoBL.GetById("JD"); jadwal.Kode = _paramNoBL.FormatKode(paramNo, 5, ""); _jadwalHariDal.Insert(jadwal); } else { _jadwalHariDal.Update(jadwal); } tran.Complete(); } }