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