Пример #1
0
        public IEnumerable <Post> GetPosts(int limit)
        {
            var posts     = new List <Post>();
            var validator = _validatorFactory.GetValidator <Post>();

            // Get ids of top stories
            var ids = _httpClientWrapper.Get <List <int> >(TopStoriesUri).GetRange(0, limit);

            // Load each item
            for (int i = 0; i < ids.Count; i++)
            {
                //TODO: make this async and run in parallel
                var item = _httpClientWrapper.Get <HackerNewsItem>($"{ItemBaseUrl}/{ids[i]}.json");

                // Map to post - could use Automapper here but it's easier to do it manually here with the index/ranking
                var post = new Post()
                {
                    Author   = item.By,
                    Comments = item.Descendants,
                    Points   = item.Score,
                    Rank     = i + 1, //Items are already sorted when we retrieve them
                    Title    = item.Title,
                    Uri      = item.Url
                };

                // Add only if pass validation
                if (validator.Validate(post).IsValid)
                {
                    posts.Add(post);
                }
            }

            return(posts);
        }
Пример #2
0
        public async Task <List <BuildConfigSummary> > GetAll()
        {
            string requestUri = "/app/rest/buildTypes";

            List <BuildConfigSummary> buildConfigs = await _http.Get <List <BuildConfigSummary> >(requestUri);

            return(buildConfigs);
        }
Пример #3
0
        public async Task <IEnumerable <RevenueObjectBasedAssessmentEventDto> > ListAsync(int assessmentEventId)
        {
            assessmentEventId.ThrowBadRequestExceptionIfInvalid("AssessmentEventId");

            return(await _httpClientWrapper.Get <List <RevenueObjectBasedAssessmentEventDto> >(
                       _applicationSettingsHelper.AssessmentEventServiceApiUrl,
                       $"{Version}/AssessmentEvents/{assessmentEventId}/RevenueObjectBasedAssessmentEvents"));
        }
Пример #4
0
        public async Task<EmpRefLevyInformation> GetEmprefInformation(string authToken, string empRef)
        {
            return await _executionPolicy.ExecuteAsync(async () =>
            {
                var url = $"apprenticeship-levy/epaye/{HttpUtility.UrlEncode(empRef)}";

                return await _httpClientWrapper.Get<EmpRefLevyInformation>(authToken, url);
            });
        }
Пример #5
0
        public async Task <DadJokesViewModel> GetDadJokesBySearchTerm(string searchTerm)
        {
            var searchUrl = $"{_serviceUrl}/search?term={searchTerm}&limit={_limit}";
            var dadJokeResponseMessage = await _httpClient.Get(searchUrl);

            var dadJokes = await ProcessDadJokesList(dadJokeResponseMessage, searchTerm);

            return(dadJokes);
        }
Пример #6
0
 public List <Photo> GetPhotos()
 {
     try
     {
         var result = _httpClientWrapper.Get($"{_config.Value.PhotoAlbumBaseAddress}/photos");
         return(JsonConvert.DeserializeObject <List <Photo> >(result));
     }
     catch (Exception)
     {
         return(new List <Photo>());
     }
 }
        public async Task <CompanyInformation> GetInformation(string id)
        {
            return(await _executionPolicy.ExecuteAsync(async() =>
            {
                _logger.Info($"GetInformation({id})");

                id = id?.ToUpper();

                var result = await _httpClientWrapper.Get <CompanyInformation>(
                    $"{Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(_configuration.CompaniesHouse.ApiKey))}",
                    $"{_configuration.CompaniesHouse.BaseUrl}/company/{id}");
                return result;
            }));
        }
Пример #8
0
        private void GetUsers(bool useCache)
        {
            IEnumerable <User> users = null;

            if (useCache)
            {
                users = this.cache.Get <IEnumerable <User> >("users");
            }

            if (users == null)
            {
                users = client.Get <IEnumerable <User> >("api/users").Item1;
            }

            Users = users;
        }
Пример #9
0
        /* ASYNC ACTION METHOD... IF REQUIRED... */
        //        public async Task<ViewResult> Index()
        //        {
        //        }

        public ViewResult Index()
        {
            var questionnaire = httpClientWrapper.Get("http://localhost/QuestionServiceWebApi/api/Questions/Get");
            var model         = new JavaScriptSerializer().Deserialize <QuestionnaireViewModel>(questionnaire);

            return(View(model));
        }
