20
|
1 using System;
|
|
2 using System.Collections.Generic;
|
|
3 using Stocks.Common;
|
|
4 using Stocks.Common.Core;
|
|
5 using Stocks.Common.Models;
|
|
6 using Newtonsoft.Json;
|
|
7
|
|
8 namespace Stocks.Common
|
|
9 {
|
|
10 public class ConfigurationService : IConfigurationService
|
|
11 {
|
|
12 private string jsonFilename;
|
|
13 private string serviceUrlPrefix = "http://finance.yahoo.com/d/quotes.csv?s=";
|
|
14 private string serviceUrlSuffix = "&f=snl1";
|
|
15
|
|
16 public ConfigurationService(string filename)
|
|
17 {
|
|
18 jsonFilename = filename;
|
|
19 }
|
|
20 public List<Company> GetCompanies()
|
|
21 {
|
|
22 return new FileSerializer().DeserializeJson<Company>(jsonFilename);
|
|
23 }
|
|
24
|
|
25 public string GetServiceUrl(string symbolCsv)
|
|
26 {
|
|
27 if (string.IsNullOrEmpty(symbolCsv))
|
|
28 throw new ArgumentException();
|
|
29
|
|
30 return string.Concat(serviceUrlPrefix, symbolCsv, serviceUrlSuffix);
|
|
31 }
|
|
32
|
|
33 public string GetServiceUrl(string[] symbols)
|
|
34 {
|
|
35 if (symbols == null || symbols.Length == 0)
|
|
36 throw new ArgumentException();
|
|
37
|
|
38 var symbolCsv = string.Join(",", symbols);
|
|
39 return GetServiceUrl(symbolCsv);
|
|
40 }
|
|
41 }
|
|
42 } |