private void StatusUpdate(string message, string title)
        {
            if (hasTranslations && TranslationInputBlock.Text.Trim() != lastMessage)
            {
                TranslationResults.Children.Clear();
                hasTranslations = false;
            }

            var translationResult = new TranslatorResult();

            translationResult.UseAsErrorProxy(message, title);

            TranslationResults.Children.Add(translationResult);
            if (TranslationResults.Children.Count > 5)
            {
                if (lastMessage == message)
                {
                    TranslationResults.Children.RemoveAt(4);
                    TranslationResults.Children.RemoveAt(4);

                    var repeatBlock = new TranslatorResult();
                    repeatBlock.UseAsErrorProxy(message,
                                                $"{title} - {++repeats} repeat{(repeats != 1 ? "s" : "")}"
                                                );

                    TranslationResults.Children.Add(repeatBlock);
                }
                else
                {
                    TranslationResults.Children.RemoveAt(0);
                    repeats = 0;
                }
            }

            lastMessage = message;
        }
        private async void BigFriendlyButton_Click(object sender, RoutedEventArgs e)
        {
            var text = TranslationInputBlock.Text;

            text = text.Trim();
            if (string.IsNullOrEmpty(text))
            {
                StatusUpdate("This text is empty! I'm not a miracle worker!", "User error");
                return;
            }

            var validated = translationService.GetTextValidation(text);

            if (validated.IsValid)
            {
                HangUserInterface();
                var inputLanguage = LostInTranslation.Language.English;
                IEnumerable <Translation[]> translations = null;
                try {
                    translations = await translationService.GetSuperTranslation(
                        validated.Value,
                        LanguageManager.GetLanguageCode(inputLanguage),
                        1,
                        5
                        );
                } catch (Exception exception) {
                    StatusUpdate(exception.Message, "Whoops! Internal service error");
                    ResumeUserInterface();
                    return;
                }

                if (translations == null)
                {
                    StatusUpdate("An error with the translation service has occured. Try again later.", "Whoops! Internal service error");
                    ResumeUserInterface();
                    return;
                }
                if (lastTranslatedText != text)
                {
                    TranslationResults.Children.Clear();
                }
                lastTranslatedText = text;
                foreach (var translation in translations)
                {
                    var translationResult = new TranslatorResult()
                    {
                        Translation = translation
                    };

                    TranslationResults.Children.Add(translationResult);
                }
                hasTranslations = true;
                ResumeUserInterface();
            }
            else if (validated.Value != null)
            {
                StatusUpdate(validated.Value, "User error");
            }
            else
            {
                StatusUpdate("You did something wrong. Sorrrrry :(", "User error");
            }
        }