示例#1
0
        public async Task <MovieAdminServiceModel> FindMovie(Guid id)
        {
            Movie movie = await this.Db.Movies.FindAsync(id);

            List <Genre> genresMovie = await this.genreService.GetAllGenreForMovie(movie.Id);

            List <GenreServiceModel> allGenres = await this.genreService.GetAllGenres();

            List <GenreServiceModel> genresMovieModel = new List <GenreServiceModel>();

            foreach (var genre in allGenres)
            {
                GenreServiceModel genreServiceModel = new GenreServiceModel();
                genreServiceModel.Id   = genre.Id;
                genreServiceModel.Name = genre.Name;

                if (genresMovie.Any(x => x.Id == genre.Id))
                {
                    genreServiceModel.IsSelected = true;
                }
                else
                {
                    genreServiceModel.IsSelected = false;
                }

                genresMovieModel.Add(genreServiceModel);
            }

            List <Price> prices = await this.priceService.GetAllPricesForMovie(movie.Id);

            List <PriceServiceModel> pricesServiceMovel = prices.Select(p => new PriceServiceModel
            {
                Id     = p.Id,
                RoleId = p.RoleId,
                Price  = p.MoviePrice,
                Role   = p.Role
            })
                                                          .ToList();

            foreach (var price in pricesServiceMovel)
            {
                Role role = await this.roleService.FindRole(price.RoleId);

                price.Role = role;
            }

            return(new MovieAdminServiceModel
            {
                Id = movie.Id,
                Name = movie.Name,
                Year = movie.Year,
                Rating = movie.Rating,
                VideoPath = movie.VideoPath,
                PosterPath = movie.PosterPath,
                TrailerPath = movie.TrailerPath,
                Summary = movie.Summary,
                Genres = genresMovieModel,
                Prices = pricesServiceMovel
            });
        }
        public async Task <IActionResult> Edit(GenreViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            model.Genres = await this.genreService.GetAllGenres();

            if (model.Genres.Any(x => x.Name == model.Name))
            {
                TempData.AddErrorMessage($"Genre with name '{model.Name}' already exists !");

                return(RedirectToAction(nameof(Edit)));
            }
            else
            {
                GenreServiceModel genreServiceModel = new GenreServiceModel
                {
                    Id   = model.Id,
                    Name = model.Name
                };

                await this.genreService.UpdateGenre(genreServiceModel);

                TempData.AddSuccessMessage($"Genre '{model.Name}' successfully updated !");

                return(RedirectToAction(nameof(Add)));
            }
        }
        public async Task <IActionResult> CreateMovie()
        {
            IEnumerable <Role> roles = await roleService.GetAllRoles();

            IEnumerable <GenreServiceModel> genres = await genreService.GetAllGenres();

            MovieAdminViewModel model = new MovieAdminViewModel();

            model.Prices = new List <PriceServiceModel>();
            model.Genres = new List <GenreServiceModel>();

            foreach (Role role in roles)
            {
                PriceServiceModel priceModel = new PriceServiceModel();
                priceModel.RoleId = role.Id;
                priceModel.Role   = role;
                model.Prices.Add(priceModel);
            }

            foreach (GenreServiceModel genre in genres)
            {
                GenreServiceModel genreModel = new GenreServiceModel();
                genreModel.Name = genre.Name;
                genreModel.Id   = genre.Id;
                model.Genres.Add(genreModel);
            }

            return(this.View(model));
        }
示例#4
0
        public async Task Delete(GenreServiceModel genreServiceModel)
        {
            Genre genre = new Genre
            {
                Id   = genreServiceModel.Id,
                Name = genreServiceModel.Name
            };

            this.Db.Genres.Remove(genre);
            await this.Db.SaveChangesAsync();
        }
