public async Task <Result> Update(UpdateResultDto resultDto) { var result = await _context.Results.FirstOrDefaultAsync(r => r.Player.Name == resultDto.Name && r.Category.Type == resultDto.Category); if (result == null) { // Add function that creates instead of having it nested in an Update function - repository pattern var newResult = new Result { Id = Guid.NewGuid(), Category = await _context.Categories.FirstOrDefaultAsync(c => c.Type == resultDto.Category), Player = await _context.Players.FirstOrDefaultAsync(p => p.Name == resultDto.Name), Score = resultDto.Score, Updated = DateTime.Now }; result = newResult; await _context.Results.AddAsync(result); } else { if (resultDto.Score > result.Score) { result.Score = resultDto.Score; result.Updated = DateTime.Now; } _context.Results.Update(result); } await _context.SaveChangesAsync(); return(result); }
public async Task <Player> Update(UpdatePlayerDto playerDto) { var player = await _context.Players.FirstOrDefaultAsync(p => p.Name == playerDto.Name); if (player == null) { // Add function that creates instead of having it nested in an Update function - repository pattern var newPlayer = new Player { Id = Guid.NewGuid(), Name = playerDto.Name, TimesPlayed = 1 }; await _context.Players.AddAsync(newPlayer); } else { player.TimesPlayed += 1; _context.Players.Update(player); } await _context.SaveChangesAsync(); return(player); }