private EndpointCollection CreateEndpointWithParam(JSONParam jsonParam) { dc.AddFile("endpoint/endpoint.json", JsonConvert.SerializeObject(DataUtils.CreateScriptEndpoint("endpoint", "script.csscript"))); dc.AddFile("endpoint/script.csscript", "return GetParam(\"greeting\") + \" \" + GetParam(\"subject\");"); dc.AddFile("endpoint/params.json", JsonConvert.SerializeObject(new[] { jsonParam })); return(EndpointCollectionReader.ReadFromDirectory(dc.DirectoryName)); }
// url - US date // .htm - UK format public List<string> GenerateLinks(JSONLinks jsl, int startyear, int ftsymbol, int interval) { string url1 = "http://markets.ft.com/RESEARCH/Remote/UK/InteractiveChart/DrawInteractiveChart?"; DateTime dstart; DateTime dend; DateTime now = DateTime.Now; if (startyear == 1) // check { Console.WriteLine("No date data: " + ftsymbol); return null; } dstart = new DateTime(startyear, 1, 1); dend = new DateTime(dstart.Year + interval, 1, 1); if (dend.Year >= now.Year) { dend = new DateTime(now.Year, 12, 31); } int counter = 0; List<string> urls = new List<string>(); // http://markets.ft.com/research/InteractiveChart?symbol=205778&options={"StartDate":"01/15/2008","EndDate":"06/24/2013","LowerIndicator":[{"Args":[{"Type":0,"Value":14}],"Code":21,"UID":696010770}],"UpperIndicator":[],"Overlay":[2,1,0],"ChartStyle":3,"ChartScale":1,"CursorStyle":1,"Interval":6,"Duration":10,"Comparison":[],"PortfolioName":null,"Width":950,"Height":400,"ActiveTool":null} // date format is US, even though in interactive format is UK for (; ; ) { string url2 = @"symbol=zzz&options={""StartDate"":""xxx"",""EndDate"":""yyy"",""LowerIndicator"":[],""UpperIndicator"":[],""Overlay"":[0,1,2],""ChartStyle"":3,""ChartScale"":1,""CursorStyle"":1,""Interval"":6,""Duration"":9,""Comparison"":[],""PortfolioName"":null,""Width"":950,""Height"":400,""ActiveTool"":null}"; url2 = url2.Replace("xxx", dstart.ToShortDateString()); url2 = url2.Replace("yyy", dend.ToShortDateString()); url2 = url2.Replace("zzz", ftsymbol.ToString()); string finalurl = url1 + url2; urls.Add(finalurl); JSONParam p = new JSONParam(); p.startdate = dstart; p.enddate = dend; p.url = finalurl; jsl.m_jsonparam.Add(p); dstart = dend; if (dstart.Year == now.Year && dstart.Month == 12 && dstart.Day == 31) break; else { dend = new DateTime(dstart.Year + interval, 1, 1); if (dend.Year >= now.Year) { dend = new DateTime(now.Year, 12, 31); } } counter++; } return urls; }