public async Task UpdateAsync(PointTranslation pointTranslation)
        {
            VerifyManagementPermission();
            var authId = GetClaimId(ClaimType.UserId);
            var siteId = GetCurrentSiteId();
            var currentPointTranslation = await _pointTranslationRepository.GetByIdAsync(
                pointTranslation.Id);

            if (currentPointTranslation.SiteId != siteId)
            {
                _logger.LogError($"User {authId} cannot update point translation {currentPointTranslation.Id} for site {currentPointTranslation.SiteId}.");
                throw new GraException($"Permission denied - point translation belongs to site id {currentPointTranslation.SiteId}.");
            }

            currentPointTranslation.ActivityDescription                = pointTranslation.ActivityDescriptionPlural;
            currentPointTranslation.ActivityDescriptionPlural          = pointTranslation.ActivityDescriptionPlural;
            currentPointTranslation.TranslationDescriptionPastTense    = pointTranslation.TranslationDescriptionPastTense;
            currentPointTranslation.TranslationDescriptionPresentTense = pointTranslation.TranslationDescriptionPresentTense;
            currentPointTranslation.TranslationName = pointTranslation.TranslationName;

            var hasBeenUsed = await HasBeenUsedAsync(pointTranslation.Id);

            if (hasBeenUsed == false)
            {
                currentPointTranslation.ActivityAmount = pointTranslation.ActivityAmount;
                currentPointTranslation.IsSingleEvent  = pointTranslation.IsSingleEvent;
                currentPointTranslation.PointsEarned   = pointTranslation.PointsEarned;
            }

            await _pointTranslationRepository.UpdateSaveAsync(authId, currentPointTranslation);
        }
 public async Task <PointTranslation> AddAsync(PointTranslation pointTranslation)
 {
     VerifyManagementPermission();
     pointTranslation.SiteId = GetCurrentSiteId();
     return(await _pointTranslationRepository.AddSaveAsync(GetClaimId(ClaimType.UserId),
                                                           pointTranslation));
 }