Пример #10
0
        public void OnPost()
        {
            var startTime = DateTime.Now;

            Cluster = client.Get <Cluster>($"api/hierarchicalclustering?usecache={UseCache}").Item1;

            Duration = DateTime.Now - startTime;
        }
Пример #11
0
        public async Task <List <File> > GetFiles()
        {
            List <File> files = await _http.Get <List <File> >(Href);

            files.ForEach(x => x.Initialize(_http));

            return(files);
        }
        public void OnPost()
        {
            var startTime = DateTime.Now;

            Cluster = client.Get <IEnumerable <Centroid> >(
                $"api/kmeansclustering?numberofclusters={NumberOfClusters}&numberofiterations={NumberOfIterations}").Item1;

            Duration = DateTime.Now - startTime;
        }
        public async Task <(IEnumerable <TransactionDto> transactions, Error error)> GetTransactions(string accountNumber)
        {
            JToken transactionsJobject = JToken.Parse((await _httpClientWrapper.Get($"http://fairwaybank-bizfitech.azurewebsites.net/api/v1/accounts/{accountNumber}/transactions")));

            if (transactionsJobject is JObject)
            {
                return(null, new Error(transactionsJobject.Value <string>("message")));
            }

            var transactions = ((JArray)transactionsJobject).Select(x => new TransactionDto
            {
                Amount      = x.Value <decimal>("amount") * (x.Value <string>("type") == "Credit" ? 1 : -1),
                ClearedDate = x.Value <DateTime>("bookedDate"),
                Merchant    = x.Value <string>("transactionInformation")
            });

            return(transactions, null);
        }
Пример #14
0
        public async Task <List <string> > ScrapeUrls(string domain, string url)
        {
            var fullUrl        = $"https://{domain}{url}";
            var webPageContent = await _httpClientWrapper.Get(fullUrl);

            var urls = _urlExtractor.ExtractUrlsFromPage(webPageContent);

            urls = _urlFilter.Filter(domain, urls);

            return(urls);
        }
        public async Task Returns_response_from_http_client_when_authenticated(string expectedResponse)
        {
            _httpClientWrapper
            .Get(Arg.Is("web-address"), Arg.Any <IDictionary <string, string> >())
            .Returns(AuthorizedResponse(expectedResponse));

            var result = await _sut.GetAsync <JsonResponse>("web-address");

            Assert.That(result.Value, Is.EqualTo(expectedResponse));
        }
        private async Task <HalPage <T> > GetPage <T>(string pageUrl)
        {
            var response = await _httpClientWrapper.Get(pageUrl);

            if (response == null)
            {
                return(null);
            }
            var page = JsonConvert.DeserializeObject <HalPage <T> >(response);

            return(page);
        }
Пример #17
0
        public async Task <List <File> > GetChildren()
        {
            if (ChildrenHref == null)
            {
                return(new List <File>());
            }

            List <File> files = await _http.Get <List <File> >(ChildrenHref);

            files.ForEach(file => file.Initialize(_http));

            return(files);
        }
Пример #18
0
        private async Task <T> CallAuthService <T>(long accountId, Action <Exception> OnError = null)
        {
            var accessToken = await _azureAdAuthService.GetAuthenticationResult(
                _apiClientConfiguration.ClientId,
                _apiClientConfiguration.ClientSecret,
                _apiClientConfiguration.IdentifierUri,
                _apiClientConfiguration.Tenant);

            try
            {
                return(await _httpClient.Get <T>(accessToken, GetUrl(typeof(T), accountId)));
            }
            catch (ResourceNotFoundException ex)
            {
                OnError?.Invoke(ex);
                _logger.Error(ex, $"ResourceNotFoundException returned from forecast API for account ID: {accountId}");
                return(default(T));
            }
            catch (HttpException ex)
            {
                OnError?.Invoke(ex);

                switch (ex.StatusCode)
                {
                case 400:
                    _logger.Error(ex, $"Bad request sent to forecast API for account ID: {accountId}");
                    break;

                case 408:
                    _logger.Error(ex, $"Request sent to forecast API for account ID: {accountId} timed out");
                    break;

                case 429:
                    _logger.Error(ex, $"To many requests sent to forecast API for account ID: {accountId}");
                    break;

                case 500:
                    _logger.Error(ex, $"Forecast API reported internal Server error for account ID: {accountId}");
                    break;

                case 503:
                    _logger.Error(ex, "Forecast API is unavailable");
                    break;

                default: throw;
                }

                return(default(T));
            }
        }
