public QuorumExplorerClient(
     IHttpClientGenerator httpClientGenerator)
 {
     ContractsApi    = httpClientGenerator.Generate <IContractsApi>();
     EventsApi       = httpClientGenerator.Generate <IEventsApi>();
     TransactionsApi = httpClientGenerator.Generate <ITransactionsApi>();
 }
Ejemplo n.º 2
0
        private static async Task CheckAssetPairsApiWorking(IHttpClientGenerator clientGenerator)
        {
            var assetPairContract = new AssetPairContract
            {
                Id                     = "t1",
                Name                   = "1",
                BaseAssetId            = "1",
                QuoteAssetId           = "1",
                Accuracy               = 3,
                MarketId               = "1",
                LegalEntity            = "1",
                BasePairId             = "1",
                MatchingEngineMode     = MatchingEngineModeContract.MarketMaker,
                StpMultiplierMarkupBid = 1,
                StpMultiplierMarkupAsk = 1,
            };

            var assetPairsApiClient = clientGenerator.Generate <IAssetPairsApi>();
            await assetPairsApiClient.List().Dump();

            if (await assetPairsApiClient.Get("t1") == null)
            {
                await assetPairsApiClient.Insert(assetPairContract).Dump();
            }
            var obj = await assetPairsApiClient.Get("t1").Dump();

            //TODO validate values here
            await assetPairsApiClient.Update("t1", new AssetPairUpdateRequest
            {
                Id       = "t1",
                MarketId = "m11111"
            }).Dump();

            await assetPairsApiClient.Delete("t1");
        }
Ejemplo n.º 3
0
 /// <summary>C-tor</summary>
 public ReferralClient(IHttpClientGenerator httpClientGenerator)
 {
     ReferralApi        = httpClientGenerator.Generate <IReferralApi>();
     ReferralHotelsApi  = httpClientGenerator.Generate <IReferralHotelsApi>();
     ReferralFriendsApi = httpClientGenerator.Generate <IReferralFriendsApi>();
     CommonReferralApi  = httpClientGenerator.Generate <ICommonReferralApi>();
 }
 public CachedPayVolatilityClient(IHttpClientGenerator httpClientGenerator,
                                  IPayVolatilityServiceClientCacheSettings settings)
 {
     Volatility =
         new CachedVolatilityController(httpClientGenerator.Generate <IVolatilityController>(),
                                        settings);
 }
