private async Task <List <SToSVoice> > FetchVoices(string language) { try { var voices = await voiceRepository.GetAllByService(WEB_SERVICE_ID); if (voices.Count == 0) { var ibmVoices = await Task.Run(() => { return(textToSpeechClient.ListVoices()); }); voiceCache = ibmVoices._Voices.Select(voice => new SToSVoice { ServiceId = WEB_SERVICE_ID, Name = voice.Name, Gender = voice.Gender, Language = voice.Language } ).ToList(); voiceRepository.InsertMultiple(voiceCache); } else { voiceCache = voices; } return(voiceCache.Where(voice => voice.Language == language).ToList()); } catch (Exception e) { Console.WriteLine("Exception caught: " + e); MessageBox.Show("Exception caught: " + e); } return(new List <SToSVoice>()); }
private async Task <List <SToSVoice> > FetchVoices(string language) { try { var voices = await voiceRepository.GetAllByService(WEB_SERVICE_ID); if (voices.Count == 0) { var request = new ListVoicesRequest(); var response = await toSpeechClient.ListVoicesAsync(request); voiceCache = response.Voices.Select(voice => new SToSVoice { ServiceId = WEB_SERVICE_ID, Name = voice.Name, SsmlGender = voice.SsmlGender, Gender = voice.SsmlGender.ToString(), Language = string.Join(",", voice.LanguageCodes.ToArray()) } ).ToList(); voiceRepository.InsertMultiple(voiceCache); } else { voiceCache = voices; } return(voiceCache.Where(voice => voice.Language.Contains(language)).ToList()); } catch (Exception e) { Console.WriteLine("Exception caught: " + e); MessageBox.Show("Exception caught: " + e); } return(new List <SToSVoice>()); }