Dupa ce am adus tarile ( countries) si am facut testarea , am zis sa aduc si indicatorii(http://api.worldbank.org/indicators?format=json ). La indicatia lui Alexandru Savu de data trecuta, am copiat JSON si am dat File => Paste Special =>Paste JSON as Classes si a fost ok.
La indicatori am inceput sa vad limitarile la ce am facut pina aici:
- Indicatorii au 324 de pagini – dureaza prea mult sa ii incarci . Ar trebui adusi pe thread-uri separate
- Pentru testare am creat 324 de fisiere – mai bine le pun intr-un zip si apoi dezipuiesc- solutia e cam mare cu atitea fisiere. La fel , citirea s-ar putea face in paralel de pe hard( desi cred ca ar dura mai mult)
- API-ul este aproape acelasi pentru JsonIndicators si JsonCountries . Se vede nevoia de refactoring.(generics?)
- La fel la testare – citirea de pe hard a fisierelor e la fel pentru cele doua(countries si indicators) . Aici am facut deja o clasa comuna de citit de pe hard fisierele json
class JsonFromHard : IJsonData { public string NameFile { get; private set; } public JsonFromHard(string nameFile) { NameFile = nameFile; } /// <summary> /// generating data with ///System.IO.File.WriteAllText("countries" + page + ".txt", str); /// </summary> /// <param name="page"></param> /// <returns></returns> public Task<string> JsonData(int page = 1) { return Task.FromResult( File.ReadAllText($@"{NameFile}\{NameFile}{page}.txt")); } }
si se apeleaza simplu in cele doua moduri
var c = new CountriesRepository(new JsonFromHard("Countries")); var c = new IndicatorRepository(new JsonFromHard("indicators"));