public override async Task <BaseResponse> Execute(object query) { if (!(query is OrganizationRequest temp) || string.IsNullOrEmpty(temp.Query)) { throw new InvalidQueryException(query); } return(await HttpClientSingleton.GetInstance().SendResponseAsync <OrganizationResponse>(HttpMethod.Post, new Uri(Url), query)); }
/// <summary> /// Implementation IDadataApiClient /// </summary> /// <param name="options">Authentication options (Token required!)</param> /// <exception cref="InvalidTokenException">Throw if one from tokens is invalid</exception> public ApiClient(ApiClientOptions options) { if (string.IsNullOrEmpty(options.Token)) { throw new InvalidTokenException(); } Options = options; if (Options.LimitQueries != null && Options.LimitQueries <= 0) { throw new InvalidLimitQueriesException(Options.LimitQueries); } _limitQueries = Options.LimitQueries ?? (int)DefaultOptions.QueriesLimit; //Initialization of HttpClientSingleton HttpClientSingleton.GetInstance(options); //Reset count of messages per second (timer) ResetCountMessagesTimer = new Timer(ResetCounter, null, TimeSpan.Zero, TimeSpan.FromSeconds(1)); }