Ejemplo n.º 5
0
        private static async Task CheckTradingConditionsApiWorking(IHttpClientGenerator clientGenerator)
        {
            var tradingCondition = new TradingConditionContract
            {
                Id              = "t1",
                Name            = "1",
                LegalEntity     = "1",
                MarginCall1     = 1,
                MarginCall2     = 1,
                StopOut         = 1,
                DepositLimit    = 1,
                WithdrawalLimit = 1,
                LimitCurrency   = "1",
                BaseAssets      = new List <string>()
                {
                    "1"
                },
            };

            var tradingConditionApiClient = clientGenerator.Generate <ITradingConditionsApi>();
            await tradingConditionApiClient.List().Dump();

            if (await tradingConditionApiClient.Get("t1") == null)
            {
                await tradingConditionApiClient.Insert(tradingCondition).Dump();
            }
            await tradingConditionApiClient.Get("t1").Dump();

            tradingCondition.Name = "11111";
            await tradingConditionApiClient.Update("t1", tradingCondition).Dump();
        }
        //private static async Task CheckTradingConditionsApiWorking(IHttpClientGenerator clientGenerator)
        //{
        //    var tradingCondition = new TradingConditionContract
        //    {
        //        Id = "t1",
        //        Name = "1",
        //        LegalEntity = "1",
        //        MarginCall1 = 1,
        //        MarginCall2 = 1,
        //        StopOut = 1,
        //        DepositLimit = 1,
        //        WithdrawalLimit = 1,
        //        LimitCurrency = "1",
        //        BaseAssets = new List<string>(){"1"},
        //    };

        //    var tradingConditionApiClient = clientGenerator.Generate<ITradingConditionsApi>();
        //    await tradingConditionApiClient.List().Dump();
        //    if (await tradingConditionApiClient.Get("t1") == null)
        //        await tradingConditionApiClient.Insert(tradingCondition).Dump();
        //    await tradingConditionApiClient.Get("t1").Dump();
        //    tradingCondition.Name = "11111";
        //    await tradingConditionApiClient.Update("t1", tradingCondition).Dump();
        //}

        //private static async Task CheckTradingInstrumentsApiWorking(IHttpClientGenerator clientGenerator)
        //{
        //    var tradingInstrument = new TradingInstrumentContract
        //    {
        //        TradingConditionId = "t1",
        //        Instrument = "BTCUSD",
        //        LeverageInit = 1,
        //        LeverageMaintenance = 1,
        //        SwapLong = 1,
        //        SwapShort = 1,
        //        Delta = 1,
        //        DealMinLimit = 1,
        //        DealMaxLimit = 1,
        //        PositionLimit = 1,
        //        ShortPosition = true,
        //        LiquidationThreshold = 1000,
        //        CommissionRate = 1,
        //        CommissionMin = 1,
        //        CommissionMax = 1,
        //        CommissionCurrency = "1",
        //    };

        //    var tradingInstrumentApiClient = clientGenerator.Generate<ITradingInstrumentsApi>();
        //    await tradingInstrumentApiClient.List(null).Dump();
        //    await tradingInstrumentApiClient.Insert(tradingInstrument).Dump();
        //    tradingInstrument.LeverageInit = 2;
        //    await tradingInstrumentApiClient.Update("t1", "BTCUSD", tradingInstrument).Dump();
        //    await tradingInstrumentApiClient.AssignCollection("t1", new[] {"EURUSD", "EURCHF", "BTCUSD"}).Dump();
        //    foreach (var tradingInstrumentContract in await tradingInstrumentApiClient.List(null))
        //    {
        //        await tradingInstrumentApiClient.Delete(tradingInstrumentContract.TradingConditionId,
        //            tradingInstrumentContract.Instrument);
        //    }
        //}

        private static async Task CheckTradingRoutesApiWorking(IHttpClientGenerator clientGenerator)
        {
            var tradingRoute = new MatchingEngineRouteContract
            {
                Id   = "t1",
                Rank = 100,
                TradingConditionId = "t1",
                ClientId           = "1",
                Instrument         = "BTCUSD",
                Type                 = OrderDirectionContract.Buy,
                MatchingEngineId     = "m1",
                Asset                = "BTC",
                RiskSystemLimitType  = "11",
                RiskSystemMetricType = "11",
            };

            var tradingRouteApiClient = clientGenerator.Generate <ITradingRoutesApi>();
            await tradingRouteApiClient.List().Dump();

            await tradingRouteApiClient.Insert(tradingRoute).Dump();

            tradingRoute.Rank = 10000;
            await tradingRouteApiClient.Update("t1", tradingRoute).Dump();

            await tradingRouteApiClient.Delete("t1");
        }
Ejemplo n.º 7
0
 public static void RegisterMtDataReaderClientsPair(this IServiceCollection services, IHttpClientGenerator demo,
                                                    IHttpClientGenerator live)
 {
     services.AddSingleton <IMtDataReaderClientsPair>(p => new MtDataReaderClientsPair(
                                                          new MtDataReaderClient(demo),
                                                          new MtDataReaderClient(live)));
 }
 /// <summary>C-tor</summary>
 public CustomerManagementServiceClient(IHttpClientGenerator httpClientGenerator)
 {
     AuthApi      = httpClientGenerator.Generate <IAuthClient>();
     CustomersApi = httpClientGenerator.Generate <ICustomersClient>();
     EmailsApi    = httpClientGenerator.Generate <IEmailsClient>();
     PhonesApi    = httpClientGenerator.Generate <IPhonesClient>();
 }
 /// <summary>
 /// Initializes a new instance of <see cref="PartnerManagementClient"/> with <param name="httpClientGenerator"></param>.
 /// </summary>
 public PartnerManagementClient(IHttpClientGenerator httpClientGenerator)
 {
     Auth      = httpClientGenerator.Generate <IAuthApi>();
     Locations = httpClientGenerator.Generate <ILocationsApi>();
     Partners  = httpClientGenerator.Generate <IPartnersApi>();
     Linking   = httpClientGenerator.Generate <ILinkingApi>();
 }
