Exemplo n.º 1
0
        public ActionResult DeleteConfirmed(int id)
        {
            MasterSchedule masterSchedule = db.MasterSchedules.Find(id);

            db.MasterSchedules.Remove(masterSchedule);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
 public ActionResult Edit([Bind(Include = "MasterScheduleID,ScheduleID,ScheduleDescription,HasReport,MinorScheduleID")] MasterSchedule masterSchedule)
 {
     if (ModelState.IsValid)
     {
         db.Entry(masterSchedule).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(masterSchedule));
 }
        public ActionResult Create([Bind(Include = "MasterScheduleID,ScheduleID,ScheduleDescription,HasReport,MinorScheduleID")] MasterSchedule masterSchedule)
        {
            if (ModelState.IsValid)
            {
                db.MasterSchedules.Add(masterSchedule);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(masterSchedule));
        }
Exemplo n.º 4
0
 public ActionResult Edit([Bind(Include = "Id,ClassDetailId,CustomerId,StartTime,AppointmentLenghtInMinutes")] MasterSchedule masterSchedule)
 {
     if (ModelState.IsValid)
     {
         db.Entry(masterSchedule).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.ClassDetailId = new SelectList(db.ClassDetails, "Id", "ClassName", masterSchedule.ClassDetailId);
     ViewBag.CustomerId    = new SelectList(db.Customers, "Id", "FirstName", masterSchedule.CustomerId);
     return(View(masterSchedule));
 }
Exemplo n.º 5
0
        // GET: MasterSchedules/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            MasterSchedule masterSchedule = db.MasterSchedules.Find(id);

            if (masterSchedule == null)
            {
                return(HttpNotFound());
            }
            return(View(masterSchedule));
        }
        // GET: MasterSchedule/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            MasterSchedule masterSchedule = db.MasterSchedules.Find(id);

            if (masterSchedule == null)
            {
                return(HttpNotFound());
            }
            PopulateMinorScheduleDropDownList(masterSchedule.MinorScheduleID);
            return(View(masterSchedule));
        }
Exemplo n.º 7
0
        // GET: MasterSchedules/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            MasterSchedule masterSchedule = db.MasterSchedules.Find(id);

            if (masterSchedule == null)
            {
                return(HttpNotFound());
            }
            ViewBag.ClassDetailId = new SelectList(db.ClassDetails, "Id", "ClassName", masterSchedule.ClassDetailId);
            ViewBag.CustomerId    = new SelectList(db.Customers, "Id", "FirstName", masterSchedule.CustomerId);
            return(View(masterSchedule));
        }
Exemplo n.º 8
0
        //// GET: MasterSchedules/Create
        //public ActionResult Create()
        //{
        //    ViewBag.ClassDetailId = new SelectList(db.ClassDetails, "Id", "ClassName");
        //    ViewBag.CustomerId = new SelectList(db.Customers, "Id", "FirstName");
        //    return View();
        //}

        // POST: MasterSchedules/Create
        // To protect from overposting attacks, please enable the specific properties you want to bind to, for
        // more details see http://go.microsoft.com/fwlink/?LinkId=317598.
        //[HttpPost]
        //[ValidateAntiForgeryToken]
        public bool Create(string ClassId, string InstructorId, string NewEventDate, string NewEventTime, string NewEventDuration)
        {
            try
            {
                MasterSchedule newEvent = new MasterSchedule();
                newEvent.ClassDetailId = Int32.Parse(ClassId);
                newEvent.CustomerId    = Int32.Parse(InstructorId);
                newEvent.StartTime     = DateTime.Parse(NewEventDate + " " + NewEventTime);
                newEvent.AppointmentLenghtInMinutes = Int32.Parse(NewEventDuration);
                db.MasterSchedules.Add(newEvent);
                db.SaveChanges();
            }
            catch (Exception)
            {
                return(false);
            }
            return(true);
        }
        private void UpdateMasterSchedule(GameState gameState)
        {
            if (MasterSchedule == null)
            {
                MasterSchedule = new MasterSchedule();



                // Generate options per element:
            }
            else
            {
                // Remove old events

                // Update events which occured in the last tick/s

                // This may lead to some schedules being invalidated, or requiring re-choosing...
            }
        }
Exemplo n.º 10
0
        public async Task <IActionResult> AddSchedule(int employeeId)
        {
            var employee = await _context.Employees
                           .Include(e => e.Schedules)
                           .FirstOrDefaultAsync(e => e.EmployeeId == employeeId);

            if (employee == null)
            {
                return(NotFound());
            }

            var schedule = new MasterSchedule()
            {
                EmployeeId = employee.EmployeeId,
                Employee   = employee,
            };

            return(View(schedule));
        }
