コード例 #1
0
		public ActionResult Edit(SeriesViewModel model)
		{
			var selectedGenres = model.Genres.Where(x => x.IsChecked).Select(x => x.Display).ToList();
			try
			{
				Series series = db.Series.Find(model.Series.SeriesId);
				if (TryUpdateModel(series))
				{
					var toDelete = db.SeriesGenres.Where(x => selectedGenres.Contains(x.GenreName) == false
							&& x.SeriesId == series.SeriesId).ToList();
					foreach (var item in toDelete)
					{
						db.SeriesGenres.Remove(item);
					}
					var alreadyIn = db.SeriesGenres.Where(x => selectedGenres.Contains(x.GenreName) == true
							&& x.SeriesId == series.SeriesId).ToList();
					var genresAlreadyIn = alreadyIn.Select(x => x.GenreName).ToList();
					foreach (var genre in selectedGenres)
					{
						if (genresAlreadyIn.Contains(genre))
							continue;
						SeriesGenre seriesGenre = new SeriesGenre()
						{
							SeriesId = model.Series.SeriesId,
							GenreName = genre
						};
						db.SeriesGenres.Add(seriesGenre);
					}

					foreach (var chr in db.Characters.Where(x => x.SeriesId == model.Series.SeriesId))
					{
						db.Characters.Remove(chr);
					}

					List<Role> characers = GetCharacters(model.Series.SeriesId, model.ActorList);
					foreach (Role role in characers)
					{
						db.Characters.Add(role);
					}

					series.Title = model.Series.Title;
					series.NumberOfEpisodes = model.Series.NumberOfEpisodes;
					series.NumberOfSeasons = model.Series.NumberOfSeasons;
					db.SaveChanges();
				}
				else
				{
					return RedirectToAction("Show", "Series", new { @id = model.Series.SeriesId});
				}
			}
			catch (Exception e)
			{
				return RedirectToAction("Show", "Series", new { @id = model.Series.SeriesId });
			}
			return RedirectToAction("Show", "Series", new { @id = model.Series.SeriesId });
		}
コード例 #2
0
		public ActionResult New(SeriesViewModel model)
		{
			try
			{
				if (ModelState.IsValid)
				{
					db.Series.Add(model.Series);
					var selectedGenres = model.Genres.Where(x => x.IsChecked).Select(x => x.Display).ToList();
					foreach (var genreName in selectedGenres)
					{
						SeriesGenre seriesGenre = new SeriesGenre
						{
							SeriesId = model.Series.SeriesId,
							GenreName = genreName
						};
						//seriesGenre.Genre = genre;
						//seriesGenre.Series = model.Series;
						db.SeriesGenres.Add(seriesGenre);
					}
					List <Role> characters = GetCharacters(model.Series.SeriesId, model.ActorList);
					foreach (Role role in characters)
					{
						db.Characters.Add(role);
					}
					db.SaveChanges();
					TempData["message"] = "The series has been added!";
					return RedirectToAction("Index");
				}
				else
				{
					return View(model);
				}
			}
			catch (Exception e)
			{
				return View(model);
			}
		}