예제 #1
0
        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));
        }
예제 #2
0
        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 }));
        }