コード例 #1
0
        public async Task <FinancialData> GetQuarterlyFinancialData(string symbolId, int year, EntityModel periodEntity)
        {
            var queryString = new Dictionary <string, string>()
            {
                { "period", "quarter" }
            };
            var periods = new Dictionary <int, string[]>()
            {
                { 1, new string[] { "1st", "first", "I" } },
                { 2, new string[] { "2nd", "second", "II" } },
                { 3, new string[] { "3rd", "third", "III" } },
                { 4, new string[] { "4th", "fourth", "IV" } },
            };
            int period = 1;

            foreach (KeyValuePair <int, string[]> entry in periods)
            {
                if (entry.Value.Contains(periodEntity.Entity))
                {
                    period = entry.Key;
                }
            }
            var requestUri = QueryHelpers.AddQueryString("financials/income-statement/" + symbolId, queryString);
            var request    = new HttpRequestMessage(HttpMethod.Get, requestUri);

            request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            var response = await _httpClient.SendAsync(request);

            response.EnsureSuccessStatusCode();

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

            IncomeStatementModel incomeModel = JsonConvert.DeserializeObject <IncomeStatementModel>(content);
            var financial = incomeModel.Financials.Find(financialData => DateTime.Parse(financialData.Date).Year == year && GetQuarter(DateTime.Parse(financialData.Date).Month) == period);

            if (financial == null && year == DateTime.Now.Year)
            {
                return(incomeModel.Financials.Find(financialData => DateTime.Parse(financialData.Date).Year == year - 1 && GetQuarter(DateTime.Parse(financialData.Date).Month) == period));
            }
            else
            {
                return(financial);
            }
        }
コード例 #2
0
        public async Task <FinancialData> GetAnnualFinancialData(string symbolId, int year)
        {
            var request = new HttpRequestMessage(HttpMethod.Get, "financials/income-statement/" + symbolId);

            request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            var response = await _httpClient.SendAsync(request);

            response.EnsureSuccessStatusCode();

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

            IncomeStatementModel incomeModel = JsonConvert.DeserializeObject <IncomeStatementModel>(content);
            var financial = incomeModel.Financials.Find(financialData => DateTime.Parse(financialData.Date).Year == year);

            if (financial == null && year == DateTime.Now.Year)
            {
                return(incomeModel.Financials.Find(financialData => DateTime.Parse(financialData.Date).Year == year - 1));
            }
            else
            {
                return(financial);
            }
        }