public void JadwalHariBL_ListData_Test()
        {
            //  arrange
            var jadwals = new List <JadwalHariModel>();

            _jadwalHariDal.Stub(x => x.ListData()).Return(jadwals);

            //  act
            var dummy = _jadwalHariBL.ListData();

            //  assert
            _jadwalHariDal.AssertWasCalled(x => x.ListData());
        }
        /// <summary>
        ///     Mengenerate Jadwal Dokter per-Tanggal,
        ///     dari jadwal per hari
        /// </summary>
        /// <param name="kodeDokter"></param>
        /// <param name="tanggal"></param>
        /// <returns></returns>
        public List <JadwalTglModel> Generate(string tanggal)
        {
            List <JadwalTglModel> retVal = null;

            //  convert tanggal menjadi hari
            var trueDate = DateTimeHelpers.ToDate(tanggal, "dd-MM-yyyy");
            var hari     = (int)trueDate.DayOfWeek;

            //  ambil semua jadwal yang ada pada hari tsb
            var jadwals     = _jadwalHariBL.ListData(hari);
            var jadwalToday = jadwals.Where(x => x.Hari == hari);

            if (jadwalToday != null)
            {
                retVal = new List <JadwalTglModel>();
            }

            //  convert ke jadwalTgl
            foreach (var item in jadwalToday)
            {
                foreach (var itemPerJam in item.JadwalPerJams)
                {
                    var jadwalTgl = new JadwalTglModel
                    {
                        KodeDokter  = item.KodeDokter,
                        NamaDokter  = item.NamaDokter,
                        KodeLayanan = item.KodeLayanan,
                        NamaLayanan = item.NamaLayanan,
                        TglJadwal   = tanggal,
                        Jam         = itemPerJam.Jam,
                        Durasi      = itemPerJam.Durasi,
                        Max         = itemPerJam.Max,
                        Booked      = itemPerJam.Booked
                    };
                    retVal.Add(jadwalTgl);
                }
            }
            return(retVal);
        }