예제 #1
0
        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));
            }
        }
예제 #2
0
        public void BulkLookup_returns_results()
        {
            var result = _client.BulkLookup(new[] { "GU1 1AA", "GU1 1AB", "GU1 1AD" }).ToList();

            TestResults(result);
        }