Ejemplo n.º 10
0
 /// <summary>
 /// Initializes a new instance of <see cref="BitstampAdapterServiceClient"/> with <param name="httpClientGenerator"></param>.
 /// </summary>
 public BitstampAdapterServiceClient(IHttpClientGenerator httpClientGenerator)
 {
     Balances    = httpClientGenerator.Generate <IBalancesApi>();
     Deposits    = httpClientGenerator.Generate <IDepositsApi>();
     Transfers   = httpClientGenerator.Generate <ITransfersApi>();
     Withdrawals = httpClientGenerator.Generate <IWithdrawalsApi>();
 }
Ejemplo n.º 11
0
 public MtBackendClient(IHttpClientGenerator clientProxyGenerator)
 {
     ScheduleSettings      = clientProxyGenerator.Generate <IScheduleSettingsApi>();
     AccountsBalance       = clientProxyGenerator.Generate <IAccountsBalanceApi>();
     AssetPairsEdit        = clientProxyGenerator.Generate <IAssetPairsEditingApi>();
     TradingConditionsEdit = clientProxyGenerator.Generate <ITradingConditionsEditingApi>();
     Trading = clientProxyGenerator.Generate <ITradingApi>();
 }
Ejemplo n.º 12
0
 /// <summary>C-tor</summary>
 public LP3Client(IHttpClientGenerator httpClientGenerator)
 {
     SettingsApi         = httpClientGenerator.Generate <ISettingsApi>();
     OrdersApi           = httpClientGenerator.Generate <IOrdersApi>();
     TradesApi           = httpClientGenerator.Generate <ITradesApi>();
     BalancesApi         = httpClientGenerator.Generate <IBalancesApi>();
     OrderBookTradersApi = httpClientGenerator.Generate <IOrderBookTradersApi>();
 }
 /// <summary>C-tor</summary>
 public PartnersIntegrationClient(IHttpClientGenerator httpClientGenerator)
 {
     CustomersApi = httpClientGenerator.Generate <ICustomersApi>();
     ReferralsApi = httpClientGenerator.Generate <IReferralsApi>();
     BonusApi     = httpClientGenerator.Generate <IBonusApi>();
     PaymentsApi  = httpClientGenerator.Generate <IPaymentsApi>();
     MessagesApi  = httpClientGenerator.Generate <IMessagesApi>();
 }
Ejemplo n.º 14
0
 public TierClient(IHttpClientGenerator httpClientGenerator)
 {
     Countries       = httpClientGenerator.Generate <ICountriesApi>();
     UpgradeRequests = httpClientGenerator.Generate <ITierUpgradeRequestsApi>();
     Tiers           = httpClientGenerator.Generate <ITiersApi>();
     Limits          = httpClientGenerator.Generate <ILimitsApi>();
     Questionnaire   = httpClientGenerator.Generate <IQuestionnaireApi>();
     Deposits        = httpClientGenerator.Generate <IDepositsApi>();
 }
 /// <summary>
 /// Initializes a new instance of <see cref="SellOutEngineClient"/> with <param name="httpClientGenerator"></param>.
 /// </summary>
 public SellOutEngineClient(IHttpClientGenerator httpClientGenerator)
 {
     Balances    = httpClientGenerator.Generate <IBalancesApi>();
     Instruments = httpClientGenerator.Generate <IInstrumentsApi>();
     OrderBooks  = httpClientGenerator.Generate <IOrderBooksApi>();
     Reports     = httpClientGenerator.Generate <IReportsApi>();
     Settings    = httpClientGenerator.Generate <ISettingsApi>();
     Trades      = httpClientGenerator.Generate <ITradesApi>();
 }
