/// <summary>
 /// Retrieves all application settings in AppConfiguration object
 /// </summary>
 /// <returns>AppConfiguration object that encapsulates all named application configuration parameters which are not relted to notification e-mail configuration.</returns>
 public static AppConfiguration GetConfigParameters()
 {
     AppConfiguration appConfig;
     using (MatchingDB db = new MatchingDB())
         appConfig = new AppConfiguration(db.ConfigParameters.Where(c=>c.Id<100));
     return appConfig;
 }
 public void GetConfigParametersTest()
 {
     IEnumerable<ConfigParameter> target = new AppConfiguration(configParameters).GetConfigParameters();
     foreach (ConfigParameter param in target)
     {
         Assert.IsTrue(configParameters.Contains(param));
     }
 }
 public void UpdateConfigParametersTest()
 {
     AppConfiguration config = new AppConfiguration() { EnforceContinuousProjectRanking = true, MaxRejectedBusStudents = 10 };
     ConfigurationService.UpdateConfigParameters(config);
     AppConfiguration updated = ConfigurationService.GetConfigParameters();
     Assert.AreEqual(true,updated.EnforceContinuousProjectRanking);
     Assert.AreEqual(10, updated.MaxRejectedBusStudents);
 }
 public void GetConfigParameterTest()
 {
     AppConfiguration target = new AppConfiguration(configParameters);
     Assert.AreEqual("4",target[ConfigEnum.MaxRejectedStudents].Value);
 }
 public void AppConfigurationConstructorTest()
 {
     AppConfiguration target = new AppConfiguration(configParameters);
     Assert.AreEqual(true, target.EnforceContinuousProjectRanking);
     Assert.AreEqual(false, target.EnforceContinuousStudentRanking);
 }
 public void SetConfigParameterTest()
 {
     AppConfiguration target = new AppConfiguration();
     target[ConfigEnum.MinABusStudents]=new ConfigParameter(ConfigEnum.MinABusStudents,"100");
     Assert.AreEqual("100", target[ConfigEnum.MinABusStudents].Value);
 }
 /// <summary>
 /// Updates the config parameters in the database matching the properties of the method argument
 /// </summary>
 /// <param name="config">AppConfiguration object encapsulating application configuration parameters to be set in the db.</param>
 public static void UpdateConfigParameters(AppConfiguration config)
 {
     using (MatchingDB db = new MatchingDB())
     {
         IEnumerable<ConfigParameter> parameters = config.GetConfigParameters();
         foreach (var param in parameters)
         {
             var pm = db.ConfigParameters.FirstOrDefault(p => p.Id == param.Id);
             if (pm == null)
                 db.ConfigParameters.Add(param);
             else
                 pm.Value = param.Value;
         }
         db.SaveChanges();
     }
 }