public async Task <IActionResult> PushStrings()
        {
            var stringsToPush = await _soStringService.GetStringsAsync(s => s.HasTranslation, includeEverything : true);

            if (stringsToPush.Length > 0)
            {
                var sendNotifications = (await _soStringService.CountStringsAsync(s => s.NeedsPush)) > 0;
                await _transifexService.PushStringsToTransifexAsync(stringsToPush);

                if (sendNotifications)
                {
                    await _userService.SendBatchNotifications(NotificationType.StringsPushedToTransifex, null);
                }
            }

            return(NoContent());
        }
 public async Task <StringCountsViewModel> GetStringCounts()
 {
     return(new StringCountsViewModel
     {
         TotalStrings = await _soStringService.CountStringsAsync(s => !s.IsIgnored),
         WithoutTranslation = await _soStringService.CountStringsAsync(s => !s.HasTranslation && !s.IsIgnored),
         WithPendingSuggestions = await _soStringService.CountStringsAsync(s => s.HasSuggestions && !s.IsIgnored),
         WaitingApproval = await _soStringService.CountStringsAsync(s => s.HasSuggestionsWaitingApproval && !s.IsIgnored),
         WaitingReview = await _soStringService.CountStringsAsync(s => s.HasApprovedSuggestionsWaitingReview && !s.IsIgnored),
         UrgentStrings = await _soStringService.CountStringsAsync(s => s.IsUrgent && !s.IsIgnored),
     });
 }