public List <UserMovieModel> GetMoviesInCatalog(string catalogId) { var catalog = _MongoDBRepo.GetById <CatalogModel>("catalog", catalogId); var movieViews = new List <UserMovieModel>(); foreach (var movieId in catalog.Movies) { var movie = _MongoDBRepo.GetById <MovieModel>("movies", movieId); if (movie == null) { return(null); } var userdata = _MongoDBRepo.GetById <UserMoviedataModel>("usermoviedata", movieId); if (userdata != null) { var movieview = new UserMovieModel(movie, userdata); movieViews.Add(movieview); } else { var movieview = new UserMovieModel(movie); movieViews.Add(movieview); } } return(movieViews); }
// /api/Catalog/MovieIsInAnyUserCatalog GET public bool MovieIsInAnyUserCatalog(IEnumerable <CatalogModel> catalogs, UserMovieModel movie) { //var requestString = BaseUri + $"Catalog/MovieIsInAnyUserCatalog?userId={userId}&MovieId={MovieId}"; //var client = _ClientFactory.CreateClient(); //try //{ // var response = await client.GetStringAsync(requestString).ConfigureAwait(false); // Debug.WriteLine(response); // return bool.Parse(response); //} //catch (Exception e) //{ // Debug.WriteLine(e); //} if (catalogs != null) { foreach (var catalog in catalogs) { if (MovieIsInCatalog(catalog, movie)) { return(true); } } } return(false); }
public void HandleMovieUpdatedFromModal(UserMovieModel movie) { var i = Movies.FindIndex(m => m.MovieData.ImdbId == movie.MovieData.ImdbId); Movies[i] = movie; SelectedMovie = movie; StateHasChanged(); }
// /api/Catalog/MovieIsInCatalog GET public bool MovieIsInCatalog(CatalogModel catalog, UserMovieModel movie) { //var requestString = BaseUri + $"Catalog/MovieIsInCatalog?catalogId={catalogId}&movieId={movieId}"; //var client = _ClientFactory.CreateClient(); //try //{ // var response = await client.GetStringAsync(requestString).ConfigureAwait(false); // return bool.Parse(response); //} //catch (Exception e) //{ // Debug.WriteLine(e); //} var result = catalog.Movies.Contains(movie.MovieData.ImdbId); return(result); }
public List <UserMovieModel> CreateMovieViews(int userId, FilterModel filters, int resultLimit, int offset) { var ratingFilter = Builders <MovieModel> .Filter.Gt(x => x.Rating, filters.MinRating); var runtimeFilter = Builders <MovieModel> .Filter.Lt(x => x.RunTime, filters.MaxRuntime); var filter = Builders <MovieModel> .Filter.And(ratingFilter, runtimeFilter); if (filters.Keyword != null && filters.Keyword.Length > 0) { var keyWordFilter = Builders <MovieModel> .Filter.Regex(x => x.Title, new BsonRegularExpression($".*{filters.Keyword}.*", "i")); filter = Builders <MovieModel> .Filter.And(filter, keyWordFilter); } if (filters.Genres.Count() > 0) { var genreFilter = Builders <MovieModel> .Filter.AnyIn(x => x.Genres, filters.Genres.Select(g => g.ToString())); filter = Builders <MovieModel> .Filter.And(filter, genreFilter); } var movies = _MongoDBRepo.Query("movies", filter); var movieViews = new List <UserMovieModel>(); foreach (var movie in movies.Skip(offset).Take(resultLimit)) { var userdata = _MongoDBRepo.GetById <UserMoviedataModel>("usermoviedata", movie.ImdbId); if (userdata != null) { var movieview = new UserMovieModel(movie, userdata); movieViews.Add(movieview); } else { var movieview = new UserMovieModel(movie); movieViews.Add(movieview); } } return(movieViews); }
public void HandleMovieClicked(UserMovieModel movie) { var i = Movies.FindIndex(m => m.MovieData.ImdbId == movie.MovieData.ImdbId); SelectedMovie = Movies[i]; }
public IHttpActionResult Put(UserMovieModel data) { if (!ModelState.IsValid) { return(BadRequest("Invalid Data")); } if (data.UserId < 0) { return(BadRequest("Invalid UserId")); } if (data.MovieId < 0) { return(BadRequest("Invalid MovieId")); } if (data.UserRating < 0) { return(BadRequest("Invalid Rating")); } DbResult <UserMovie> res = _userMovieRep.GetSingle(data.UserId, data.MovieId); if (!res.IsSuccess) { DbResult <UserMovie> resIns = _userMovieRep.Insert(new UserMovie { MovieId = data.MovieId, UserId = data.UserId, UserRating = data.UserRating }); if (!resIns.IsSuccess) { return(BadRequest("UserId or MovieId does not exist in the system")); } } else { DbResult <int> resUpd = _userMovieRep.Update(new UserMovie { MovieId = data.MovieId, UserId = data.UserId, UserRating = data.UserRating }); if (!resUpd.IsSuccess) { return(InternalServerError(new System.Exception(resUpd.Message))); } } var ratings = _userMovieRep.GetAllByMovieId(data.MovieId).Result; decimal totalrating = 0; foreach (var item in ratings) { if (item.UserRating.HasValue) { totalrating += item.UserRating.Value; } } decimal average = totalrating / ratings.Count; Movie entMovie = _movieRep.GetSingle(data.MovieId).Result; entMovie.AverageRating = average; DbResult <int> resMov = _movieRep.Update(entMovie); if (!resMov.IsSuccess) { return(InternalServerError(new System.Exception(resMov.Message))); } var returnValue = new MovieApiModel { id = entMovie.MovieId, title = entMovie.Title, yearOfRelease = entMovie.YearOfRelease, runningTime = entMovie.RunningTime, genres = entMovie.Genres, averageRating = Math.Round(average * 2, MidpointRounding.AwayFromZero) / 2 }; return(Ok(returnValue)); }
// TODO: /api/Movie/GetMovie public async Task <UserMovieModel> GetUpdatedMovie(int userId, UserMovieModel movie) { //TODO create an actual get movie endpoint return((await GetAndUpdateMovieList(userId, 1, movie.MovieData.Title)).First()); }