public List <CustomerDistance> GetCustomerDistancesFromFile(Coordinate pointRef, string filePath)
        {
            var customerDistances = new List <CustomerDistance>();
            var customerJsonList  = _fileReader.ReadLines(filePath);

            if (customerJsonList == null || customerJsonList.Count == 0)
            {
                return(customerDistances);
            }

            foreach (var json in customerJsonList)
            {
                try
                {
                    var customerRecord = JsonConvert.DeserializeObject <CustomerRecord>(json);
                    var distance       = _geoFormula.CalculateEarthCoordinateDistance(
                        pointRef, new Coordinate(customerRecord.Latitude, customerRecord.Longitude));
                    customerDistances.Add(new CustomerDistance(customerRecord, distance));
                    _logger.LogMessage(LogLevel.Debug, $"{customerRecord.UserId}.{customerRecord.Name}.{distance}");
                }
                catch (Exception ex)
                {
                    _logger.LogMessage(LogLevel.Error, ex.Message);
                }
            }

            return(customerDistances);
        }
 public CustomerDataReaderTest()
 {
     _logger     = Substitute.For <ILogger>();
     _fileReader = Substitute.For <IFileReader>();
     _geoFormula = Substitute.For <IGeoFormula>();
     _geoFormula.CalculateEarthCoordinateDistance(Arg.Is(_testCoordinate), Arg.Any <Coordinate>())
     .Returns(TestDistance);
     _customerDataReader = new CustomerDataReader(_geoFormula, _fileReader, _logger);
 }