public void UpdateFeatureSettings(UserInformationModel<User> aUser, UpdateFeaturesModel anUpdateFeaturesModel)
 {
     IEnumerable<Feature> myEnabledFeatures = (from f in anUpdateFeaturesModel.Features
                                               where f.Second
                                               select f.First);
     IEnumerable<Feature> myDisabledFeatures = (from f in anUpdateFeaturesModel.Features
                                                where !f.Second
                                                select f.First);
     theFeatureRepo.UpdateFeatureSettings(aUser.Details, myEnabledFeatures, myDisabledFeatures);
 }
        public new ActionResult Edit(UpdateFeaturesModel aSettings)
        {
            if (!IsLoggedIn()) {
                return RedirectToLogin();
            }

            try {
                UserInformationModel<User> myUserInfo = GetUserInformatonModel();
                theFeatureService.UpdateFeatureSettings(myUserInfo, aSettings);
                TempData["Message"] += MessageHelper.SuccessMessage(FEATURES_UPDATED);
                ForceUserInformationRefresh();
            } catch (Exception myException) {
                LogError(myException, FEATURE_RETRIEVAL_ERROR);
                TempData["Message"] += MessageHelper.ErrorMessage(FEATURES_UPDATED_ERROR);
            }

            return RedirectToAction("Edit");
        }
        public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
        {
            User myUser = UserInformationFactory.GetUserInformation().Details;
            UpdateFeaturesModel myModel = new UpdateFeaturesModel();
            List<Pair<Feature, bool>> myAllPairs = new List<Pair<Feature, bool>>();
            foreach (Features myFeature in Enum.GetValues(typeof(Features))) {
                bool mySelected = BinderHelper.GetABoolean(bindingContext, myFeature.ToString());
                Feature myFeatureModel = Feature.CreateFeature(myFeature.ToString(),string.Empty, string.Empty, 0);
                Pair<Feature, bool> myPair = new Pair<Feature, bool>() {
                    First = myFeatureModel,
                    Second = mySelected
                };
                myAllPairs.Add(myPair);
            }

            myModel.Features = myAllPairs;

            return myModel;
        }