Ejemplo n.º 16
0
 /// <summary>
 /// Initializes a new instance of <see cref="CampaignClient"/> with <param name="httpClientGenerator"></param>.
 /// </summary>
 public CampaignClient(IHttpClientGenerator httpClientGenerator)
 {
     BonusTypes = httpClientGenerator.Generate <IBonusTypesApi>();
     BurnRules  = httpClientGenerator.Generate <IBurnRulesApi>();
     Campaigns  = httpClientGenerator.Generate <ICampaignsApi>();
     Conditions = httpClientGenerator.Generate <IConditionsApi>();
     History    = httpClientGenerator.Generate <IHistoryApi>();
     Mobile     = httpClientGenerator.Generate <IMobileApi>();
 }
Ejemplo n.º 17
0
 /// <summary>
 ///    Client constructor.
 /// </summary>
 public QuorumOperationExecutorClient(
     IHttpClientGenerator httpClientGenerator)
 {
     OperationsApi   = httpClientGenerator.Generate <IQuorumOperationExecutorOperationsApi>();
     TokensApi       = httpClientGenerator.Generate <IQuorumOperationExecutorTokensApi>();
     AddressesApi    = httpClientGenerator.Generate <IQuorumOperationExecutorAddressesApi>();
     TransactionsApi = httpClientGenerator.Generate <IQuorumOperationExecutorTransactionsApi>();
     FeesApi         = httpClientGenerator.Generate <IQuorumOperationExecutorFeesApi>();
 }
        //private static async Task CheckAssetPairsApiWorking(IHttpClientGenerator clientGenerator)
        //{
        //    var assetPairContract = new AssetPairContract
        //    {
        //        Id = "t1",
        //        Name = "1",
        //        BaseAssetId = "1",
        //        QuoteAssetId = "1",
        //        Accuracy = 3,
        //        MarketId = "1",
        //        LegalEntity = "1",
        //        BasePairId = "1",
        //        MatchingEngineMode = MatchingEngineModeContract.MarketMaker,
        //        StpMultiplierMarkupBid = 1,
        //        StpMultiplierMarkupAsk = 1,
        //    };

        //    var assetPairsApiClient = clientGenerator.Generate<IAssetPairsApi>();
        //    await assetPairsApiClient.List().Dump();
        //    if (await assetPairsApiClient.Get("t1") == null)
        //        await assetPairsApiClient.Insert(assetPairContract).Dump();
        //    var obj = await assetPairsApiClient.Get("t1").Dump();
        //    //TODO validate values here
        //    await assetPairsApiClient.Update("t1", new AssetPairUpdateRequest
        //    {
        //        Id = "t1",
        //        MarketId = "m11111"
        //    }).Dump();
        //    await assetPairsApiClient.Delete("t1");
        //}

        //private static async Task CheckAssetsApiWorking(IHttpClientGenerator clientGenerator)
        //{
        //    var asset = new AssetContract
        //    {
        //        Id = "t1",
        //        Name = "1",
        //        Accuracy = 3,
        //    };

        //    var assetsApiClient = clientGenerator.Generate<IAssetsApi>();
        //    await assetsApiClient.List().Dump();
        //    await assetsApiClient.Insert(asset).Dump();
        //    await assetsApiClient.Get("t1").Dump();
        //    asset.Name = "2";
        //    await assetsApiClient.Update("t1", asset).Dump();
        //    await assetsApiClient.Delete("t1");
        //}

        //private static async Task CheckMarketsApiWorking(IHttpClientGenerator clientGenerator)
        //{
        //    var market = new MarketContract
        //    {
        //        Id = "m1",
        //        Name = "1",
        //    };

        //    var marketApiClient = clientGenerator.Generate<IMarketsApi>();
        //    await marketApiClient.List().Dump();
        //    await marketApiClient.Insert(market).Dump();
        //    await marketApiClient.Get("m1").Dump();
        //    market.Name = "1111";
        //    await marketApiClient.Update("m1", market).Dump();
        //    await marketApiClient.Delete("m1");
        //}

        //private static async Task CheckScheduleSettingsApiWorking(IHttpClientGenerator clientGenerator)
        //{
        //    var scheduleSettings = new ScheduleSettingsContract
        //    {
        //        Id = "s1",
        //        Rank = 1000,
        //        AssetPairRegex = "",
        //        AssetPairs = new HashSet<string>(){"EURUSD"},
        //        MarketId = "1",
        //        IsTradeEnabled = true,
        //        PendingOrdersCutOff = null,
        //        Start = new ScheduleConstraintContract{Date = null, DayOfWeek = DayOfWeek.Friday, Time = new TimeSpan(0,0,0)},
        //        End = new ScheduleConstraintContract{Date = null, DayOfWeek = DayOfWeek.Sunday, Time = new TimeSpan(0,0,0)},
        //    };

        //    var scheduleSettingsApiClient = clientGenerator.Generate<IScheduleSettingsApi>();
        //    await scheduleSettingsApiClient.List().Dump();
        //    await scheduleSettingsApiClient.Insert(scheduleSettings).Dump();
        //    await scheduleSettingsApiClient.Get("s1").Dump();
        //    scheduleSettings.Rank = 100000;
        //    await scheduleSettingsApiClient.Update("s1", scheduleSettings).Dump();
        //    await scheduleSettingsApiClient.StateList(new[] {"EURUSD"}).Dump();
        //    await scheduleSettingsApiClient.Delete("s1");
        //}

        private static async Task CheckServiceMaintenanceApiWorking(IHttpClientGenerator clientGenerator)
        {
            var serviceMaintenanceApiClient = clientGenerator.Generate <IServiceMaintenanceApi>();
            await serviceMaintenanceApiClient.Get().Dump();

            await serviceMaintenanceApiClient.Post(true).Dump();

            await serviceMaintenanceApiClient.Post(false).Dump();
        }
 /// <summary>C-tor</summary>
 public CryptoIndexClient(IHttpClientGenerator httpClientGenerator)
 {
     AssetsInfo   = httpClientGenerator.Generate <IAssetsInfoApi>();
     IndexHistory = httpClientGenerator.Generate <IIndexHistoryApi>();
     Public       = httpClientGenerator.Generate <IPublicApi>();
     Settings     = httpClientGenerator.Generate <ISettingsApi>();
     TickPrices   = httpClientGenerator.Generate <ITickPricesApi>();
     Warnings     = httpClientGenerator.Generate <IWarningsApi>();
 }
