public static async Task <HttpResponseMessage> PostJsonAsync <T>(this ExtendedHttpClient client, T model)// where T : class
        {
            var json = JsonConvert.SerializeObject(model);
            var data = new StringContent(json, Encoding.UTF8, "application/json");

            return(await client.PostAsync(client.RequestUri, data));
        }
Ejemplo n.º 2
0
        public async void Update(ExtendedHttpClient httpClient)
        {
            var available = AppSettings.ConnectionService.IsConnectionAvailable();

            if (!available)
            {
                return;
            }

            var rez = await httpClient.Get <string>(string.Format(UpdateUrl, Model.Lang), CancellationToken.None);

            if (!rez.IsSuccess)
            {
                return;
            }

            var xml     = rez.Result;
            var changed = Update(xml, Model);

            if (changed)
            {
                if (!_localizationModel.ContainsKey(Model.Lang))
                {
                    _localizationModel.Add(Model.Lang, Model);
                }
                _saverService.Save(Localization, _localizationModel);
            }
        }
        public static ExtendedHttpClient WithClient(this string path, ExtendedHttpClient client)
        {
            client.BaseUrl    = path;
            client.RequestUri = path;

            return(client);
        }
Ejemplo n.º 4
0
        private void InitIoC(Android.Content.Res.AssetManager assetManagerssets)
        {
            if (AppSettings.Container == null)
            {
                HttpClient = new ExtendedHttpClient();

                var builder           = new ContainerBuilder();
                var saverService      = new SaverService();
                var dataProvider      = new UserManager(saverService);
                var appInfo           = new AppInfo();
                var assetsHelper      = new AssetHelper(assetManagerssets);
                var connectionService = new ConnectionService();

                var localizationManager = new LocalizationManager(saverService, assetsHelper);
                var configManager       = new ConfigManager(saverService, assetsHelper);

                builder.RegisterInstance(assetsHelper).As <IAssetHelper>().SingleInstance();
                builder.RegisterInstance(appInfo).As <IAppInfo>().SingleInstance();
                builder.RegisterInstance(saverService).As <ISaverService>().SingleInstance();
                builder.RegisterInstance(dataProvider).As <UserManager>().SingleInstance();
                builder.RegisterInstance(connectionService).As <IConnectionService>().SingleInstance();
                builder.RegisterInstance(localizationManager).As <LocalizationManager>().SingleInstance();
                builder.RegisterInstance(configManager).As <ConfigManager>().SingleInstance();
                var configInfo      = assetsHelper.GetConfigInfo();
                var reporterService = new LogService(HttpClient, appInfo, configInfo.RavenClientDsn);
                builder.RegisterInstance(reporterService).As <ILogService>().SingleInstance();
                AppSettings.Container = builder.Build();

                MainChain   = AppSettings.User.Chain;
                SteemClient = new SteepshotApiClient(HttpClient, KnownChains.Steem);
                GolosClient = new SteepshotApiClient(HttpClient, KnownChains.Golos);
            }
        }
        public static async Task <T> PostXmlAsync <T>(this ExtendedHttpClient client, object model)
        {
            var xml      = model.XmlSerializeToString();
            var content  = new StringContent(xml, Encoding.UTF8, "application/xml");
            var response = await client.PostAsync(client.RequestUri, content);

            response.EnsureSuccessStatusCode();
            var responseBody = await response.Content.ReadAsStringAsync();

            return(responseBody.XmlDeserializeFromString <T>());
        }
        public static async Task <T> PostJsonAsync <T>(this ExtendedHttpClient client, object model)
        {
            var json     = JsonConvert.SerializeObject(model);
            var data     = new StringContent(json, Encoding.UTF8, "application/json");
            var response = await client.PostAsync(client.RequestUri, data);

            response.EnsureSuccessStatusCode();
            var resp = await response.Content.ReadAsStringAsync();

            return(JsonConvert.DeserializeObject <T>(resp));
        }
        public static async Task <HttpResponseMessage> PostXmlAsync <T>(this ExtendedHttpClient client, T model)
        {
            string xml = "";

            if (!(model is String) && !(model is string))
            {
                xml = model.XmlSerializeToString();
            }
            else
            {
                xml = model as string;
            }

            var content = new StringContent(xml, Encoding.UTF8, "application/xml");

            return(await client.PostAsync(client.RequestUri, content));
        }
