示例#1
0
        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();
        }