WorldBank–adaugare de indicatori si o idee de refactoring la teste

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"));

Leave a Reply

Your email address will not be published. Required fields are marked *