public void IncludeStudents(int id)
 {
     using (var dbContext = new WISErosterDbContext())
     {
         var rule = dbContext.ProvisioningRules.First(r => r.RuleId == id);
         rule.StaffOnly = false;
         dbContext.SaveChanges();
     }
 }
 public void DeleteRule(int id)
 {
     using (var dbContext = new WISErosterDbContext())
     {
         var rule = dbContext.ProvisioningRules.First(r => r.RuleId == id);
         dbContext.ProvisioningRules.Remove(rule);
         dbContext.SaveChanges();
     }
 }
        public void InsertRule(ProvisioningRulesInsertModel model)
        {
            if (model != null)
            {
                var rule = new ProvisioningRule
                {
                    EducationOrganizationId = model.EducationOrganizationId,
                    SchoolYear           = model.SchoolYear,
                    SchoolCategoryTypeId = model.SchoolCategoryDescriptorId,
                    SessionName          = model.SelectedSession,
                    StaffOnly            = model.StaffOnly,
                    IncludeExclude       = model.IncludeExclude,
                    CreateDate           = DateTime.Now,
                    TypeId       = model.TypeId,
                    GroupByTitle = model.GroupByTitle
                };

                if (model.SelectedSchools != null && model.SelectedSchools.Any() && model.SelectedSchools.Any(s => s > 0))
                {
                    rule.RosterSchools = model.SelectedSchools.Select(i => new RosterSchool {
                        SchoolId = i
                    }).ToList();
                }

                var schoolYear = rule.SchoolYear;
                _apiContext.ChangeSchoolYear(schoolYear);

                if (model.TypeId == 1)
                {
                    //don't save default text as a title
                    rule.RosterLocalCourses = model.SelectedCourses.Where(t => _apiContext.CourseOfferings
                                                                          .Where(c => c.School.LocalEducationAgencyId ==
                                                                                 rule.EducationOrganizationId).Any(c => c.LocalCourseCode == t))
                                              .Select(j => new RosterLocalCourse {
                        LocalCourseCode = j
                    }).Distinct().ToList();
                }
                else if (model.TypeId == 2)
                {
                    rule.RosterGradeLevels = model.SelectedGrades.Where(g => g > 0)
                                             .Select(g => new RosterGradeLevel {
                        GradeLevelDescriptorId = g
                    }).ToList();
                }
                else
                {
                    rule.StaffUSI           = model.SelectedTeacher;
                    rule.RosterLocalCourses = model.SelectedCourses.Where(t => _apiContext.CourseOfferings
                                                                          .Where(c => c.School.LocalEducationAgencyId ==
                                                                                 rule.EducationOrganizationId).Any(c => c.LocalCourseCode == t))
                                              .Select(j => new RosterLocalCourse {
                        LocalCourseCode = j
                    }).Distinct().ToList();
                }

                using (var dbContext = new WISErosterDbContext())
                {
                    dbContext.ProvisioningRules.Add(rule);
                    dbContext.SaveChanges();
                }
            }
        }