// GET: Projects/Create
        public ActionResult Create()
        {
            ProjectCreateViewModel viewmodel = new ProjectCreateViewModel();
            List<Group> allgroups = new List<Group>();
            List<Person> allpeople = new List<Person>();

            foreach(Group g in db.Groups)
            {
                allgroups.Add(g);
            }
            foreach(Person p in db.People)
            {
                allpeople.Add(p);
            }

            viewmodel.AllGroups = allgroups;
            viewmodel.AllPeople = allpeople;

            return View(viewmodel);
        }
        public ActionResult Create(ProjectCreateViewModel viewmodel)
        {
            if (ModelState.IsValid)
            {
                Project project = new Project();
                //add basic stuff to project
                project.EndDate = viewmodel.EndDate;
                project.Name = viewmodel.Name;
                project.ProjectId = viewmodel.ProjectId;

                List<PersonProjectRecord> newrecords = new List<PersonProjectRecord>();

                //add project groups if there are selected groups
                if (viewmodel.SelectedGroupIds != null)
                {
                    List<Group> projectgroups = new List<Group>();
                    foreach (int groupId in viewmodel.SelectedGroupIds)
                    {
                        Group group = db.Groups.Find(groupId);
                        projectgroups.Add(group);
                    }
                    project.ProjectGroups = projectgroups;

                    //create personprojectrecords for individuals added through groups
                    foreach (Group group in projectgroups)
                    {
                        foreach (Person member in group.Members)
                        {
                            PersonProjectRecord newrecord = new PersonProjectRecord();
                            newrecord.PersonId = member.PersonId;
                            newrecord.ProjectId = project.ProjectId;
                            newrecord.RemoveWithGroup = true;
                            newrecords.Add(newrecord);
                        }
                    }
                }

                //create personprojectrecords for individuals added outside of groups
                if (viewmodel.SelectedPersonIds != null)
                {
                    foreach (int id in viewmodel.SelectedPersonIds)
                    {
                        PersonProjectRecord newrecord = new PersonProjectRecord();
                        newrecord.PersonId = id;
                        newrecord.ProjectId = project.ProjectId;
                        newrecord.RemoveWithGroup = false;
                        newrecords.Add(newrecord);
                    }
                }

                //save to db
                if (newrecords.Count != 0)
                {
                    foreach (PersonProjectRecord record in newrecords)
                    {
                        db.PersonProjectRecords.Add(record);
                    }
                }

                db.Projects.Add(project);
                db.SaveChanges();
                return RedirectToAction("Index");
            }

            return View(viewmodel);
        }