public ActionResult MovieDetails(int id) { ViewBag.Title = "Movie Details"; var selectedMovie = _context.Movies.FirstOrDefault(x => x.SavedMoviesID == id); string apiIdVal = selectedMovie.APIReferenceID.ToString(); MovieApiModel movie = null; using (var client = new HttpClient()) { client.BaseAddress = new Uri(UriString); var responseTask = client.GetAsync(apiIdVal + "?api_key=" + apiKey); responseTask.Wait(); var result = responseTask.Result; if (result.IsSuccessStatusCode) { var readTask = result.Content.ReadAsAsync <MovieApiModel>(); readTask.Wait(); movie = readTask.Result; } else { ModelState.AddModelError(string.Empty, "Server error. Please contact admin."); } return(View(movie)); } }
//Gets a alle movies a specific genre and the return a random movie to the frontend public HttpResponseMessage Get(string genre) { var returnMovie = new MovieApiModel(); var databaseConnection = new DatabaseConnection(); var genreValue = this.GetGenreValue(genre); var resultData = databaseConnection.GetData($"SELECT * FROM movie WHERE GENRE =\'{genreValue}\'"); if (resultData.Count > 0) { int indexStart = 0; int indexEnd; indexEnd = resultData.Count(); var getRandom = new Random(); var movieDataset = getRandom.Next(indexStart, indexEnd); returnMovie.titleName = resultData[movieDataset].GetValue(1).ToString(); returnMovie.releaseDate = resultData[movieDataset].GetValue(2).ToString(); returnMovie.description = resultData[movieDataset].GetValue(4).ToString(); } return(this.Request.CreateResponse(HttpStatusCode.OK, returnMovie)); }
public async Task <ActionResult <Movie> > PostMovieAsync(MovieApiModel model) { //var movie = new Movie //{ // Title = model.Title, // ReleaseDate = model.ReleaseDate, // Director = model.Director, // IsColor = model.IsColor, // Format = model.Format, // Genre = model.Genre //}; //_context.Movies.Add(movie); //await _context.SaveChangesAsync(); try { //_context.Database.ExecuteSqlCommand("CreateMovie @p0, @p1, @p2, @p3, @p4, @p5", parameters: new[] { "Bill", "Gates" }); //_context.Database.ExecuteSqlRaw("CreateMovie @p0, @p1, @p2, @p3, @p4, @p5", model.Title, model.ReleaseDate, model.Director, model.IsColor, model.Format, model.Genre); _context.Database.ExecuteSqlInterpolated($"CreateMovie @Title = {model.Title}, @ReleaseDate = {model.ReleaseDate}, @Director = {model.Director}, @IsColor = {model.IsColor}, @Format = {model.Format}, @Genre = {model.Genre}"); } catch (Exception) { throw; } return(NoContent()); //return CreatedAtAction(nameof(GetMovieAsync), new { id = movie.Id }, movie); }
public IActionResult FavoriteMovies(int id) { var favMovies = _context.Favorites.Where(i => i.GroupMembersID == id).ToList(); var filteredMovies = new List <SavedMovies>(); List <string> apiValList = new List <string>(); List <int> favIdList = new List <int>(); List <MovieApiModel> apiItemList = new List <MovieApiModel>(); for (int x = 0; x < favMovies.Count; x++) { favIdList.Insert(x, favMovies[x].MovieFavoritesID); } for (int x = 0; x < favMovies.Count; x++) { var tempMovies = _context.Movies.Where(i => i.SavedMoviesID == favMovies[x].SavedMoviesID); foreach (SavedMovies t in tempMovies) { filteredMovies.Insert(x, t); } } for (int x = 0; x < filteredMovies.Count; x++) { string apiIdVal = filteredMovies[x].APIReferenceID.ToString(); apiValList.Insert(x, apiIdVal); } for (int x = 0; x < apiValList.Count; x++) { MovieApiModel movie = new MovieApiModel(); using (var client = new HttpClient()) { client.BaseAddress = new Uri(UriString); var responseTask = client.GetAsync(apiValList[x] + "?api_key=" + apiKey); responseTask.Wait(); var result = responseTask.Result; if (result.IsSuccessStatusCode) { var readTask = result.Content.ReadAsAsync <MovieApiModel>(); readTask.Wait(); movie = readTask.Result; } else { ModelState.AddModelError(string.Empty, "Server error. Please contact admin."); } apiItemList.Insert(x, movie); } } var model = new HobbyViewModel { MoviesList = filteredMovies, ApiContentList = apiItemList }; ViewBag.Title = "My Movies List"; return(View(model)); }
public MovieApiModel GetMovieByApiId(int?id) { MovieApiModel movie = null; var client = CreateClient(); var response = client.GetAsync($"movie/{id}").Result; movie = JsonToObjectConverter <MovieApiModel>(response); return(movie); }
public IActionResult ViewAll() { var allMovies = _context.Movies .OrderBy(m => m.MovieName).ToList(); List <string> apiValList = new List <string>(); List <MovieApiModel> apiItemList = new List <MovieApiModel>(); for (int x = 0; x < allMovies.Count; x++) { string apiIdVal = allMovies[x].APIReferenceID.ToString(); apiValList.Insert(x, apiIdVal); } for (int x = 0; x < apiValList.Count; x++) { MovieApiModel movie = new MovieApiModel(); using (var client = new HttpClient()) { client.BaseAddress = new Uri(UriString); var responseTask = client.GetAsync(apiValList[x] + "?api_key=" + apiKey); responseTask.Wait(); var result = responseTask.Result; if (result.IsSuccessStatusCode) { var readTask = result.Content.ReadAsAsync <MovieApiModel>(); readTask.Wait(); movie = readTask.Result; } else { ModelState.AddModelError(string.Empty, "Server error. Please contact admin."); } apiItemList.Insert(x, movie); } } var model = new HobbyViewModel { MoviesList = allMovies, ApiContentList = apiItemList }; ViewBag.Title = "All Movies"; return(View(model)); }
private async Task CreateMovieAsync() { var movie = new MovieApiModel { Title = "hjhsdkjhsksjd", Director = "Director", IsColor = true, Format = "4.16", Genre = "Action" }; client.BaseAddress = new Uri("http://localhost:54292/"); //client.DefaultRequestHeaders.Accept.Clear(); //client.DefaultRequestHeaders.Accept.Add( // new MediaTypeWithQualityHeaderValue("application/json")); //response.EnsureSuccessStatusCode(); try { var response = await client.PostAsJsonAsync( ApiRoutes.Movies, movie); // throw HttpRequestException if fails; response.EnsureSuccessStatusCode(); } catch (Exception e) { var errorMessage = e.Message; if (e.InnerException != null) { var innerMessage = e.InnerException.Message; } } //if (!response.IsSuccessStatusCode) //{ // var error = response.ReasonPhrase; //} //var responseString = await response.Content.ReadAsStringAsync(); }
private async Task UpdateMovieAsync() { client.BaseAddress = new Uri("http://localhost:54292/"); var movie = new MovieApiModel { Id = 2, Title = "Hope this work", ReleaseDate = DateTime.Now, Director = "Hansi Gertrud", IsColor = false, Format = "54", Genre = "Action" }; var response = await client.PutAsJsonAsync($"{ApiRoutes.Movies}/{movie.Id}", movie); response.EnsureSuccessStatusCode(); }
public async Task <IActionResult> PutMovieAsync(int id, MovieApiModel model) { var movie = new Movie { Id = id, Title = model.Title, ReleaseDate = model.ReleaseDate, Director = model.Director, IsColor = model.IsColor, Format = model.Format, Genre = model.Genre }; if (id != movie.Id) { return(BadRequest()); } _context.Entry(movie).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!MovieExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
//Gets alle Movie from the movie table and return a IEnurable to the frontend public IEnumerable Get() { var returnMovie = new MovieApiModel(); var databaseConnection = new DatabaseConnection(); var resultData = databaseConnection.GetData($"SELECT * FROM movie"); var counter = 0; foreach (var movie in resultData) { yield return(new MovieApiModel() { titleName = resultData[counter].GetValue(1).ToString(), releaseDate = resultData[counter].GetValue(2).ToString(), description = resultData[counter].GetValue(4).ToString(), imageUrl = resultData[counter].GetValue(6).ToString() }); counter++; } }
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)); }