Beispiel #1
0
        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));
        }
Beispiel #2
0
        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));
        }
Beispiel #3
0
        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"));
        }