public ActionResult CreateSchedEvent(string Title, int UserId, DateTime startDate, string intervalType, int numIntervals, int duration, int DoctorId) { var vet = _db.Vets .Include(r => r.Doctors) .Include("Doctors.Schedules") .Include("Doctors.Schedules.Events") .SingleOrDefault(r => r.Username == HttpContext.User.Identity.Name);//_db.Vets.Include(r => r.Schedules).Include("Schedules.Events").SingleOrDefault(r => r.Username == HttpContext.User.Identity.Name); var user = _db.Users.Include(r => r.Schedules).SingleOrDefault(r => r.Id == UserId); var userIntervalSched = user.Schedules.SingleOrDefault(r => r.Name.ToLower() == user.Id + "|interval schedules"); if (userIntervalSched == null) { userIntervalSched = new Schedule() { Name = user.Id + "|interval schedules", DoctorId = DoctorId, Description = user.FullName + "'s User Interval Events" }; _db.Schedules.Add(userIntervalSched); _db.SaveChanges(); user.Schedules.Add(userIntervalSched); _db.Entry(userIntervalSched).State = EntityState.Modified; _db.Entry(user).State = EntityState.Modified; _db.SaveChanges(); } var schedEvent = new Event() { Title = Title, ScheduleId = userIntervalSched.Id, StartDateTime = startDate, EndDateTime = startDate.AddMinutes(duration) }; _db.Events.Add(schedEvent); _db.SaveChanges(); for (int i = 1; i < numIntervals; i++) { switch (intervalType) { case "min": schedEvent.StartDateTime = schedEvent.StartDateTime.AddMinutes(1); break; case "hour": schedEvent.StartDateTime = schedEvent.StartDateTime.AddHours(1); break; case "day": schedEvent.StartDateTime = schedEvent.StartDateTime.AddDays(1); break; case "week": schedEvent.StartDateTime = schedEvent.StartDateTime.AddDays(7); break; case "month": schedEvent.StartDateTime = schedEvent.StartDateTime.AddMonths(1); break; } schedEvent.EndDateTime = schedEvent.StartDateTime.AddMinutes(duration); _db.Events.Add(schedEvent); _db.SaveChanges(); } //var schedule = vet.Schedules.SingleOrDefault(r => r.Name.ToLower().Contains(user.Id + "|interval schedules")); ViewBag.UserList = _db.Users.Include(r => r.Schedules).Include("Schedules.Events").Where(r => r.VetId == vet.Id).ToList(); ViewBag.Doctors = vet.Doctors.ToList(); //_db.Events.Add(schedEvent); //_db.SaveChanges(); //ViewBag.Schedule = schedule; return View(); }
public ActionResult Edit(Schedule schedule) { var vet = _db.Vets .Include("Doctors.Schedules") .Include("Doctors.Schedules.Events") .Include(r => r.Doctors) .SingleOrDefault(r => r.Username == HttpContext.User.Identity.Name); if (ModelState.IsValid) { var sched = _db.Schedules.SingleOrDefault(r => r.Id == schedule.Id); _db.Entry(sched).CurrentValues.SetValues(schedule); //_db.Entry(schedule).State = EntityState.Modified; _db.SaveChanges(); var allSchedules = new List<Schedule>(); foreach (var doctor in vet.Doctors) allSchedules.AddRange(doctor.Schedules.ToList()); ViewBag.Schedules = allSchedules;//vet.Schedules.ToList(); return RedirectToAction("Index", "Scheduling"); } ViewBag.UserList = _db.Users.Where(r => r.VetId == vet.Id).ToList(); var doctors = _db.Doctors.Where(r => r.VetId == vet.Id); ViewBag.Doctors = new SelectList(doctors.ToList(), "Id", "Name"); return View(schedule); }
public ActionResult Create(Schedule sched) { //_db.Vets.Include(r => r.Schedules).Include("Schedules.Events").SingleOrDefault(r => r.Username == HttpContext.User.Identity.Name); //var doctors = _db.Doctors.Where(r => r.VetId == vet.Id); //ViewBag.Doctors = new SelectList(doctors.ToList(), "Id", "Name"); //var allSchedules = new List<Schedule>(); //foreach (var doctor in vet.Doctors) // allSchedules.AddRange(doctor.Schedules.ToList()); //ViewBag.Schedules = allSchedules;//vet.Schedules.ToList(); if (ModelState.IsValid) { sched.Events = new Collection<Event>(); _db.Schedules.Add(sched); _db.SaveChanges(); return RedirectToAction("Index", "Scheduling"); } var vet = _db.Vets.SingleOrDefault(r => r.Username == HttpContext.User.Identity.Name); var doctors = _db.Doctors.Where(r => r.VetId == vet.Id); ViewBag.Doctors = new SelectList(doctors.ToList(), "Id", "Name"); return View(sched); }