Esempio n. 1
0
        public ActionResult Create()
        {
            var viewModel = new SessionFormViewModel
            {
                GameSystems = _context.GameSystems.ToList()
            };

            return(View(viewModel));
        }
        public ActionResult New()
        {
            var viewModel = new SessionFormViewModel();

            viewModel.Courses  = _context.Courses;
            viewModel.Trainers = _context.People.Where(p => p.Flags.Any(f => f.ID == "TRN"))
                                 .Select(p => new Trainer {
                ID = p.ID, FName = p.Forename, SName = p.Surname
            })
                                 .ToList();
            viewModel.Locations = _context.Locations.Where(l => l.TLoc);

            return(View("SessionForm", viewModel));
        }
Esempio n. 3
0
        public ActionResult Create(SessionFormViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                viewModel.GameSystems = _context.GameSystems.ToList();
                return(View("Create", viewModel));
            }
            var session = new Session
            {
                GMId         = User.Identity.GetUserId(),
                DateTime     = viewModel.GetDateTime(),
                GameSystemId = viewModel.GameSystem,
                Location     = viewModel.Location
            };

            _context.Sessions.Add(session);
            _context.SaveChanges();

            return(RedirectToAction("Index", "Home"));
        }
        public ActionResult Edit(int id)
        {
            var session = _context.Sessions.SingleOrDefault(s => s.ID == id);

            if (session == null)
            {
                return(HttpNotFound());
            }

            var viewModel = new SessionFormViewModel(session);

            viewModel.Courses  = _context.Courses;
            viewModel.Trainers = _context.People.Where(p => p.Flags.Any(f => f.ID == "TRN"))
                                 .Select(p => new Trainer {
                ID = p.ID, FName = p.Forename, SName = p.Surname
            })
                                 .ToList();
            viewModel.Locations = _context.Locations.Where(l => l.TLoc);

            return(View("SessionForm", viewModel));
        }
        public ActionResult Save(SessionFormViewModel sess)
        {
            if (!ModelState.IsValid)
            {
                sess.Courses  = _context.Courses;
                sess.Trainers = _context.People.Where(p => p.Flags.Any(f => f.ID == "TRN"))
                                .Select(p => new Trainer {
                    ID = p.ID, FName = p.Forename, SName = p.Surname
                })
                                .ToList();
                sess.Locations = _context.Locations.Where(l => l.TLoc);
                return(View("SessionForm", sess));
            }

            Person userperson = _context.People.SingleOrDefault(p => p.ID == 0);

            if (sess.ID == 0)
            {
                Session newSession = new Models.Session();
                newSession.CourseID   = sess.CourseID;
                newSession.TrainerID  = sess.TrainerID;
                newSession.LocationID = sess.LocationID;
                if (sess.CourseDate != null)
                {
                    newSession.Strt = ((DateTime)(sess.CourseDate)).Date.Add((TimeSpan)(sess.StartTime));
                    if (sess.EndTime != null)
                    {
                        newSession.Endt = ((DateTime)(sess.CourseDate)).Date.Add((TimeSpan)(sess.EndTime));
                    }
                    else
                    {
                        if (sess.CourseID != null && sess.CourseID != 0)
                        {
                            var course = _context.Courses.Single(c => c.ID == sess.CourseID);
                            if (course.Length != null)
                            {
                                double length = (double)(course.Length);
                                newSession.Endt = ((DateTime)(newSession.Strt)).AddMinutes(length);
                            }
                        }
                    }
                }
                if (sess.MaxP != 0)
                {
                    newSession.MaxP = sess.MaxP;
                }
                else
                {
                    if (sess.LocationID != null && sess.LocationID != 0)
                    {
                        var location = _context.Locations.Single(l => l.ID == sess.LocationID);
                        newSession.MaxP = (short)location.MaxP;
                    }
                }
                newSession.Notes = sess.Notes;

                newSession.Created  = DateTime.Now;
                newSession.Creator  = userperson;
                newSession.Modified = DateTime.Now;
                newSession.Modifier = userperson;
                _context.Sessions.Add(newSession);
            }
            else
            {
                var sessionInDb = _context.Sessions.Single(s => s.ID == sess.ID);

                sessionInDb.CourseID   = sess.CourseID;
                sessionInDb.TrainerID  = sess.TrainerID;
                sessionInDb.LocationID = sess.LocationID;
                if (sess.CourseDate == null)
                {
                    sessionInDb.Strt = null;
                    sessionInDb.Endt = null;
                }
                else
                {
                    sessionInDb.Strt = ((DateTime)(sess.CourseDate)).Date.Add((TimeSpan)(sess.StartTime));
                    if (sess.EndTime != null)
                    {
                        sessionInDb.Endt = ((DateTime)(sess.CourseDate)).Date.Add((TimeSpan)(sess.EndTime));
                    }
                    else
                    {
                        if (sess.CourseID != null && sess.CourseID != 0)
                        {
                            var course = _context.Courses.Single(c => c.ID == sess.CourseID);
                            if (course.Length != null)
                            {
                                double length = (double)(course.Length);
                                sessionInDb.Endt = ((DateTime)(sessionInDb.Strt)).AddMinutes(length);
                            }
                        }
                    }
                }
                sessionInDb.MaxP  = sess.MaxP;
                sessionInDb.Notes = sess.Notes;

                sessionInDb.Modified = DateTime.Now;
                sessionInDb.Modifier = userperson;
            }

            _context.SaveChanges();

            return(RedirectToAction("Index", "Session"));
        }