Пример #19
0
        public async Task <Build> ById(long id)
        {
            string requestUri = string.Format("/app/rest/builds/id:{0}", id);

            var build = await _http.Get <Build>(requestUri);

            build.ArtifactsReference.Initialize(_http);

            return(build);
        }
        /// <summary>
        /// get the share price for a particular symbol.
        /// </summary>
        /// <param name="Url"></param>
        /// <param name="symbol"></param>
        /// <param name="apiKey"></param>
        /// <returns></returns>

        public async Task <ShareViewModel> getSharePrice(AppSettings settings, double amount)
        {
            decimal sharePriceCents;
            var     url    = settings.AlphavantageApiUrl + $"&symbol={settings.Symbol}&apikey={settings.ApiKey}";
            var     result = await _httpclientWrapper.Get(url);

            dynamic data  = JObject.Parse(result.ToString());
            string  value = data["Global Quote"]["05. price"].Value;

            sharePriceCents = Decimal.Parse(!string.IsNullOrEmpty(value) ? value.Substring(0, value.IndexOf('.')) : "0");
            double sharePriceRands = ((double)sharePriceCents * 1.0) / 100;

            return(new ShareViewModel()
            {
                SharePrice = sharePriceRands, NumberOfShares = amount / (sharePriceRands * 1.0)
            });
        }
Пример #21
0
        public void OnPost()
        {
            if (string.IsNullOrWhiteSpace(SearchQuery))
            {
                return;
            }

            var query      = string.Join('+', SearchQuery.Split(' ', StringSplitOptions.RemoveEmptyEntries));
            var requestUri = $"api/search?query={query}&take=5&applypageranking={ApplyPageRanking}";
            var startTime  = DateTime.Now;

            var result = client.Get <IEnumerable <ScoredPage> >(requestUri);

            Duration = DateTime.Now - startTime;

            if (result.Item2 == System.Net.HttpStatusCode.OK)
            {
                ScoredPages = result.Item1;
            }
        }
Пример #22
0
 public async Task <IEnumerable <GrmEventInformationDto> > GetAsync(int revenueObjectId, DateTime asOf)
 {
     return((await _httpClientWrapper.Get <IEnumerable <GrmEventInformationDto> >(Url,
                                                                                  $"{Version}/GrmEvents/GrmEventInformation/RevObjId/{revenueObjectId}/EffectiveDate/{asOf:yyyy-MM-dd}")).ToList());
 }
Пример #23
0
        private async Task <T> GetResource <T>(string path)
        {
            var finalUrl = UrlConstructor.ConstructUri(path);

            return(await _httpClientWrapper.Get <T>(finalUrl));
        }
Пример #24
0
        public async Task <VcsRootInstance> ById(string id)
        {
            string requestUri = $"/app/rest/vcs-root-instances/id:{id}";

            return(await _http.Get <VcsRootInstance>(requestUri));
        }
 public async Task <BaseValueSegmentDto> GetAsync(int baseValueSegmentId)
 {
     return(await _httpClientWrapper.Get <BaseValueSegmentDto>(Url, $"{Version}/BaseValueSegments/{baseValueSegmentId}"));
 }
Пример #26
0
        public async Task <T> GetAsync <T>(string url)
        {
            var headers = GetHeaders();

            return(await CallApi <T>(headers, () => _httpClientWrapper.Get(url, headers)));
        }
 public Task <Result <Image, Error> > ReplaceAsync(Name galleryName, Id imageId, string url, Option <byte[]> meta)
 {
     return(_httpClient.Get(url).AndThenAsync(data => ReplaceAsync(galleryName, imageId, data, meta)));
 }
Пример #28
0
 public void OnGet()
 {
     Users = client.Get <IEnumerable <User> >("api/users").Item1;
 }
Пример #29
0
        public async Task<List<ProjectSummary>> GetAll()
        {
            var projects = await _http.Get<List<ProjectSummary>>(_baseUri);

            return projects;
        }
Пример #30
0
        public async Task <VcsRoot> ById(string id)
        {
            string requestUri = string.Format("/app/rest/vcs-roots/id:{0}", id);

            return(await _http.Get <VcsRoot>(requestUri));
        }