示例#5
0
        public async Task <bool> CreateGenre(GenreServiceModel genreServiceModel)
        {
            Genre genre = new Genre
            {
                Name = genreServiceModel.Name
            };

            finalWebProjectDbContext.Genres.Add(genre);
            int result = await finalWebProjectDbContext.SaveChangesAsync();

            return(result > 0);
        }
        public async Task <IActionResult> Index(MovieFilterServiceModel movieFilter)
        {
            MovieFilterServiceModel movieFilterServiceModel = await this.movieService.FilteredMovies(movieFilter);

            List <GenreServiceModel> genres = await genreService.GetAllGenres();

            if (User.Identity.IsAuthenticated)
            {
                User user = await userManager.GetUserAsync(HttpContext.User);

                IList <string> roles = await userManager.GetRolesAsync(user);

                string role = roles.SingleOrDefault();

                if (role == null)
                {
                    await this.userManager.AddToRoleAsync(user, GlobalConstants.RegularUser);

                    role = GlobalConstants.RegularUser;
                }

                if (movieFilterServiceModel.MovieCollection != null)
                {
                    foreach (MovieServiceModel movie in movieFilterServiceModel.MovieCollection)
                    {
                        MovieServiceModel movieModel = await this.movieService.FindMovie(movie.Id);

                        movie.IsPurchased = this.movieService.IsPurchased(user.Id, movie.Id);

                        movie.Price = movieModel.Prices.SingleOrDefault(x => x.Role.Name == role).MoviePrice;
                    }
                }
                else
                {
                    movieFilterServiceModel.MovieCollection = new List <MovieServiceModel>();
                }

                foreach (GenreServiceModel genre in genres)
                {
                    GenreServiceModel genreModel = new GenreServiceModel();
                    genreModel.Name = genre.Name;
                    genreModel.Id   = genre.Id;
                    movieFilterServiceModel.Genres.Add(genreModel);
                }
            }

            return(View(movieFilterServiceModel));
        }
示例#7
0
        public async Task <IActionResult> CreateGenre(GenreCreateInputModel genreTypeCreateInputModel)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.View(genreTypeCreateInputModel ?? new GenreCreateInputModel()));
            }

            GenreServiceModel genreServiceModel = new GenreServiceModel
            {
                Name = genreTypeCreateInputModel.Name
            };

            await this.recordService.CreateGenre(genreServiceModel);

            return(this.Redirect("/"));
        }
        public async Task <IActionResult> Edit(Guid id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            GenreServiceModel genre = await this.genreService.FindGenre(id);

            GenreViewModel genreViewModel = new GenreViewModel
            {
                Id   = genre.Id,
                Name = genre.Name
            };

            return(View(genreViewModel));
        }
示例#9
0
        public async Task CreateGenre_ShouldSuccessfullyCreateГенре()
        {
            string errorMessage = "RecordService CreateGenre() method does not work properly.";

            var context = ContextFactory.Initializer();

            this.recordService = new RecordService(context);

            GenreServiceModel testGenre = new GenreServiceModel
            {
                Name = "Doom"
            };

            bool actualResult = await this.recordService.CreateGenre(testGenre);

            Assert.True(actualResult, errorMessage);
        }
示例#10
0
        public async Task <IActionResult> Delete(GenreViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            GenreServiceModel genreServiceModel = new GenreServiceModel
            {
                Id   = model.Id,
                Name = model.Name
            };

            await this.genreService.Delete(genreServiceModel);

            TempData.AddSuccessMessage($"Genre '{model.Name}' successfully deleted !");

            return(RedirectToAction(nameof(Add)));
        }
示例#11
0
        public async Task <IActionResult> Delete(Guid id)
        {
            if (id == null)
            {
                return(RedirectToAction(nameof(Add)));
            }

            GenreServiceModel genre = await this.genreService.FindGenre(id);

            if (genre.Name == null)
            {
                return(RedirectToAction(nameof(Add)));
            }

            GenreViewModel genreViewModel = new GenreViewModel
            {
                Id   = genre.Id,
                Name = genre.Name
            };

            return(View(genreViewModel));
        }