Example #1
0
        public async Task <IActionResult> UpdateGameRate(int gameId, string userId, int rate)
        {
            var gameRate = await _context.GameRates.Where(gr => gr.GameId == gameId && gr.AuthorId.Equals(userId)).FirstOrDefaultAsync();

            if (gameRate == null)
            {
                gameRate = new GameRate()
                {
                    GameId   = gameId,
                    AuthorId = userId,
                    Rate     = rate
                };
                await _context.GameRates.AddAsync(gameRate);
            }
            else
            {
                gameRate.Rate = rate;
            }
            var gs = await _context.GameSummaries.Where(gs => gs.GameId == gameId && gs.UserId.Equals(userId)).FirstOrDefaultAsync();

            if (gs != null)
            {
                gs.Rate = rate;
            }
            await _context.SaveChangesAsync();

            return(Json(new { rate }));
        }
        public async Task <IActionResult> ImportSummaries(IFormFile jsonfile, string userId = null)
        {
            userId ??= _userManager.GetUserId(User);
            if (jsonfile != null)
            {
                byte[] jsonBytes = null;
                using (var reader = new BinaryReader(jsonfile.OpenReadStream()))
                {
                    jsonBytes = reader.ReadBytes((int)jsonfile.Length);
                }
                var json       = Encoding.UTF8.GetString(jsonBytes);
                var gs         = JsonConvert.DeserializeObject <List <GameSummaryDTO> >(json);
                var existingGS = _dbContext.GetGameSummaries(userId);
                foreach (var gameSummaryDTO in gs.Where(gs => !existingGS.Any(egs => egs.GameId.Equals(gs.GameId))))
                {
                    var gameSummary = new GameSummary();
                    var game        = await _dbContext.Games.FindAsync(gameSummaryDTO.GameId);

                    gameSummary.GameName = game.Name;
                    gameSummary.Game     = game;
                    gameSummary.GameId   = game.Id;
                    gameSummary.Rate     = gameSummaryDTO.Rate;
                    if (gameSummaryDTO.Rate.HasValue)
                    {
                        var gameRate = new GameRate()
                        {
                            AuthorId = userId,
                            GameId   = game.Id,
                            Rate     = gameSummaryDTO.Rate.Value
                        };
                        await _dbContext.GameRates.AddAsync(gameRate);
                    }
                    gameSummary.Genre        = game.Genre;
                    gameSummary.GenreWrapper = game.Genre.GetAttribute <DisplayAttribute>().Name;
                    gameSummary.UserId       = userId;
                    var catalog = await _dbContext.Catalogs.FindAsync(gameSummaryDTO.CatalogId);

                    gameSummary.Catalog   = catalog;
                    gameSummary.CatalogId = catalog.Id;
                    await _dbContext.GameSummaries.AddAsync(gameSummary);
                }

                await _dbContext.SaveChangesAsync();
            }
            return(RedirectToAction("Profile"));
        }
        public bool SaveGameRate(UserGameRateModel userRate)
        {
            GameRate userRateEntity = DbContext.GamesRates.Where(rate => rate.GameId == userRate.GameId && rate.UserId == userRate.UserId).FirstOrDefault();

            if (userRateEntity != null)
            {
                userRateEntity.Rate = userRate.UserRate;
            }
            else
            {
                DbContext.GamesRates.Add(new GameRate()
                {
                    Game = DbContext.Games.Find(userRate.GameId), User = DbContext.Users.Find(userRate.UserId), Rate = userRate.UserRate
                });
            }
            if (DbContext.SaveChanges() > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }