public ActionResult Create([Bind(Include = "PrimaryTechnologyID,AudienceTypes,LearningResourceTypeID,RSSLink")] LearningResourceFeed learningResourceFeed, List <string> AudienceTypeNames) { if (ModelState.IsValid) { learningResourceFeed.AudienceTypes = new List <AudienceType>(); if (AudienceTypeNames != null) { foreach (var audienceTypeName in AudienceTypeNames) { //add new audience type to learning resource. var audienceType = db.AudienceTypes.FirstOrDefault(a => a.TypeOfAudience == audienceTypeName); if (audienceType != null) { learningResourceFeed.AudienceTypes.Add(audienceType); } } } //add new learning resource. db.LearningResourceFeeds.Add(learningResourceFeed); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(learningResourceFeed)); }
public ActionResult Edit([Bind(Include = "LearningResourceFeedID,PrimaryTechnologyID,AudienceTypes,LearningResourceTypeID,RSSLink")] LearningResourceFeed learningResourceFeed, List <string> AudienceTypeNames) { if (ModelState.IsValid) { var existingLearningResourceFeed = db.LearningResourceFeeds.Find(learningResourceFeed.LearningResourceFeedID); //update existing learning resource feeds. db.Entry(existingLearningResourceFeed).CurrentValues.SetValues(learningResourceFeed); if (existingLearningResourceFeed.AudienceTypes == null) { existingLearningResourceFeed.AudienceTypes = new List <AudienceType>(); } var existingAudienceTypeNames = existingLearningResourceFeed.AudienceTypes.Select(x => x.TypeOfAudience).ToList(); foreach (var audienceType in existingAudienceTypeNames) { var existingChild = existingLearningResourceFeed.AudienceTypes.FirstOrDefault(x => x.TypeOfAudience == audienceType); if (AudienceTypeNames.FirstOrDefault(x => x == audienceType) == null) { existingLearningResourceFeed.AudienceTypes.Remove(existingChild); //remove existing audience types if exist and not in current audience types received. } } foreach (string at in AudienceTypeNames) { if (existingAudienceTypeNames.FirstOrDefault(x => x == at) == null) { //add audience type if not exist in existing. var audienceType = db.AudienceTypes.FirstOrDefault(x => x.TypeOfAudience == at); if (audienceType != null) { existingLearningResourceFeed.AudienceTypes.Add(audienceType); } } } db.SaveChanges(); return(RedirectToAction("Index", new { id = learningResourceFeed.LearningResourceFeedID })); } ViewBag.PrimaryTechnologyID = new SelectList(db.PrimaryTechnologies, "PrimaryTechnologyID", "PrimaryTech", learningResourceFeed.PrimaryTechnologyID); ViewBag.LearningResourceTypeID = new SelectList(db.LearningResourceTypes, "LearningResourceTypeID", "LearningResourceTypeName", learningResourceFeed.LearningResourceTypeID); return(View(learningResourceFeed)); }
public ActionResult DeleteConfirmed(int id) { LearningResourceFeed learningResourceFeed = db.LearningResourceFeeds.Find(id); var audienceTypes = learningResourceFeed.AudienceTypes.FirstOrDefault(); if (audienceTypes == null) { db.LearningResourceFeeds.Remove(learningResourceFeed); db.SaveChanges(); } else { ResourceManager rm = new ResourceManager(typeof(ErrorMessages)); //delete error message from resource file. ViewBag.showDeleteMsg = rm.GetString("DeleteMsg").Trim('"') + " message: this learning resource feed is refrenced to audience types"; return(View(learningResourceFeed)); } return(RedirectToAction("Index")); }