public ActionResult Create(FranchiseSet franchiseset)
		{
			if (ModelState.IsValid) {
				franchisesetRepository.InsertOrUpdate(franchiseset);
				franchisesetRepository.Save();
				return RedirectToAction("Index");
			} else {
				return View();
			}
		}
 public void InsertOrUpdate(FranchiseSet franchiseset)
 {
     if (franchiseset.FranchiseSetID == default(int)) {
         // New entity
         context.FranchiseSets.Add(franchiseset);
     } else {
         // Existing entity
         context.Entry(franchiseset).State = EntityState.Modified;
     }
 }
		private void UpdateFranchiseSetFeatures(string[] selectedFeatures, FranchiseSet franchiseSetToUpdate)
		{
			if (selectedFeatures == null)
			{
				franchiseSetToUpdate.Features = new List<Feature>();                
				return;
			}

			var selectedFeaturesHS = new HashSet<string>(selectedFeatures);
			var franchiseSetFeatures = new HashSet<int>
				(franchiseSetToUpdate.Features.Select(c => c.FeatureID));                
			foreach (var feature in db.Features)
			{
				if (selectedFeaturesHS.Contains(feature.FeatureID.ToString()))
				{
					if (!franchiseSetFeatures.Contains(feature.FeatureID))
					{
						franchiseSetToUpdate.Features.Add(feature);                        
					}
				}
				else
				{
					if (franchiseSetFeatures.Contains(feature.FeatureID))
					{
						franchiseSetToUpdate.Features.Remove(feature);
						
					}
				}
			}
		}
        //*********** PRIVATE METHODS *************8

		private void PopulateAssignedFeatureData(FranchiseSet franchiseSet)
		{
			var allFeatures = db.Features;
			var franchiseSetFranchises = new HashSet<int>(franchiseSet.Features.Select(c => c.FeatureID));                
			var viewModel = new List<AssignedFeatureData>();
			foreach (var feature in allFeatures)
			{
				viewModel.Add(new AssignedFeatureData
				{
					FeatureID = feature.FeatureID,
					Name = feature.FeatureName,
					Assigned = franchiseSetFranchises.Contains(feature.FeatureID)
					
				});
			}
			ViewBag.Features = viewModel;
		}