Ejemplo n.º 20
0
 /// <summary>
 /// Initializes a new instance of <see cref="EasyBuyClient"/> with <param name="httpClientGenerator"></param>.
 /// </summary>
 public EasyBuyClient(IHttpClientGenerator httpClientGenerator)
 {
     BalancesApi    = httpClientGenerator.Generate <IBalancesApi>();
     InstrumentsApi = httpClientGenerator.Generate <IInstrumentsApi>();
     OrdersApi      = httpClientGenerator.Generate <IOrdersApi>();
     PricesApi      = httpClientGenerator.Generate <IPricesApi>();
     SettingsApi    = httpClientGenerator.Generate <ISettingsApi>();
     TradesApi      = httpClientGenerator.Generate <ITradesApi>();
     ExchangesApi   = httpClientGenerator.Generate <IExchangesApi>();
 }
        private static async Task CheckAccountsApiWorking(IHttpClientGenerator clientGenerator)
        {
            var client = clientGenerator.Generate <IAccountsApi>();
            await client.List().Dump();

            var accountResponse = await client.Create(new CreateAccountRequest
                                                      { ClientId = "client1", TradingConditionId = "tc1", BaseAssetId = "ba1" }).Dump();

            await client.GetByClientAndId("client1", accountResponse.Content.Id).Dump();
        }
