public IHttpActionResult Post(MovieRatingViewModel movierating)
        {
            var loggedUserId = HttpContext.Current.GetOwinContext().GetUserId();

            movierating.UserCreated = new Models.Users.UserViewModel()
            {
                Id = loggedUserId
            };
            movierating.Datecreated = DateTimeOffset.Now;

            var request = new SaveMovieRatingRequest()
            {
                RequestToken = Guid.NewGuid(),
                UserId       = loggedUserId,
                MovieRating  = movierating.MapToView()
            };

            var movieratingsResponse = _movieratingService.SaveMovieRating(request);

            if (!movieratingsResponse.Success)
            {
                return(BadRequest(movieratingsResponse.Message));
            }

            return(Ok(movierating = movieratingsResponse.MovieRating.MapToViewModel()));
        }
        public IHttpActionResult Put(int id, MovieRatingViewModel movierating)
        {
            var loggedUserId = HttpContext.Current.GetOwinContext().GetUserId();

            if (ModelState.IsValid)
            {
                var request = new SaveMovieRatingRequest()
                {
                    RequestToken = Guid.NewGuid(),
                    UserId       = loggedUserId,
                    MovieRating  = movierating.MapToView()
                };

                var movieratingsResponse = _movieratingService.SaveMovieRating(request);

                if (!movieratingsResponse.Success)
                {
                    return(BadRequest(movieratingsResponse.Message));
                }

                return(Ok(movierating = movieratingsResponse.MovieRating.MapToViewModel()));
            }
            else
            {
                return(BadRequest());
            }
        }
Ejemplo n.º 3
0
 /// <summary>
 /// Maps Api.Models.MovieRatingViewModel into Messaging.Views.MovieRating
 /// </summary>
 /// <param name="viewModel"></param>
 /// <returns> Messaging.Views.MovieRating</returns>
 public static MovieRating MapToView(this MovieRatingViewModel viewModel)
 {
     if (viewModel == null)
     {
         return(null);
     }
     return(new MovieRating()
     {
         MovieId = viewModel.MovieId,
         UserRatedId = viewModel.UserRatedId,
         DateCreated = viewModel.Datecreated,
         Rating = viewModel.Rating,
         UserCreated = viewModel.UserCreated.MapToView()
     });
 }
Ejemplo n.º 4
0
        public async Task <IActionResult> RateMovie([FromBody] MovieRatingViewModel value)
        {
            try
            {
                var results = await moviesService.RateMovieAsync(value.MovieId, value.UserId, value.Rating);

                return(Ok(results));
            }
            catch (InvalidRatingException e)
            {
                return(BadRequest(e.Message));
            }
            catch (Exception e) when(e is MovieNotFoundException || e is UserNotFoundException)
            {
                return(NotFound(e.Message));
            }
        }
Ejemplo n.º 5
0
        public async Task <ActionResult <MovieRatingViewModel> > PostMovieRating(MovieRatingViewModel viewModel)
        {
            try
            {
                var entity = GetMapperMovieRatingViewModelToMovieRating(viewModel);
                var model  = await _movieRatingRepository.Add(entity);

                return(GetMapperMovieRatingToMovieRatingViewModel(model));
            }
            catch (InvalidDataException e)
            {
                return(BadRequest(new { message = e.Message }));
            }
            catch (Exception e)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError, new { message = e.Message }));
            }
        }
Ejemplo n.º 6
0
        public async Task <IActionResult> PatchMovieRating(int id, MovieRatingViewModel viewModel)
        {
            try
            {
                var entity = GetMapperMovieRatingViewModelToMovieRating(viewModel);
                await _movieRatingRepository.Update(id, entity);

                return(NoContent());
            }
            catch (MovieRatingNotFoundException e)
            {
                return(NotFound(new { message = e.Message }));
            }
            catch (Exception e)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError, new { message = e.Message }));
            }
        }
Ejemplo n.º 7
0
        // GET: Movies
        public async Task <IActionResult> Index(string movieGenre, string searchString, string ratingCriteria)
        {
            // Use LINQ to get list of genres.
            IQueryable <string> genreQuery = from m in _context.Movie
                                             orderby m.Genre
                                             select m.Genre;

            // Use LINQ to get list of ratingCriteria
            IQueryable <string> ratingQuery = from r in _context.Movie
                                              orderby r.Rating
                                              select r.Rating;

            var movies = from m in _context.Movie
                         select m;

            if (!String.IsNullOrEmpty(searchString))
            {
                movies = movies.Where(s => s.Title.Contains(searchString)); // Lambda Expression
            }

            if (!String.IsNullOrEmpty(movieGenre))
            {
                movies = movies.Where(x => x.Genre.Contains(movieGenre));
            }

            if (!String.IsNullOrEmpty(ratingCriteria))
            {
                movies = movies.Where(y => y.Rating.Contains(ratingCriteria));
            }

            var movieRatingVM = new MovieRatingViewModel
            {
                RatingCriteria = new SelectList(await ratingQuery.Distinct().ToListAsync()),
                Movies         = await movies.ToListAsync()
            };

            var movieGenreVM = new MovieGenreViewModel
            {
                Genres = new SelectList(await genreQuery.Distinct().ToListAsync()),
                Movies = await movies.ToListAsync()
            };

            return(View(movieGenreVM));
        }
Ejemplo n.º 8
0
        public async Task <IActionResult> Rating(
            [FromRoute] int movieId,
            [FromBody] MovieRatingViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            var movie = await _movieRepository.Get(movieId);

            if (movie == null)
            {
                return(NotFound());
            }

            movie.UpdateRating(model.Rating);

            await _movieRepository.Save();

            return(NoContent());
        }
Ejemplo n.º 9
0
        public IActionResult MoviePage(int MovieID)
        {
            movie = movieCollection.GetMovie(MovieID);

            MovieRatingViewModel model = new MovieRatingViewModel()
            {
                MovieID      = movie.MovieID,
                MovieTitle   = movie.MovieTitle,
                MovieInfo    = movie.MovieInfo,
                MovieSummary = movie.MovieSummary,
                Poster       = movie.Poster,
                Director     = movie.Director,
                Stars        = movie.Stars,
                Trailer      = movie.Trailer,
                Writers      = movie.Writers,
            };

            List <Rating> ratings = ratingCollection.GetRatingsMovie(MovieID);

            model.Ratings = ratings;

            return(View(model));
        }
Ejemplo n.º 10
0
 private MovieRating GetMapperMovieRatingViewModelToMovieRating(MovieRatingViewModel viewModel)
 {
     return(_mapper.Map <MovieRating>(viewModel));
 }