public async Task <IActionResult> AddMovie(AddMovieViewModel addMedia) { Media media = _context.Medias.SingleOrDefault(m => m.TmdbId == addMedia.TmdbId); List <Genre> dbGenres = _context.Genres.ToList(); if (media == null) { MediaType mediaType = _context.MediaTypes.SingleOrDefault(m => m.Name == SpinningFilmHelper.MovieType); string responseBody = await _apiService.GetWithCreditsAsync(addMedia.TmdbId, SpinningFilmHelper.MovieType); TmdbMovieResult movieResult = JsonConvert.DeserializeObject <TmdbMovieResult>(responseBody); responseBody = await _apiService.GetOmdbResult(movieResult.ImdbId); RatingResult ratingResult = JsonConvert.DeserializeObject <RatingResult>(responseBody); media = new Media(movieResult, mediaType, ratingResult, movieResult.ImdbId); _context.Add(media); Movie movie = new Movie(movieResult, media.MediaId); _context.Add(movie); foreach (var item in movieResult.Genres) { var genre = dbGenres.SingleOrDefault(g => g.GenreId == item.GenreId) ?? _context.Genres.Add(item).Entity; MediaGenre mediaGenre = new MediaGenre(media.MediaId, genre); _context.Add(mediaGenre); } movieResult.Credits.Cast.ForEach(c => c.MediaId = media.MediaId); _context.Casts.AddRange(movieResult.Credits.Cast); movieResult.Credits.Crew.ForEach(c => c.MediaId = media.MediaId); _context.Crews.AddRange(movieResult.Credits.Crew); _context.SaveChanges(); } Guid userId = User.Identity.GetNameIdGuid(); if (!_context.PhysicalMedias.Any(m => m.AppUserId == userId && m.MediaId == media.MediaId)) { PhysicalMedia physicalMedia = new PhysicalMedia(media.MediaId, userId, (bool)addMedia.DigitalCopy, addMedia.DiscType); _context.PhysicalMedias.Add(physicalMedia); foreach (var genreId in addMedia.ExtraGenreIds) { var genre = dbGenres.SingleOrDefault(g => g.GenreId == genreId); ExtraGenre extraGenre = new ExtraGenre(physicalMedia.PhysicalMediaId, genre); _context.Add(extraGenre); } _context.SaveChanges(); return(View("AddMedia", media)); } return(RedirectToAction("Index", "Home")); }
public async Task <IActionResult> AddSeries(AddSeriesViewModel addSeries) { Media media = _context.Medias.SingleOrDefault(m => m.ImdbId == addSeries.ImdbId); if (media == null) { MediaType mediaType = _context.MediaTypes.SingleOrDefault(m => m.Name == SpinningFilmHelper.SeriesType); string responseBody = await _apiService.GetWithCreditsAsync(addSeries.TmdbId, SpinningFilmHelper.SeriesType); TmdbTVResult tvResult = JsonConvert.DeserializeObject <TmdbTVResult>(responseBody); responseBody = await _apiService.GetOmdbResult(addSeries.ImdbId); RatingResult ratingResult = JsonConvert.DeserializeObject <RatingResult>(responseBody); media = new Media(tvResult, mediaType, ratingResult, addSeries.ImdbId); _context.Add(media); Series series = new Series(tvResult, media.MediaId); _context.Add(series); List <Genre> dbGenres = _context.Genres.ToList(); foreach (var item in tvResult.Genres) { var genre = dbGenres.SingleOrDefault(g => g.GenreId == item.GenreId) ?? _context.Genres.Add(item).Entity; MediaGenre mediaGenre = new MediaGenre(media.MediaId, genre); _context.Add(mediaGenre); } tvResult.Credits.Cast.ForEach(c => c.MediaId = media.MediaId); _context.Casts.AddRange(tvResult.Credits.Cast); tvResult.Credits.Crew.ForEach(c => c.MediaId = media.MediaId); _context.Crews.AddRange(tvResult.Credits.Crew); _context.SaveChanges(); } if (!_context.PhysicalMedias.Any(m => m.AppUserId == User.Identity.GetNameIdGuid() && m.MediaId == media.MediaId)) { foreach (var number in addSeries.SeasonNumbers) { var physicalMedia = addSeries.PhysicalMedias[number - 1]; physicalMedia.MediaId = media.MediaId; physicalMedia.AppUserId = User.Identity.GetNameIdGuid(); _context.PhysicalMedias.Add(physicalMedia); PhysicalSeason physicalSeason = new PhysicalSeason(physicalMedia.PhysicalMediaId, number); _context.PhysicalSeasons.Add(physicalSeason); } _context.SaveChanges(); return(View("AddMedia", media)); } return(RedirectToAction("Index", "Home")); }
public IActionResult PostGenre(MediaGenre obj) { if (obj == null) { return(BadRequest()); } _context.MediaGenre.Add(obj); _context.SaveChanges(); var model = new MediaGenre { GenreID = obj.GenreID, MediaID = obj.MediaID }; return(Ok(model)); }
static void Seed(MovieDatabaseDbContext ctx) { Media m1 = new Media { Id = 1, Title = "Iron man", ReleaseDate = 2008, WatchDate = new DateTime(2015, 1, 5), MediaGenres = new List <MediaGenre>(), ActorActs = new List <ActorAct>() }; Media m2 = new Media { Id = 2, Title = "The Wolf of Wallstreet", ReleaseDate = 2013, WatchDate = new DateTime(2017, 4, 14), MediaGenres = new List <MediaGenre>(), ActorActs = new List <ActorAct>() }; Media m3 = new Media { Id = 3, Title = "Captain America: Civil War", ReleaseDate = 2016, WatchDate = new DateTime(2017, 1, 9), MediaGenres = new List <MediaGenre> { new MediaGenre(), new MediaGenre() }, ActorActs = new List <ActorAct>() }; Media m4 = new Media { Id = 4, Title = "Terminator", ReleaseDate = 1984, WatchDate = new DateTime(2018, 5, 5), MediaGenres = new List <MediaGenre> { new MediaGenre(), new MediaGenre() }, ActorActs = new List <ActorAct>() }; Media m5 = new Media { Id = 5, Title = "Vikings - season 1 - 4", MediaGenres = new List <MediaGenre> { new MediaGenre(), new MediaGenre() }, ActorActs = new List <ActorAct>() }; Media m6 = new Media { Id = 7, Title = "Game of Thrones - season 1-7", MediaGenres = new List <MediaGenre> { new MediaGenre(), new MediaGenre() }, ActorActs = new List <ActorAct>() }; ActorAct aa1 = new ActorAct { Actor = new Actor { Name = "Robert Downey Jr" }, Media = m1 }; ActorAct aa2 = new ActorAct { Actor = new Actor { Name = "Terrence Howard" }, Media = m1 }; ActorAct aa3 = new ActorAct { Actor = new Actor { Name = "Scarlett Johanson" }, Media = m3 }; ActorAct aa4 = new ActorAct { Actor = new Actor { Name = "Travis Fimmel" }, Media = m5 }; /* * m1.ActorActs.Add(aa1); * m1.ActorActs.Add(aa2); * m3.ActorActs.Add(aa3); * m5.ActorActs.Add(aa4); */ MediaGenre mg1 = new MediaGenre { Genre = Genre.ScienceFiction, Id = 1, Media = m1 }; MediaGenre mg2 = new MediaGenre { Genre = Genre.Action, Id = 2, Media = m1 }; MediaGenre mg3 = new MediaGenre { Genre = Genre.Horror, Id = 3, Media = m2 }; m1.MediaGenres = new List <MediaGenre> { mg1, mg2 }; m2.MediaGenres = new List <MediaGenre> { mg3 }; ctx.Media.AddRange(m1, m2, m3, m4, m5, m6); ctx.ActorActs.AddRange(aa1, aa2, aa3, aa4); ctx.SaveChanges(); }
public static string MediaGenreToString(MediaGenre genre) { switch (genre) { case MediaGenre.Unknown: return(MediaGenre.Unknown.ToString()); case MediaGenre.Action: return(MediaGenre.Action.ToString()); case MediaGenre.Adventure: return(MediaGenre.Adventure.ToString());; case MediaGenre.AnimeInfluenced: return("Anime Influenced"); case MediaGenre.Cars: return(MediaGenre.Cars.ToString()); case MediaGenre.Comedy: return(MediaGenre.Comedy.ToString()); case MediaGenre.Dementia: return(MediaGenre.Dementia.ToString()); case MediaGenre.Demons: return(MediaGenre.Demons.ToString()); case MediaGenre.Drama: return(MediaGenre.Drama.ToString()); case MediaGenre.Ecchi: return(MediaGenre.Ecchi.ToString()); case MediaGenre.Fantasy: return(MediaGenre.Fantasy.ToString()); case MediaGenre.Game: return(MediaGenre.Game.ToString()); case MediaGenre.Harem: return(MediaGenre.Harem.ToString()); case MediaGenre.Historical: return(MediaGenre.Historical.ToString()); case MediaGenre.Horror: return(MediaGenre.Horror.ToString()); case MediaGenre.Kids: return(MediaGenre.Kids.ToString()); case MediaGenre.Magic: return(MediaGenre.Magic.ToString()); case MediaGenre.MartialArts: return("Martial Arts"); case MediaGenre.Mecha: return(MediaGenre.Mecha.ToString()); case MediaGenre.Military: return(MediaGenre.Military.ToString()); case MediaGenre.Music: return(MediaGenre.Music.ToString()); case MediaGenre.Mystery: return(MediaGenre.Mystery.ToString()); case MediaGenre.Parody: return(MediaGenre.Parody.ToString()); case MediaGenre.Psychological: return(MediaGenre.Psychological.ToString()); case MediaGenre.Romance: return(MediaGenre.Romance.ToString()); case MediaGenre.Samurai: return(MediaGenre.Samurai.ToString()); case MediaGenre.School: return(MediaGenre.School.ToString()); case MediaGenre.SciFi: return(MediaGenre.SciFi.ToString()); case MediaGenre.ShoujoAi: return("Shoujo Ai"); case MediaGenre.ShounenAi: return("Shounen Ai"); case MediaGenre.SliceOfLife: return("Slice Of Life"); case MediaGenre.Space: return(MediaGenre.Space.ToString()); case MediaGenre.Sports: return(MediaGenre.Sports.ToString()); case MediaGenre.Supernatural: return(MediaGenre.Supernatural.ToString()); case MediaGenre.SuperPower: return("Super Power"); case MediaGenre.Thriller: return(MediaGenre.Thriller.ToString()); case MediaGenre.Vampire: return(MediaGenre.Vampire.ToString()); case MediaGenre.None: default: return(""); } }
private async void BtnAdd_Click(object sender, EventArgs e) { try { int.Parse(txtBudget.Text); double.Parse(txtBoxOffice.Text); } catch { MessageBox.Show("Both the budget and box office amount must be numbers!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (txtTitle.Text == "" || txtSynopsis.Text == "" || txtDirector.Text == "" || txtBoxOffice.Text == "" || txtBudget.Text == "") { MessageBox.Show("Please enter all the required fields", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (dropCountry.SelectedIndex == -1 || dropLanguage.SelectedIndex == -1 || dropGenre.SelectedIndex == -1 || dropStudio.SelectedIndex == -1) { MessageBox.Show("Make sure you assigned the country, studio, genre and a language to the movie you're adding!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } int width = NewCoverImage.Width; int height = NewCoverImage.Height; if (!((width == 300 && height == 450) || (width == 512 && height == 768) || (width == 800 && height == 1200))) { MessageBox.Show("The film cover's resolution is disallowed! Please try another image.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } var model = new MediaInputModel { Title = txtTitle.Text, Synopsis = txtSynopsis.Text, Director = txtDirector.Text, ReleaseDate = dateRelease.Value, Budget = int.Parse(txtBudget.Text), WorldwideGross = double.Parse(txtBoxOffice.Text), GenreID = dropGenre.SelectedIndex + 1, CountryID = dropCountry.SelectedIndex + 1, LanguageID = dropLanguage.SelectedIndex + 1, StudioID = dropStudio.SelectedIndex + 1, RatingID = 1 // G default rating }; var returns = await _mediaService.Insert <Media>(model); // Genre MediaGenre mediaGenre = new MediaGenre { MediaID = returns.MediaID, GenreID = model.GenreID }; await $"{Properties.Settings.Default.APIUrl}/MediaContent/Genres" .WithBasicAuth(APIService.Username, APIService.Password) .PostJsonAsync(mediaGenre); // Country MediaCountry mediaCountry = new MediaCountry { MediaID = returns.MediaID, CountryID = model.CountryID }; await $"{Properties.Settings.Default.APIUrl}/MediaContent/Countries" .WithBasicAuth(APIService.Username, APIService.Password) .PostJsonAsync(mediaCountry); // Language MediaLanguage mediaLanguage = new MediaLanguage { MediaID = returns.MediaID, LanguageID = model.LanguageID }; await $"{Properties.Settings.Default.APIUrl}/MediaContent/Languages" .WithBasicAuth(APIService.Username, APIService.Password) .PostJsonAsync(mediaLanguage); // Copy newly added avatar to Assets/Avatars string coverLocation = await $"{Properties.Settings.Default.APIUrl}/info/covers".GetStringAsync(); string fileName = ""; try { fileName = Path.GetFileName(Cover.FileName); } catch { fileName = "Default.png"; } if (fileName != "Default.png" && fileName != "") { System.IO.File.Copy(Cover.FileName, $@"{coverLocation}\{fileName}"); } else if (fileName == "") { fileName = "Default.png"; } model.CoverLocation = $"/Assets/Covers/{fileName}"; Models.Image cover = new Models.Image { Location = model.CoverLocation, MediaID = returns.MediaID }; var imgReturns = await _imagesService.Insert <Models.Image>(cover); MessageBox.Show("Media added successfully!", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information); this.Close(); }