Exemplo n.º 11
0
        public void RefreshSchedule()
        {
            lock (sync)
            {
                var pco = new PlanningCenter(Configuration["PlanningCenter:ClientId"], Configuration["PlanningCenter:ClientSecret"]);

                var serviceTypes = pco.Services.ServiceTypes().List();

                var schedule = new MasterSchedule();

                foreach (var serviceType in serviceTypes)
                {
                    var plans = pco.Services.ServiceTypes().Plans(serviceType.Id).List(future: true);

                    schedule.ServiceTypes[serviceType.Id]     = serviceType.Name;
                    schedule.ServiceTypeTeams[serviceType.Id] = new HashSet <string>();
                    schedule.Records[serviceType.Id]          = new Dictionary <string, Dictionary <string, Dictionary <string, HashSet <ScheduledPosition> > > >();

                    foreach (var plan in plans)
                    {
                        var planDateString = plan.LastTimeAt?.ToString("yyyy-MM-dd");
                        schedule.ScheduleDates.Add(planDateString);

                        var planPeople = pco.Services.ServiceTypes().Plans(serviceType.Id).TeamMembers(plan.Id).List(includes: new[] { "team", "person" });

                        foreach (var planPerson in planPeople)
                        {
                            var team = planPerson.Team;

                            if (!schedule.Records[serviceType.Id].ContainsKey(team.Id))
                            {
                                schedule.Records[serviceType.Id][team.Id] = new Dictionary <string, Dictionary <string, HashSet <ScheduledPosition> > >();
                            }

                            schedule.TeamNames[team.Id] = team.Name;
                            schedule.ServiceTypeTeams[serviceType.Id].Add(team.Id);

                            if (!schedule.TeamPositions.ContainsKey(team.Id))
                            {
                                schedule.TeamPositions[team.Id] = new HashSet <string>();
                            }

                            var position = planPerson.TeamPositionName ?? "(other)";

                            if (!schedule.Records[serviceType.Id][team.Id].ContainsKey(position))
                            {
                                schedule.Records[serviceType.Id][team.Id][position] = new Dictionary <string, HashSet <ScheduledPosition> >();
                            }

                            schedule.TeamPositions[team.Id].Add(position);

                            if (!schedule.Records[serviceType.Id][team.Id][position].ContainsKey(planDateString))
                            {
                                schedule.Records[serviceType.Id][team.Id][position][planDateString] = new HashSet <ScheduledPosition>();
                            }

                            schedule.Records[serviceType.Id][team.Id][position][planDateString].Add(new ScheduledPosition
                            {
                                Name             = planPerson.Name,
                                Status           = planPerson.Status,
                                NotificationSent = planPerson.NotificationSentAt.HasValue
                            });
                        }
                    }
                }

                var scheduleJson = JsonConvert.SerializeObject(schedule);
                System.IO.File.WriteAllText("./Data/data.json", scheduleJson);
            }
        }
Exemplo n.º 12
0
        public async Task <IActionResult> AddSchedule([Bind()] MasterSchedule schedule)
        {
            var employee = _context.Employees
                           .FirstOrDefaultAsync(e => e.EmployeeId == schedule.EmployeeId);

            if (employee == null)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                // TODO: Generate rrule here.
                var r = new Recurrence()
                {
                    StartDateTime     = schedule.StartDate,
                    Frequency         = (RecurFrequency)schedule.Frequency,
                    CanOccurOnHoliday = schedule.CanOccurOnHolidays
                };

                if (!schedule.RepeatsIndefinitely)
                {
                    if (schedule.EndDate == null)
                    {
                        throw new ArgumentNullException();
                    }

                    r.RecurUntil = (DateTime)schedule.EndDate;
                }

                if (schedule.IsOnWeekdays)
                {
                    r.RecurEveryWeekday();
                }
                else
                {
                    r.Interval = schedule.Interval;
                }

                if (schedule.Frequency == RecurFrequency.Weekly)
                {
                    r.ByDay.AddRange(schedule.Days
                                     .Select(day => (System.DayOfWeek)day));

                    if (schedule.Days.Count > 0)
                    {
                        foreach (var day in schedule.Days)
                        {
                            schedule.DaysOfWeek.Add(await _context.DaysOfWeek.FindAsync(day));
                        }
                    }
                }

                _context.Add(schedule);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(ShowSchedules), new { EmployeeId = schedule.EmployeeId }));
            }

            return(View(schedule));
        }