Пример #1
0
        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));
        }
Пример #5
0
        public MovieApiModel GetMovieByApiId(int?id)
        {
            MovieApiModel movie    = null;
            var           client   = CreateClient();
            var           response = client.GetAsync($"movie/{id}").Result;

            movie = JsonToObjectConverter <MovieApiModel>(response);
            return(movie);
        }
Пример #6
0
        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));
        }
Пример #7
0
        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();
        }
Пример #8
0
        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++;
            }
        }
Пример #11
0
        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));
        }