Ejemplo n.º 22
0
 /// <summary>
 /// Initializes a new instance of <see cref="MarketMakerReportsClient"/> with <param name="httpClientGenerator"></param>.
 /// </summary>
 public MarketMakerReportsClient(IHttpClientGenerator httpClientGenerator)
 {
     AuditMessagesApi      = httpClientGenerator.Generate <IAuditMessagesApi>();
     InventorySnapshotsApi = httpClientGenerator.Generate <IInventorySnapshotsApi>();
     LykkeTradesApi        = httpClientGenerator.Generate <ILykkeTradesApi>();
     ExternalTradesApi     = httpClientGenerator.Generate <IExternalTradesApi>();
     PnLApi = httpClientGenerator.Generate <IPnLApi>();
     RealisedPnLSettings = httpClientGenerator.Generate <IRealisedPnLSettingsApi>();
     HealthIssuesApi     = httpClientGenerator.Generate <IHealthIssuesApi>();
 }
 /// <summary>
 /// Initializes a new instance of <see cref="SmartOrderRouterClient"/> with <param name="httpClientGenerator"></param>.
 /// </summary>
 public SmartOrderRouterClient(IHttpClientGenerator httpClientGenerator)
 {
     Balances            = httpClientGenerator.Generate <IBalancesApi>();
     Exchanges           = httpClientGenerator.Generate <IExchangesApi>();
     ExternalLimitOrders = httpClientGenerator.Generate <IExternalLimitOrdersApi>();
     MarketOrders        = httpClientGenerator.Generate <IMarketOrdersApi>();
     OrderBooks          = httpClientGenerator.Generate <IOrderBooksApi>();
     Quotes   = httpClientGenerator.Generate <IQuotesApi>();
     Reports  = httpClientGenerator.Generate <IReportsApi>();
     Settings = httpClientGenerator.Generate <ISettingsApi>();
 }
 /// <summary>
 /// Initializes a new instance of <see cref="CustomerProfileClient"/> with <param name="httpClientGenerator"></param>.
 /// </summary>
 public CustomerProfileClient(IHttpClientGenerator httpClientGenerator)
 {
     AdminProfiles          = httpClientGenerator.Generate <IAdminProfilesApi>();
     CustomerProfiles       = httpClientGenerator.Generate <ICustomerProfileApi>();
     PartnerContact         = httpClientGenerator.Generate <IPartnerContactApi>();
     ReferralHotelProfiles  = httpClientGenerator.Generate <IReferralHotelProfilesApi>();
     ReferralLeadProfiles   = httpClientGenerator.Generate <IReferralLeadProfilesApi>();
     ReferralFriendProfiles = httpClientGenerator.Generate <IReferralFriendProfilesApi>();
     Statistics             = httpClientGenerator.Generate <IStatisticsApi>();
     CustomerPhones         = httpClientGenerator.Generate <ICustomerPhonesApi>();
 }
Ejemplo n.º 25
0
 /// <summary>C-tor</summary>
 public PrivateBlockchainFacadeClient(IHttpClientGenerator httpClientGenerator)
 {
     WalletsApi          = httpClientGenerator.Generate <IWalletsApi>();
     OperationsApi       = httpClientGenerator.Generate <IOperationsApi>();
     TokensApi           = httpClientGenerator.Generate <ITokensApi>();
     BonusesApi          = httpClientGenerator.Generate <IBonusesApi>();
     CustomersApi        = httpClientGenerator.Generate <ICustomersApi>();
     TransfersApi        = httpClientGenerator.Generate <ITransfersApi>();
     GenericTransfersApi = httpClientGenerator.Generate <IGenericTransfersApi>();
     FeesApi             = httpClientGenerator.Generate <IFeesApi>();
 }
Ejemplo n.º 26
0
        public ChestClientAdapter(IHttpClientGenerator metadataGenerator, IHttpClientGenerator rootGenerator = null)
        {
            Metadata = new Metadata(metadataGenerator.Generate <Api.IMetadata>());
            if (rootGenerator != null)
            {
                Root = new Root(rootGenerator.Generate <IIsAlive>());
            }

            AuditApi           = metadataGenerator.Generate <IAuditApi>();
            LocalesApi         = metadataGenerator.Generate <ILocalesApi>();
            LocalizedValuesApi = metadataGenerator.Generate <ILocalizedValuesApi>();
        }
