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)); }
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); }
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)); }
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); }
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); }