public void BodyMeasurementValuesShouldBeIdenticalIfSourceAndDestinationUnitsAreSame() { AppUser appUser = new AppUser("", "", "", 60, GenderType.Female, MeasurementSystem.Imperial); BodyMeasurement bodyMeasurement = new BodyMeasurement(appUser, 10, 30, 30, 60, 120, DateTime.Today, MeasurementSystem.Imperial); BodyMeasurement converted = BodyMeasurementConverter.Convert(bodyMeasurement, appUser.MeasurementSystemPreference, appUser.MeasurementSystemPreference); Assert.AreEqual(bodyMeasurement.Height, converted.Height); Assert.AreEqual(bodyMeasurement.Weight, converted.Weight); }
public void MetricBodyMeasurementValuesConvertedToImperialTest() { AppUser appUser = new AppUser("", "", "", 140, GenderType.Female, MeasurementSystem.Metric); BodyMeasurement bodyMeasurement = new BodyMeasurement(appUser, 22, 60, 60, 140, 60, DateTime.Today, MeasurementSystem.Metric); BodyMeasurement converted = BodyMeasurementConverter.Convert(bodyMeasurement, appUser.MeasurementSystemPreference, MeasurementSystem.Imperial); double expectedBodyFatPercentage = bodyMeasurement.BodyFatPercentage; Assert.AreEqual(expectedBodyFatPercentage, converted.BodyFatPercentage, .01); Assert.AreEqual(55.118, converted.Height, .01); }
private BodyMeasurement CreateBodyMeasurement(CreateOrEditBodyMeasurementRequest request) { int currentUserId = _userAccessor.GetCurrentUserId(); AppUser appUser = _bodyFitTrackerContext.AppUsers.Where(x => x.AppUserId == currentUserId).First(); BodyMeasurement bodyMeasurement = new BodyMeasurement(appUser, request.NeckCircumference, request.WaistCircumference, request.HipCircumference, request.Height, request.Weight, request.DateAdded, appUser.MeasurementSystemPreference); BodyMeasurement bodyMeasurementConvertedToImperial = BodyMeasurementConverter.Convert(bodyMeasurement, appUser.MeasurementSystemPreference, MeasurementSystem.Imperial); // all measurements in the database should be in imperial units return(bodyMeasurementConvertedToImperial); }
/// <summary> /// Returns a list of <see cref="BodyMeasurementDTO"/> for the current user /// </summary> public List <BodyMeasurementDTO> Handle() { int userId = _userAccessor.GetCurrentUserId(); AppUser currentUser = _bodyFitTrackerContext.AppUsers.Find(userId); // all measurements in the database are in imperial units List <BodyMeasurement> bodyMeasurements = BodyMeasurementConverter.Convert(currentUser. BodyMeasurements.ToList(), MeasurementSystem.Imperial, currentUser.MeasurementSystemPreference); bodyMeasurements = bodyMeasurements.OrderByDescending(b => b.DateAdded).ToList(); List <BodyMeasurementDTO> bodyMeasurementDTOs = _mapper.Map <List <BodyMeasurement>, List <BodyMeasurementDTO> >(bodyMeasurements); return(bodyMeasurementDTOs); }
/// <summary> /// Returns the <see cref="BodyMeasurementDTO"/> with the given <paramref name="bodyMeasurementId"/> for the current user. /// If a body measurement is not found, then a <see cref="RestException"/> will be thrown. /// </summary> public BodyMeasurementDTO Handle(int bodyMeasurementId) { int userId = _userAccessor.GetCurrentUserId(); Dictionary <string, string> errors = new Dictionary <string, string>(); AppUser currentUser = _bodyFitTrackerContext.AppUsers.Find(userId); BodyMeasurement bodyMeasurement = currentUser.BodyMeasurements.Where(x => x.BodyMeasurementId == bodyMeasurementId).FirstOrDefault(); if (bodyMeasurement == null) { errors.Add("", $"The body measurement with id {bodyMeasurementId} was not found"); throw new RestException(HttpStatusCode.NotFound, errors); } BodyMeasurement measurementInUsersPreferredUnits = BodyMeasurementConverter.Convert(bodyMeasurement, MeasurementSystem.Imperial, currentUser.MeasurementSystemPreference); return(_mapper.Map <BodyMeasurement, BodyMeasurementDTO>(measurementInUsersPreferredUnits)); }