Ejemplo n.º 27
0
 public MtDataReaderClient(IHttpClientGenerator clientGenerator)
 {
     AssetPairsRead        = clientGenerator.Generate <IAssetPairsReadingApi>();
     AccountHistory        = clientGenerator.Generate <IAccountHistoryApi>();
     AccountsApi           = clientGenerator.Generate <IAccountsApi>();
     AccountAssetPairsRead = clientGenerator.Generate <IAccountAssetPairsReadingApi>();
     TradeMonitoringRead   = clientGenerator.Generate <ITradeMonitoringReadingApi>();
     TradingConditionsRead = clientGenerator.Generate <ITradingConditionsReadingApi>();
     AccountGroups         = clientGenerator.Generate <IAccountGroupsReadingApi>();
     Dictionaries          = clientGenerator.Generate <IDictionariesReadingApi>();
     Routes   = clientGenerator.Generate <IRoutesReadingApi>();
     Settings = clientGenerator.Generate <ISettingsReadingApi>();
 }
Ejemplo n.º 28
0
        private static async Task run1(IHttpClientGenerator httpClientGenerator)
        {
            System.Console.Out.WriteLine(
                $"Calling 'https://www.github.com' using the predefined named configuration 'github'"
                );
            using (var httpClient = httpClientGenerator.CreateHttpClient("github")) {
                var responce = await httpClient.GetAsync("");

                System.Console.Out.WriteLine($"StatusCode: {responce.StatusCode}");
            }
            // The httpClient is disposed - but not the socket (PrimaryHandler).
            // Within 2 minutes the socket will be reused - if a CreateHttpClient is called.
            // Being 2 minutes unused the socket will be disposed.
        }
Ejemplo n.º 29
0
        private static async Task run3(string urlOfSampleServer, IHttpClientGenerator httpClientGenerator)
        {
            System.Console.Out.WriteLine(
                $"Calling '{urlOfSampleServer}' using a dynamic configuration"
                );
            int loop          = 0;
            var configuration = new HttpClientConfiguration()
            {
                Name          = "dynamicHttpSampleServer",
                Discriminator = "anonymous",
                BaseAddress   = urlOfSampleServer,
            };

            configuration.PrimaryHandlerConfigurations.Add((builder) => {
                System.Console.Out.WriteLine($"This is called only once in the loop {loop} for PrimaryHandlerConfigurations.");

                // enable windows-auth
                builder.EnsurePrimaryHandler().UseDefaultCredentials = true;

                // you can call
                // builder.AdditionalHandlers.Add
                // you don't need to do it seperatly
            });
            configuration.AdditionalHandlerConfigurations.Add((builder) => {
                System.Console.Out.WriteLine($"This is called only once in the loop {loop} for AdditionalHandlerConfigurations.");

                builder.AdditionalHandlers.Add(
                    new WhateverDelegatingHandler("you")
                    );
            });

            configuration.HttpClientConfigurations.Add((HttpClient, httpClientConfiguration) => {
                System.Console.Out.WriteLine($"This is called for each request - now in the loop {loop} for HttpClientConfigurations.");
            });

            for (loop = 0; loop < 3; loop++)
            {
                using (var httpClient = httpClientGenerator.CreateHttpClient(configuration)) {
                    var responce = await httpClient.GetAsync("");

                    var content = await responce.Content.ReadAsStringAsync();

                    System.Console.Out.WriteLine($"Responce: {responce.StatusCode} {content}");
                }
            }
        }
        private static async Task CheckAccountsBalabceHistoryApiWorking(IHttpClientGenerator clientGenerator)
        {
            var client  = clientGenerator.Generate <IAccountBalanceHistoryApi>();
            var history = await client.ByAccount("AA0011").Dump();

            var record = history?.FirstOrDefault();

            if (record != null)
            {
                var account          = record.Value.Key;
                var historyByAccount = await client.ByAccount(account).Dump();

                var historyByAccountAndEvent = await client.ByAccountAndEventSource(account).Dump();

                var date    = record.Value.Value.FirstOrDefault()?.ChangeTimestamp ?? DateTime.UtcNow;
                var balance = await client.GetBalanceOnDate(account, date).Dump();
            }
        }