public ActionResult DeleteConfirmed(int id) { Doctor_Available_Time doctor_Available_Time = db.Doctor_Available_Time.Find(id); db.Doctor_Available_Time.Remove(doctor_Available_Time); db.SaveChanges(); return(RedirectToAction("Index")); }
private static bool isConsistent(int roomid, Doctor_Available_Time doctor_Available_Time, List <Assignement> assignment, GroupModel GrpTable, List <string> doc_ids) { CollegeDatabaseEntities10 _db = new CollegeDatabaseEntities10(); //var s = _db.lin // var num = _db.doctor_Available_Time.Course_id; foreach (var item in assignment) { for (int i = 0; i < doc_ids.Count; i++) { if ((doctor_Available_Time.DayOfWeek == item.Day) && ((doctor_Available_Time.StartHour >= item.StartHour && doctor_Available_Time.StartHour < item.EndHour) || (doctor_Available_Time.StartHour + doctor_Available_Time.Course.Hours > item.StartHour && doctor_Available_Time.StartHour + doctor_Available_Time.Course.Hours <= item.EndHour) || (item.StartHour >= doctor_Available_Time.StartHour && item.StartHour < doctor_Available_Time.StartHour + doctor_Available_Time.Course.Hours) || (item.EndHour > doctor_Available_Time.StartHour && item.EndHour <= doctor_Available_Time.StartHour + doctor_Available_Time.Course.Hours)) && (item.RoomId == roomid || item.Doc_ids.Contains(doc_ids[i]) || GrpTable.GrpId == item.GrpId)) { return(false); } } } GrpTable.Week[doctor_Available_Time.DayOfWeek - 1].addinterval(doctor_Available_Time.Course.ID, roomid, doctor_Available_Time.StartHour, doctor_Available_Time.StartHour + doctor_Available_Time.Course.Hours); //CollegeDatabaseEntities2 _db = new CollegeDatabaseEntities2(); //var adminConstraints = _db.AcademicYears.Where(x => x.ID == doctor_Available_Time.Course.AcademicYear_id).Single(); if (GrpTable.FreeDaysCount() < 1) { GrpTable.Week[doctor_Available_Time.DayOfWeek - 1].Removeinterval(doctor_Available_Time.Course.ID); return(false); } /*if (GrpTable.Week[doctor_Available_Time.DayOfWeek - 1].NumfHours > doctor_Available_Time.Course.AcademicYear.DayWorkHours) * { * GrpTable.Week[doctor_Available_Time.DayOfWeek - 1].Removeinterval(doctor_Available_Time.Course.ID); * return false; * }*/ var TempSecHours = _db.Courses.OrderBy(x => x.SectionHours).Select(x => x.SectionHours).Where(x => x.HasValue).Take(1).Single();/* Select(x=>x.SectionHours).Take(1).Last();*/ var TempLabHours = _db.Courses.OrderBy(x => x.LabHours).Select(x => x.LabHours).Where(x => x.HasValue).Take(1).Single(); if (GrpTable.Week[doctor_Available_Time.DayOfWeek - 1].Gap > doctor_Available_Time.Course.AcademicYear.AllowedGapHours) { var GapAfterSecs = GrpTable.Week[doctor_Available_Time.DayOfWeek - 1].Gap % TempSecHours; var GapAfterLabs = GrpTable.Week[doctor_Available_Time.DayOfWeek - 1].Gap % TempLabHours; if (GapAfterSecs > doctor_Available_Time.Course.AcademicYear.AllowedGapHours && GapAfterLabs > doctor_Available_Time.Course.AcademicYear.AllowedGapHours) { GrpTable.Week[doctor_Available_Time.DayOfWeek - 1].Removeinterval(doctor_Available_Time.Course.ID); return(false); } } return(true); }
public ActionResult Delete(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Doctor_Available_Time doctor_Available_Time = db.Doctor_Available_Time.Find(id); if (doctor_Available_Time == null) { return(HttpNotFound()); } return(View(doctor_Available_Time)); }
public ActionResult Index(List <Doctor_Available_Time> Doctor_Available_Time) { Doctor_Available_Time doctor_Available_Time = new Doctor_Available_Time(); //var docId = (from c in db.AspNetUsers // where // c.Email == s // select c.Id).Single(); var docId = User.Identity.GetUserId(); if (ModelState.IsValid) // m7tgen l dcotor id { foreach (var i in Doctor_Available_Time) { if (i.DayOfWeek != 0) { db.Doctor_Available_Time.Add(i); } } db.SaveChanges(); // ModelState.Clear(); Doctor_Available_Time = new List <Doctor_Available_Time>(); for (int i = 0; i < 98; i++) { Doctor_Available_Time.Add(new Doctor_Available_Time { ID = 0, Course_id = 0, StartHour = 0, DayOfWeek = 0 }); } } var courses = (from c in db.Courses join doc in db.LinkDoctorCourses on c.ID equals doc.Course_id where doc.Doctor_id == docId select c).ToList(); // ViewBag.Doctor_Id = new SelectList(db.AspNetUsers, "Id", "Email", doctor_Available_Time.Doctor_Id); ViewBag.Doctor_Id = new SelectList(db.AspNetUsers, "Id", "Email"); ViewBag.Course_id = new SelectList(courses, "ID", "Name"); ViewBag.course_hour = db.Courses.OrderBy(x => x.ID).Select(x => x.Hours).ToArray(); ViewBag.course_name = db.Courses.OrderBy(x => x.ID).Select(x => x.Name).ToArray(); ViewBag.course__id = db.Courses.OrderBy(x => x.ID).Select(x => x.ID).ToArray(); return(View(Doctor_Available_Time)); }
private static bool isConsistentForDepts(int roomid, Doctor_Available_Time doctor_Available_Time, List <Assignement> assignment, List <GroupModel> GrpTable, List <Group> allGrps, List <string> doc_ids) { CollegeDatabaseEntities10 _db = new CollegeDatabaseEntities10(); //var s = _db.lin // var num = _db.doctor_Available_Time.Course_id; foreach (var item in assignment) { /*if ((doctor_Available_Time.DayOfWeek == item.Day) && (doctor_Available_Time.StartHour >= item.StartHour || doctor_Available_Time.StartHour <= item.EndHour) && item.RoomId == roomid) * { * return false; * * }*/ for (int j = 0; j < allGrps.Count; j++) { for (int i = 0; i < doc_ids.Count; i++) { if ((doctor_Available_Time.DayOfWeek == item.Day) && ((doctor_Available_Time.StartHour >= item.StartHour && doctor_Available_Time.StartHour < item.EndHour) || (doctor_Available_Time.StartHour + doctor_Available_Time.Course.Hours > item.StartHour && doctor_Available_Time.StartHour + doctor_Available_Time.Course.Hours <= item.EndHour) || (item.StartHour >= doctor_Available_Time.StartHour && item.StartHour < doctor_Available_Time.StartHour + doctor_Available_Time.Course.Hours) || (item.EndHour > doctor_Available_Time.StartHour && item.EndHour <= doctor_Available_Time.StartHour + doctor_Available_Time.Course.Hours)) && (item.RoomId == roomid || item.Doc_ids.Contains(doc_ids[i]) || allGrps[j].ID == item.GrpId)) { return(false); } } } } List <GroupModel> grps = new List <GroupModel>(); for (int i = 0; i < allGrps.Count; i++) { GrpTable.Where(x => x.GrpId == allGrps[i].ID).Single().Week[doctor_Available_Time.DayOfWeek - 1].addinterval(doctor_Available_Time.Course.ID, roomid, doctor_Available_Time.StartHour, doctor_Available_Time.StartHour + doctor_Available_Time.Course.Hours); grps.Add(GrpTable.Where(x => x.GrpId == allGrps[i].ID).Single()); // } for (int j = 0; j < grps.Count; j++) { if (grps[j].FreeDaysCount() < 1) { foreach (var item in grps) { GrpTable.Where(x => x.GrpId == item.GrpId).Single().Week[doctor_Available_Time.DayOfWeek - 1].Removeinterval(doctor_Available_Time.Course.ID); } return(false); } if (grps[j].Week[doctor_Available_Time.DayOfWeek - 1].NumfHours > doctor_Available_Time.Course.AcademicYear.DayWorkHours) { foreach (var item in grps) { GrpTable.Where(x => x.GrpId == item.GrpId).Single().Week[doctor_Available_Time.DayOfWeek - 1].Removeinterval(doctor_Available_Time.Course.ID); } return(false); } var TempSecHours = _db.Courses.OrderBy(x => x.SectionHours).Select(x => x.SectionHours).Take(1).Single();/* Select(x=>x.SectionHours).Take(1).Last();*/ var TempLabHours = _db.Courses.OrderBy(x => x.LabHours).Select(x => x.LabHours).Take(1).Single(); if (grps[j].Week[doctor_Available_Time.DayOfWeek - 1].Gap > doctor_Available_Time.Course.AcademicYear.AllowedGapHours) { var GapAfterSecs = grps[j].Week[doctor_Available_Time.DayOfWeek - 1].Gap % TempSecHours; var GapAfterLabs = grps[j].Week[doctor_Available_Time.DayOfWeek - 1].Gap % TempLabHours; if (GapAfterSecs > doctor_Available_Time.Course.AcademicYear.AllowedGapHours && GapAfterLabs > doctor_Available_Time.Course.AcademicYear.AllowedGapHours) { foreach (var item in grps) { GrpTable.Where(x => x.GrpId == item.GrpId).Single().Week[doctor_Available_Time.DayOfWeek - 1].Removeinterval(doctor_Available_Time.Course.ID); } return(false); } } } return(true); }