private void UpdateRank(PointsViewModel pointsViewModel) { // Busca todos pontos do Usuario var points = _pointsRepository.GetByUserId(pointsViewModel.UserId).ToList(); var totalPoints = points.Sum(x => x.Points); // Soma os pontos // Busca rank do Usuario, pois caso não exista deve ser criado um novo, caso contrario apenas atualizado var userRank = _rankRepository.GetByUserId(pointsViewModel.UserId); if (userRank is null) // Se rank for nulo irá gravar um rank novo { userRank = new Rank(pointsViewModel.UserId, totalPoints); _rankRepository.Add(userRank); } else { userRank.Update(totalPoints);// Esse caso existe rank então ele irá apenas atualizar os pontos totais _rankRepository.Update(userRank); } _rankRepository.SaveChanges(); }