public async Task <IActionResult> AddMovieFromImdb([FromBody] AddMovieFromImdbInput model) { try { var result = await movieLib.AddMovieFromImdbAsync(model, CurrentUserId); return(CustomResult(result)); } catch (System.Exception exp) { return(CustomError(exp)); } }
public async Task <string> AddMovieFromImdbAsync(AddMovieFromImdbInput model, long currentUserId) { var movieEntity = await movieRepo.FirstAsync(x => x.ImdbId == model.ImdbId); if (movieEntity != null) { throw new Exception("Duplicate Movie"); } var url = $"{_baseUrl}i={model.ImdbId}"; var result = await GetAsync <ImdbMovieModel>(url); var entity = new Data.Entity.Moive.Movie { Awards = result.Awards, BoxOffice = result.BoxOffice, DvdReleaseDate = result.DVD, ImdbId = result.imdbID, ImdbRating = result.imdbRating, ImdbVotes = result.imdbVotes, Metascore = result.Metascore, MovieCasts = await GetCasts(result.GetCasts()), MovieCountries = await GetCountries(result.GetCountries()), MovieGenres = await GetGenres(result.GetGenres()), MovieLanguages = await GetLanguages(result.GetLanguages()), Plot = result.Plot, Poster = result.Poster, Production = result.Production, Rated = result.Rated, Ratings = CreateRating(result.GetRatings()), Released = result.Released, Runtime = result.Runtime, SeriesId = result.SeriesId, Title = result.Title, TotalSeasons = result.TotalSeasons, Type = (TypeKind)Enum.Parse(typeof(TypeKind), result.Type), UserId = currentUserId, Website = result.Website, Year = result.Year, LocalPath = model.LocalPath }; var posterCount = entity.Poster.Count(); var plotCount = entity.Plot.Count(); await movieRepo.AddAsync(entity); await unitOfWork.CommitAsync(); return(await BeautifyLocalPathAsync(entity.Id, currentUserId)); }