Beispiel #1
0
        public async Task <IActionResult> AddGame(GameToUpload model)
        {
            string imgName = await UploadGameCover(_webHost, model);

            var gameInDb = await _db.Games.Where(g => g.Id == model.Id).AsNoTracking().FirstOrDefaultAsync();

            var gameToDb = new GameModel
            {
                Name    = model.Name,
                GameImg = imgName,
                GenreId = model.GenreId,
                About   = model.About
            };

            if (gameInDb == null)
            {
                await _db.Games.AddAsync(gameToDb);
            }
            else
            {
                gameToDb.Id = gameInDb.Id;
                _db.Update(gameToDb);
            }
            await _db.SaveChangesAsync();

            return(RedirectToAction("Index"));
        }
Beispiel #2
0
        public async Task <IActionResult> AddGame(int?gameId)
        {
            GameToUpload game = new GameToUpload();

            if (gameId != null)
            {
                game = await
                       (
                    from games in _db.Games
                    where games.Id == gameId
                    select new GameToUpload
                {
                    Id      = games.Id,
                    Name    = games.Name,
                    About   = games.About,
                    GenreId = games.GenreId
                }
                       ).AsNoTracking().FirstOrDefaultAsync();
            }

            var genres = await
                         (
                from genre in _db.Genres
                select new GenreModel
            {
                Id        = genre.Id,
                GenreName = genre.GenreName
            }
                         ).AsNoTracking().ToListAsync();

            ViewData["genres"] = genres;
            return(View(game));
        }
Beispiel #3
0
        internal static async Task <string> UploadGameCover(IWebHostEnvironment webHost, GameToUpload model)
        {
            string imgName = null;

            if (model.GameImg != null)
            {
                imgName = Guid.NewGuid().ToString() + "_" + model.Name.Replace(" ", "_") + "." + model.GameImg.FileName.Split(".")[1];
                var filePath = Path.Combine(webHost.WebRootPath, "img", "Game", imgName);
                using (var fileStream = new FileStream(filePath, FileMode.Create))
                {
                    await model.GameImg.CopyToAsync(fileStream);
                }
            }
            return(imgName);
        }