コード例 #1
0
        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();
        }
コード例 #2
0
 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);
 }
コード例 #3
0
        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);
        }