Ejemplo n.º 8
0
        static BaseTests()
        {
            var builder = new ContainerBuilder();

            var saverService = new StubSaverService();
            var assetsHelper = new AssetsHelperStub();
            var lm           = new LocalizationManager(saverService, assetsHelper);

            builder.RegisterInstance(assetsHelper).As <IAssetHelper>().SingleInstance();
            builder.RegisterInstance(new StubAppInfo()).As <IAppInfo>().SingleInstance();
            builder.RegisterInstance(new UserManager(saverService)).As <UserManager>().SingleInstance();
            builder.RegisterInstance(saverService).As <ISaverService>().SingleInstance();
            builder.RegisterInstance(new StubConnectionService()).As <IConnectionService>().SingleInstance();
            builder.RegisterInstance(lm).As <LocalizationManager>().SingleInstance();
            builder.RegisterType <StubLogService>().As <ILogService>().SingleInstance();

            AppSettings.Container      = builder.Build();
            AppSettings.Settings.IsDev = IsDev;
            ExtendedHttpClient         = new ExtendedHttpClient();

            Users = new Dictionary <KnownChains, UserInfo>
            {
                { KnownChains.Steem, new UserInfo {
                      Login = ConfigurationManager.AppSettings["SteemLogin"], PostingKey = ConfigurationManager.AppSettings["SteemPostingWif"]
                  } },
                { KnownChains.Golos, new UserInfo {
                      Login = ConfigurationManager.AppSettings["GolosLogin"], PostingKey = ConfigurationManager.AppSettings["GolosPostingWif"]
                  } },
            };

            Api = new Dictionary <KnownChains, SteepshotApiClient>
            {
                { KnownChains.Steem, new SteepshotApiClient(ExtendedHttpClient, KnownChains.Steem) },
                { KnownChains.Golos, new SteepshotApiClient(ExtendedHttpClient, KnownChains.Golos) },
            };

            Api[KnownChains.Steem].SetDev(IsDev);
            Api[KnownChains.Golos].SetDev(IsDev);
        }
Ejemplo n.º 9
0
    public async Task <List <string?>?> TranslateBatchAsync(List <string> list, string from, string to)
    {
        var azureKey = AzureKey();

        if (string.IsNullOrEmpty(azureKey))
        {
            return(null);
        }

        object[] body = list.Select(s => new { Text = s }).ToArray();
        var      text = JsonSerializer.Serialize(body);

        using (var client = ExtendedHttpClient.GetClientWithProxy(Proxy?.Invoke()))
            using (var request = new HttpRequestMessage())
            {
                request.Method     = HttpMethod.Post;
                request.RequestUri = new Uri($"https://api.cognitive.microsofttranslator.com/translate?api-version=3.0&from={from}&to={to}");
                request.Content    = new StringContent(text, Encoding.UTF8, "application/json");
                request.Headers.Add("Ocp-Apim-Subscription-Key", azureKey);
                var region = Region?.Invoke();
                if (region.HasText())
                {
                    request.Headers.Add("Ocp-Apim-Subscription-Region", region);
                }

                var response = await client.SendAsync(request);

                response.EnsureSuccessStatusCode();
                var responseBody = await response.Content.ReadAsByteArrayAsync();

                TranslationResult[] deserializedOutput = JsonSerializer.Deserialize <TranslationResult[]>(responseBody, new JsonSerializerOptions {
                    PropertyNameCaseInsensitive = true
                }) !;

                return(deserializedOutput.Select(a => (string?)a.Translations.Single().Text).ToList());
            }
    }
 public static ExtendedHttpClient AppendPathSegment(this ExtendedHttpClient client, string uri)
 {
     client.RequestUri += "/" + uri;
     client.RequestUri.Replace("//", "/");
     return(client);
 }