public IHttpActionResult Get() { try { var list = new List <Map>(); var data = File.ReadAllLines($"{PathConstant.Path}\\LatitudeLongitude.csv"); list = data.Skip(1) .Select(t => t.Split(',')) .Select(split => new Map { Latitude = Convert.ToDouble(split[0]), Longitude = Convert.ToDouble(split[1]) }).ToList(); var postcodeList = GetPostcodes(); var count = postcodeList.Count() / 100; var chunks = ChunkBy(postcodeList.ToList(), count); var client = new PostcodesIOClient(); foreach (var chunk in chunks) { var bulkResult = client.BulkLookup(chunk); list.AddRange(from item in bulkResult where item.Result != null select new Map { Latitude = Convert.ToDouble(item.Result.Latitude), Longitude = Convert.ToDouble(item.Result.Longitude) }); } // write to file - results.json SerializeToFile(list); return(Ok(list)); } catch (Exception ex) { return(BadRequest(ex.Message)); } }
public void BulkLookup_returns_results() { var result = _client.BulkLookup(new[] { "GU1 1AA", "GU1 1AB", "GU1 1AD" }).ToList(); TestResults(result); }