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