main
 1using System;
 2using System.IO;
 3using System.Net;
 4using gorilla.utility;
 5using Newtonsoft.Json;
 6using solidware.financials.messages;
 7
 8namespace solidware.financials.service.handlers
 9{
10    public class GoogleLookupService : StockPriceLookupService
11    {
12        public CurrentStockPrice FindPriceFor(string symbol)
13        {
14            //www.google.com/finance/info?infotype=infoquoteall&q=C,JPM,AIG
15            try
16            {
17                dynamic convert = JsonConvert.DeserializeObject(Open("http://www.google.com/finance/info?infotype=infoquoteall&q={0}".format(symbol)).Remove(0, 4));
18                var item = convert[0];
19                Console.Out.WriteLine(item);
20                var price = MapFrom(item);
21                price.Symbol = symbol;
22                return price;
23            }
24            catch (Exception e)
25            {
26                Console.Out.WriteLine(e);
27                return new CurrentStockPrice {Symbol = symbol};
28            }
29        }
30
31        CurrentStockPrice MapFrom(dynamic item)
32        {
33            return new CurrentStockPrice
34                   {
35                       Symbol = item.t,
36                       Price = item.l,
37                       Change = item.c,
38                       ChangePercentage = item.cp,
39                       High = item.hi,
40                       Low = item.lo,
41                       Open = item.op,
42                   };
43        }
44
45        string Open(string url)
46        {
47            using (var reader = new StreamReader(new WebClient().OpenRead(new Uri(url))))
48            {
49                return reader.ReadToEnd();
50            }
51        }
52
53        /*
54{
55  "id": "666908",
56  "t": "ARX",
57  "e": "TSE",
58  "l": "26.50",
59  "l_cur": "CA$26.50",
60  "s": "0",
61  "ltt": "4:00PM EDT",
62  "lt": "Apr 1, 4:00PM EDT",
63  "c": "+0.15",
64  "cp": "0.57",
65  "ccol": "chg",
66  "eo": "",
67  "delay": "15",
68  "op": "26.49",
69  "hi": "26.65",
70  "lo": "26.31",
71  "vo": "426,774.00",
72  "avvo": "1.60M",
73  "hi52": "28.67",
74  "lo52": "18.77",
75  "mc": "7.55B",
76  "pe": "20.35",
77  "fwpe": "",
78  "beta": "0.69",
79  "eps": "1.30",
80  "name": "ARC Resources Ltd",
81  "type": "Company"
82}
83 */
84    }
85}