public ActionResult ShiftMapping(ShiftMapViewModel model)
        {
            if (ModelState.ContainsKey("AssignedDayData[0].ShiftType"))
            {
                ModelState["AssignedDayData[0].ShiftType"].Errors.Clear();
            }
            if (ModelState.ContainsKey("AssignedDayData[1].ShiftType"))
            {
                ModelState["AssignedDayData[1].ShiftType"].Errors.Clear();
            }
            if (ModelState.ContainsKey("AssignedDayData[2].ShiftType"))
            {
                ModelState["AssignedDayData[2].ShiftType"].Errors.Clear();
            }
            if (ModelState.ContainsKey("AssignedDayData[3].ShiftType"))
            {
                ModelState["AssignedDayData[3].ShiftType"].Errors.Clear();
            }
            if (ModelState.ContainsKey("AssignedDayData[4].ShiftType"))
            {
                ModelState["AssignedDayData[4].ShiftType"].Errors.Clear();
            }
            if (ModelState.ContainsKey("AssignedDayData[5].ShiftType"))
            {
                ModelState["AssignedDayData[5].ShiftType"].Errors.Clear();
            }
            if (ModelState.ContainsKey("AssignedDayData[6].ShiftType"))
            {
                ModelState["AssignedDayData[6].ShiftType"].Errors.Clear();
            }
            if (ModelState.ContainsKey("AssignedDateData.ShiftType"))
            {
                ModelState["AssignedDateData.ShiftType"].Errors.Clear();
            }

            if (ModelState.IsValid)
            {
                if (model.Doctor.Daywise)
                {
                    foreach (var item in model.AssignedDayData)
                    {
                        if (item.IsSelected)
                        {
                            var shiftType = db.ShiftDays.Where(m => m.Doctor_ID == model.Doctor.ID && m.WeekDays_ID == item.Day ).FirstOrDefault();
                            if(shiftType != null)
                            {
                                if(item.ShiftType != 0)
                                {
                                    shiftType.ShiftType_ID = item.ShiftType;
                                }
                                if (item.StartTime != "")
                                {
                                    shiftType.StartTime = item.StartTime;
                                }
                                if (item.EndTime != "")
                                {
                                    shiftType.EndTime = item.EndTime;
                                }
                                shiftType.Status = true;

                                db.Entry(shiftType).State = EntityState.Modified;
                            }
                            else
                            {
                                ShiftDay dayShift = new ShiftDay
                                {
                                    WeekDays_ID = item.Day,
                                    StartTime = item.StartTime,
                                    EndTime = item.EndTime,
                                    ShiftType_ID = item.ShiftType,
                                    Doctor_ID = model.Doctor.ID,
                                    Status = true
                                };

                                db.ShiftDays.Add(dayShift);
                            }

                            db.SaveChanges();
                        }
                        else
                        {
                            var shiftType = db.ShiftDays.Where(m => m.Doctor_ID == model.Doctor.ID && m.WeekDays_ID == item.Day).FirstOrDefault();
                            if(shiftType != null)
                            {
                                shiftType.Status = false;
                                db.Entry(shiftType).State = EntityState.Modified;
                                db.SaveChanges();
                            }
                        }
                    }

                    return RedirectToAction("Index", "Doctors");
                }
                else
                {
                    foreach (var item in model.AssignedDateData)
                    {
                        ShiftDate dateShift = new ShiftDate { DayAvailable = item.DateAvailable, StartTime = item.StartTime, EndTime = item.EndTime, Doctor_ID = model.Doctor.ID, ShiftType_ID = item.ShiftType, Status = true };
                        db.ShiftDates.Add(dateShift);
                        db.SaveChanges();
                    }
                    return RedirectToAction("Index", "Doctors");
                }

            }

            ViewBag.Shifts = new SelectList(db.ShiftTypes, "ID", "Name");
            return View(model);
        }
        public ActionResult ShiftMapping(long id)
        {
            var model = new ShiftMapViewModel();
            Doctor doctor = db.Doctors.Include("employeedetail").Where(m => m.ID == id).FirstOrDefault();
            List<AssignedDayData> assignList = new List<AssignedDayData>();
            List<AssignedDateData> dateList = new List<AssignedDateData>();

            if (doctor.Daywise == true)
            {
                var listMappingDetails = db.ShiftDays.Where(m => m.Doctor_ID == id).ToList();

                foreach (var day in db.WeekDays)
                {

                    AssignedDayData assignDay = new AssignedDayData();
                    var item = listMappingDetails.Where(m => m.WeekDays_ID == day.ID).FirstOrDefault();
                    if(item != null)
                    {
                        assignDay.IsSelected = item.Status;
                        assignDay.ShiftType = Convert.ToInt32(item.ShiftType_ID);
                        assignDay.StartTime = item.StartTime;
                        assignDay.EndTime = item.EndTime;

                    }

                    assignDay.Day = day.ID;
                    assignDay.DayName = day.NameOfTheDay;
                    assignList.Add(assignDay);
                }
            }

            dateList.Add(new AssignedDateData ());

            model.Doctor = doctor;
            model.AssignedDateData = dateList;
            model.AssignedDayData = assignList;
            ViewBag.Shifts = new SelectList(db.ShiftTypes, "ID", "Name");
            return View(model);
        }