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")); }
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)); }
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); }