Пример #1
0
        public async Task <IActionResult> Edit(AddGameInputModel model)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.View(model));
            }

            await this.gameService.EditGameAsync(model);

            return(this.RedirectToAction("Details", new { id = model.Id }));
        }
Пример #2
0
        public async Task <IActionResult> Create(AddGameInputModel model)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.View(model));
            }

            var gameId = await this.gameService.CreateGameAsync(model);

            return(this.RedirectToAction("Details", new { id = gameId }));
        }
Пример #3
0
        public async Task <IActionResult> Add(AddGameInputModel model)
        {
            var viewModel = await this.gameService.GetAllInfoAsync();

            if (!this.ModelState.IsValid)
            {
                return(this.View(viewModel));
            }

            var rootPath = this.environment.WebRootPath;

            await this.gameService.AddGameAsync(model, rootPath);

            return(this.Redirect("/"));
        }
Пример #4
0
        public async Task EditGameAsync(AddGameInputModel model)
        {
            var game = this.repository.All().Where(a => a.Id == model.Id).FirstOrDefault();

            game.Name          = model.Name;
            game.Description   = model.Description;
            game.Developer     = model.Developer;
            game.ReleaseDate   = model.ReleaseDate;
            game.Genre         = model.Genre;
            game.ImageUrl      = model.ImageUrl;
            game.PlatformId    = model.PlatformId;
            game.Publisher     = model.Publisher;
            game.Series        = model.Series;
            game.PriceUrl      = model.PriceUrl;
            game.IsLaunchTitle = model.IsLaunchTitle;

            this.repository.Update(game);
            await this.repository.SaveChangesAsync();
        }
Пример #5
0
        public IActionResult Delete(int id)
        {
            var game = this.gameService.GetGameDetails(id);

            var viewModel = new AddGameInputModel
            {
                Id          = id,
                Name        = game.Name,
                Description = game.Description,
                Developer   = game.Developer,
                Publisher   = game.Publisher,
                ImageUrl    = game.ImageUrl,
                ReleaseDate = game.ReleaseDate,
                Genre       = game.Genre,
                Series      = game.Series,
                PlatformId  = game.PlatformId,
            };

            return(this.View(viewModel));
        }
Пример #6
0
        public async Task <int> CreateGameAsync(AddGameInputModel model)
        {
            var game = new Game
            {
                Name          = model.Name,
                Description   = model.Description,
                Developer     = model.Developer,
                ReleaseDate   = model.ReleaseDate,
                Genre         = model.Genre,
                ImageUrl      = model.ImageUrl,
                PlatformId    = model.PlatformId,
                Publisher     = model.Publisher,
                Series        = model.Series,
                IsLaunchTitle = model.IsLaunchTitle,
                PriceUrl      = model.PriceUrl,
            };

            await this.repository.AddAsync(game);

            await this.repository.SaveChangesAsync();

            return(game.Id);
        }
Пример #7
0
        public async Task AddGameAsync(AddGameInputModel model, string rootPath)
        {
            var checkGame = await this.gameRepository.All()
                            .FirstOrDefaultAsync(x => x.Name == model.Name);

            if (checkGame != null)
            {
                throw new ArgumentException("Game already exists.");
            }

            var developer = await this.developerRepository.All()
                            .FirstOrDefaultAsync(x => x.Name == model.Developer);

            if (developer == null)
            {
                developer = new Developer()
                {
                    Name = model.Developer
                };
            }

            var imagePath = await GlobalMethods.UploadedFile(model.Image, model.Name, rootPath, MainFileName);

            var game = new Game()
            {
                Name        = model.Name,
                Developer   = developer,
                Image       = imagePath,
                Price       = model.Price,
                ReleaseDate = model.ReleaseDate,
                TrailerUrl  = model.Trailer,
                Summary     = model.Summary,
                Website     = model.Website,
            };

            foreach (var genreId in model.Genres)
            {
                var gameGenre = new GameGenre()
                {
                    GameId = game.Id, GenreId = genreId
                };

                await this.gameGenreRepository.AddAsync(gameGenre);

                game.GameGenres.Add(gameGenre);
            }

            foreach (var languageId in model.Languages)
            {
                var gameLanguage = new GameLanguage()
                {
                    GameId = game.Id, LanguageId = languageId
                };

                await this.gameLanguageRepository.AddAsync(gameLanguage);

                game.GameLanguages.Add(gameLanguage);
            }

            foreach (var platformId in model.Platforms)
            {
                var gamePlatform = new GamePlatform()
                {
                    GameId = game.Id, PlatformId = platformId
                };

                await this.gamePlatformRepository.AddAsync(gamePlatform);

                game.GamePlatforms.Add(gamePlatform);
            }

            await this.gameRepository.AddAsync(game);

            await this.gameRepository.SaveChangesAsync();

            await this.gameGenreRepository.SaveChangesAsync();

            await this.gameLanguageRepository.SaveChangesAsync();

            await this.gamePlatformRepository.SaveChangesAsync();
        }