diff Stocks/Stocks.Common/ConfigurationService.cs @ 0:e5d46bb6cdb0

Initial commit
author adminSH stevenhollidge@hotmail.com
date Mon, 20 Feb 2012 13:52:35 +0700
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Stocks/Stocks.Common/ConfigurationService.cs	Mon Feb 20 13:52:35 2012 +0700
@@ -0,0 +1,42 @@
+using System;
+using System.Collections.Generic;
+using Stocks.Common;
+using Stocks.Common.Core;
+using Stocks.Common.Models;
+using Newtonsoft.Json;
+
+namespace Stocks.Common
+{
+  public class ConfigurationService : IConfigurationService
+  {
+    private string jsonFilename;
+    private string serviceUrlPrefix = "http://finance.yahoo.com/d/quotes.csv?s=";
+    private string serviceUrlSuffix = "&f=snl1";
+
+    public ConfigurationService(string filename)
+    {
+      jsonFilename = filename;
+    }
+    public List<Company> GetCompanies()
+    {
+      return new FileSerializer().DeserializeJson<Company>(jsonFilename);
+    }
+
+    public string GetServiceUrl(string symbolCsv)
+    {
+      if (string.IsNullOrEmpty(symbolCsv))
+        throw new ArgumentException();
+
+      return string.Concat(serviceUrlPrefix, symbolCsv, serviceUrlSuffix);
+    }
+
+    public string GetServiceUrl(string[] symbols)
+    {
+      if (symbols == null || symbols.Length == 0)
+        throw new ArgumentException();
+      
+      var symbolCsv = string.Join(",", symbols);
+      return GetServiceUrl(symbolCsv);
+    }
+  }
+}
\ No newline at end of file