Beispiel #1
0
        public void OnResponsePreformed(object sender, BaseYandexAPIResponce response)
        {
            switch (response)
            {
            case LanguagesResponce resp:
                var dataToShow = ConvertApiResponseToObservableCollection(resp);
                _translationView.SetAvailableLanguages(dataToShow);
                break;

            case TranslationResponce resp:
                if (resp.Code == 200)
                {
                    _translationView.ShowTranslation(resp.Text[0]);
                }
                break;
            }
        }
        public async void SendRequest(BaseYandexAPIRequest request)
        {
            try
            {
                string requestStr  = request.CreateRequestString();
                String responceStr = await _httpClientController.GetContentAsync(requestStr);

                BaseYandexAPIResponce responceObject = _responceDeserializer.DeserializeByRequestType(request, responceStr);
                if (responceObject != null)
                {
                    Notify(responceObject);
                }
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        }
Beispiel #3
0
        public BaseYandexAPIResponce DeserializeByRequestType(BaseYandexAPIRequest request, string responceString)
        {
            BaseYandexAPIResponce responseObject = null;

            switch (request)
            {
            case TranslationRequest _:
                responseObject = JsonSerializer.Deserialize <TranslationResponce>(responceString, new JsonSerializerOptions
                {
                    PropertyNameCaseInsensitive = true,
                });
                break;

            case GetLanguagesRequest _:
                responseObject = JsonSerializer.Deserialize <LanguagesResponce>(responceString, new JsonSerializerOptions
                {
                    PropertyNameCaseInsensitive = true,
                });
                break;
            }
            return(responseObject);
        }
 private void Notify(BaseYandexAPIResponce responce)
 {
     ResponcePreformed?.Invoke(this, responce);
 }