public void VerifyRequestContext(RequestContext reqContext) { string baseUrl = reqContext.Race.BaseURL; IronmanClient sourceClient; //we'll change this to a factory pattern if we have more than these two classes string apiName = reqContext.Race.ApiName == null ? "IronmanClient" : reqContext.Race.ApiName.ToLower(); if (apiName.Equals("ironmanclientdoubletable", StringComparison.CurrentCultureIgnoreCase)) { sourceClient = new IronmanClientDoubleTable(_DBContext); } else { sourceClient = new IronmanClient(_DBContext); } int pagenum = 1; List <Triathlete> athletesPerPage = new List <Triathlete>(); IRestResponse response = sourceClient.MakeRequest(baseUrl, sourceClient.BuildRequestParameters(pagenum, reqContext)); bool result = sourceClient.HandleResponse(response, reqContext); if (result) { sourceClient.ParseDataToVerify(reqContext, response.Content); SaveRequestContext(reqContext); } }
private List <Triathlete> GetAthletesFromSource(RequestContext reqContext) { Trace.TraceInformation(String.Format("GetFromSource {0}-{1}{2}", reqContext.RaceId, reqContext.AgeGroupId, reqContext.GenderId)); List <Triathlete> athletesFromSource = new List <Triathlete>(); reqContext.SourceCount = 0; string baseUrl = reqContext.Race.BaseURL; IronmanClient sourceClient; //we'll change this to a factory pattern if we have more than these two classes string apiName = reqContext.Race.ApiName == null ? "IronmanClient" : reqContext.Race.ApiName.ToLower(); if (apiName.Equals("ironmanclientdoubletable", StringComparison.CurrentCultureIgnoreCase)) { sourceClient = new IronmanClientDoubleTable(_DBContext); } else { sourceClient = new IronmanClient(_DBContext); } for (int pagenum = 1; pagenum < 100; pagenum++) { List <Triathlete> athletesPerPage = new List <Triathlete>(); IRestResponse response = sourceClient.MakeRequest(baseUrl, sourceClient.BuildRequestParameters(pagenum, reqContext)); bool result = sourceClient.HandleResponse(response, reqContext); if (result) { athletesPerPage = sourceClient.ParseData(reqContext, response.Content, pagenum); if (athletesPerPage.Count > 0) { reqContext.SourceCount += athletesPerPage.Count; athletesFromSource.AddRange(athletesPerPage); } else { break; } } else { break; } } SaveRequestContext(reqContext); DeleteAthletes(reqContext); SaveAthletes(athletesFromSource); return(athletesFromSource); }