public async Task <IActionResult> Update(int?id) { if (id == null) { return(NotFound()); } var game = await db.Games .Include(gameScreen => gameScreen.GameScreenshots) .Include(img => img.GameImage) .FirstOrDefaultAsync(image => image.Id == id); if (game == null) { return(NotFound()); } var screenshotsViewModel = new GamesScreenshotViewModel() { GameId = game.Id, Name = game.Name, PathImage = game.GameImage.InnerImage, GameScreenshotsList = game.GameScreenshots, }; return(View(screenshotsViewModel)); }
public async Task <IActionResult> AddScreenshot(GamesScreenshotViewModel model) { if (!ModelState.IsValid) { return(NotFound()); } var game = await db.Games.FirstOrDefaultAsync(item => item.Id == model.GameId); if (game == null) { return(NotFound()); } string folderAllGames = "/img/Game/Games/" + game.Name + "/"; int countScreenshots = 1; if (model.Screenshots == null) { return(RedirectToAction("Update", "GameScreenshot", new { id = model.GameId })); } foreach (var screenshot in model.Screenshots) { bool isHaveScreenshots = true; while (isHaveScreenshots) { string pathToScreenshot = folderAllGames + "Screenshot" + countScreenshots.ToString() + ".jpg"; FileInfo fileImg = new FileInfo(appEnvironment.WebRootPath + pathToScreenshot); if (!fileImg.Exists) { countScreenshots++; isHaveScreenshots = false; using (var filesStream = new FileStream(appEnvironment.WebRootPath + pathToScreenshot, FileMode.Create)) { await screenshot.CopyToAsync(filesStream); } var gameScreenshot = new GameScreenshot { Screenshot = pathToScreenshot, Game = game, }; db.GameScreenshots.Add(gameScreenshot); } else { countScreenshots++; } } } await db.SaveChangesAsync(); return(RedirectToAction("Update", "GameScreenshot", new { id = model.GameId })); }