async Task Speak(Figure figure) { if (!Settings.Default.Speak) { return; } var shape = figure as ShapeFigure; if (shape != null) { var textToRead = _languageService.GetLanguageTextForShape(shape.Type); if (textToRead == null) { textToRead = shape.ToString(); } await _speakService.SpeakTextAsync(textToRead); } else { var textToRead = figure.ToString(); if (_speakService.SupportsSSML) { await _speakService.SpeakSSMLAsync(_languageService.GetLanguageTextForLetter(textToRead)); } else { await _speakService.SpeakTextAsync(textToRead); } } }