public async Task updateMyBodyMeasurements() { try { if (myBodyMeasurements == null) { myBodyMeasurements = new BodyMeasurement(); } var tempBodyMeasurements = await myBl.GetBodyMeasurement(myBodyMeasurements.Date); if (tempBodyMeasurements == null) { tempBodyMeasurements = new BodyMeasurement(); tempBodyMeasurements.Date = myBodyMeasurements.Date; myBodyMeasurements = tempBodyMeasurements; Weight = tempBodyMeasurements.Weight; Height = tempBodyMeasurements.Height; await _myMessageDialog.ShowInfoDialogAsync("Please Update Your Body Measurements For This Day."); } else { myBodyMeasurements = tempBodyMeasurements; Weight = tempBodyMeasurements.Weight; Height = tempBodyMeasurements.Height; } } catch (Exception ex) { updateMyBodyMeasurements(); await _myMessageDialog.ShowInfoDialogAsync(ex.Message); } }
public async Task <IEnumerable <BodyInjury> > GetBodyInjuriesToDelete(BodyMeasurement measurement) { return(await _trainingPlannerDbContext.BodyInjuries .Where(c => c.BodyMeasurementId == measurement.Id) .Except(measurement.Injuries) .ToListAsync()); }
public async Task <BodyMeasurement> UpdateBodyMeasurement(BodyMeasurement measurement) { _trainingPlannerDbContext.Update(measurement); await _trainingPlannerDbContext.SaveChangesAsync(); return(measurement); }
public ActionResult DeleteConfirmed(int id) { BodyMeasurement bodyMeasurement = db.BodyMeasurements.Find(id); db.BodyMeasurements.Remove(bodyMeasurement); db.SaveChanges(); return(RedirectToAction("Index")); }
public void FatPercentageForFemaleBasedOffMeasurementsShouldBeAbout25Percent() { AppUser appUser = new AppUser("", "", "", 60, GenderType.Female, MeasurementSystem.Imperial); BodyMeasurement bodyMeasurement = new BodyMeasurement(appUser, 10, 30, 30, 60, 60, DateTime.Today, MeasurementSystem.Imperial); double actual = BodyFatPercentageCalculator.CalculateBodyFatPercentage(bodyMeasurement); Assert.AreEqual(25.19, actual, .01); }
public async Task <BodyMeasurement> CreateBodyMeasurement(BodyMeasurement measurement) { await _trainingPlannerDbContext.BodyMeasurements.AddAsync(measurement); await _trainingPlannerDbContext.SaveChangesAsync(); return(measurement); }
public ActionResult Edit([Bind(Include = "Id,Height,Weight,BodyFatPercent,BodyMassIndex,LeanBodyMass,WaistCircumference")] BodyMeasurement bodyMeasurement) { if (ModelState.IsValid) { db.Entry(bodyMeasurement).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } return(View(bodyMeasurement)); }
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 ActionResult Create([Bind(Include = "Id,Height,Weight,BodyFatPercent,BodyMassIndex,LeanBodyMass,WaistCircumference")] BodyMeasurement bodyMeasurement) { if (ModelState.IsValid) { db.BodyMeasurements.Add(bodyMeasurement); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(bodyMeasurement)); }
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); }
// GET: BodyMeasurements/Delete/5 public ActionResult Delete(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } BodyMeasurement bodyMeasurement = db.BodyMeasurements.Find(id); if (bodyMeasurement == null) { return(HttpNotFound()); } return(View(bodyMeasurement)); }
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); }
public RecognitionCorrectionHint(SkeletonJoint joint = SkeletonJoint.NUM_JOINTS, float dirX = 0, float dirY = 0, float dirZ = 0, float dist = 0, bool isAngle = false, ChangeType changeType = ChangeType.SPEED, ChangeDirection changeDir = ChangeDirection.DIFFERENT, BodyMeasurement measuringUnit = BodyMeasurement.NUM_MEASUREMENTS, int failedState = -1) { m_joint = joint; m_dirX = dirX; m_dirY = dirY; m_dirZ = dirZ; m_dist = dist; m_isAngle = isAngle; m_changeType = changeType; m_changeDirection = changeDir; m_measuringUnit = measuringUnit; m_failedState = failedState; }
private static double CalculateBodyFatPercentageUsingImperialUnits(BodyMeasurement bodyMeasurement) { if (bodyMeasurement.AppUser.Gender == GenderType.Male) { double maleBodyFatPercentage = 86.01 * Math.Log10(bodyMeasurement.WaistCircumference - bodyMeasurement.NeckCircumference) - (70.041 * Math.Log10(bodyMeasurement.Height)) + 36.76; return(maleBodyFatPercentage); } // Calculation for female double hipCircumference = (double)bodyMeasurement.HipCircumference; double femaleBodyFatPercentage = 163.205 * Math.Log10(bodyMeasurement.WaistCircumference + hipCircumference - bodyMeasurement.NeckCircumference) - (97.684 * Math.Log10(bodyMeasurement.Height)) - 78.387;; return(femaleBodyFatPercentage); }
/// <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)); }
/// <summary> /// Creates a new <see cref="BodyMeasurement"/> based off of the <paramref name="createOrEditBodyMeasurementRequest"/>, if the measurement /// does not already exist. If the measurement described in the request does exist, then the existing measurement will be edited. /// </summary> public void Handle(CreateOrEditBodyMeasurementRequest createOrEditBodyMeasurementRequest) { bool measurementIsBeingCreated = createOrEditBodyMeasurementRequest.IdOfBodyMeasurementToEdit == null; if (measurementIsBeingCreated) { BodyMeasurement bodyMeasurement = CreateBodyMeasurement(createOrEditBodyMeasurementRequest); _bodyFitTrackerContext.BodyMeasurements.Add(bodyMeasurement); _bodyFitTrackerContext.SaveChanges(); } else { TryEditingMeasurement(createOrEditBodyMeasurementRequest); } }
private void TryEditingMeasurement(CreateOrEditBodyMeasurementRequest request) { int currentUserId = _userAccessor.GetCurrentUserId(); Dictionary <string, string> errors = new Dictionary <string, string>(); AppUser appUser = _bodyFitTrackerContext.AppUsers.Where(x => x.AppUserId == currentUserId).First(); BodyMeasurement bodyMeasurementToEdit = appUser.BodyMeasurements.Where(x => x.BodyMeasurementId == request.IdOfBodyMeasurementToEdit).FirstOrDefault(); if (bodyMeasurementToEdit == null) { errors.Add("", $"The bodymeasurement with id {request.IdOfBodyMeasurementToEdit} was not found"); throw new RestException(HttpStatusCode.NotFound, errors); } // all measurements in the database should be in imperial units MeasurementSystem sourceUnits = appUser.MeasurementSystemPreference; MeasurementSystem destinationUnits = MeasurementSystem.Imperial; bodyMeasurementToEdit.NeckCircumference = MeasurementConverter.ConvertLength(request.NeckCircumference, sourceUnits, destinationUnits); bodyMeasurementToEdit.WaistCircumference = MeasurementConverter.ConvertLength(request.WaistCircumference, sourceUnits, destinationUnits); if (request.HipCircumference.HasValue) { bodyMeasurementToEdit.HipCircumference = MeasurementConverter.ConvertLength((double)request.HipCircumference, sourceUnits, destinationUnits); } bodyMeasurementToEdit.Height = MeasurementConverter.ConvertLength(request.Height, sourceUnits, destinationUnits); bodyMeasurementToEdit.Weight = MeasurementConverter.ConvertWeight(request.Weight, sourceUnits, destinationUnits); bodyMeasurementToEdit.DateAdded = request.DateAdded; bodyMeasurementToEdit.BodyFatPercentage = BodyFatPercentageCalculator.CalculateBodyFatPercentage(bodyMeasurementToEdit); _bodyFitTrackerContext.SaveChanges(); }
public async Task AddBodyMeasurement(BodyMeasurement bodyMeasurement) { try { using (var db = new EatingRightDBContext()) { // var user = await GetCurrentUser(); var userEmail = await GetCurrentUserEmail(); var user = await db.Users .Where(A => A.Email.Equals(userEmail)).Include(a => a.Meals).Include(a => a.Meals.Select(m => m.FoodItems)).Include(a => a.Goals).Include(a => a.BodyMeasurements).SingleOrDefaultAsync(); var isExistBodyMeasurement = user.BodyMeasurements.Where(A => A.Date.Year == bodyMeasurement.Date.Year && A.Date.Month == bodyMeasurement.Date.Month && A.Date.Day == bodyMeasurement.Date.Day).FirstOrDefault(); foreach (PropertyInfo p in bodyMeasurement.GetType().GetProperties()) { if (p.GetType() != bodyMeasurement.Date.GetType() && p.GetValue(bodyMeasurement) == null) { p.SetValue(bodyMeasurement, 0.00, null); } } if (isExistBodyMeasurement == null) { user.BodyMeasurements.Add(bodyMeasurement); } else { // goal.Date = isExistGoal.Date; // db.Entry(isExistGoal).CurrentValues.SetValues(goal); isExistBodyMeasurement.Weight = bodyMeasurement.Weight; isExistBodyMeasurement.Height = bodyMeasurement.Height; } // db.Users.AddOrUpdate(user); await db.SaveChangesAsync(); } } catch (Exception ex) { throw new Exception(ex.Message); } }
private async Task SaveBodyMeasurements() { try { BodyMeasurement temp = new BodyMeasurement(); temp.Date = myBodyMeasurements.Date; temp.Weight = myBodyMeasurements.Weight; temp.Height = myBodyMeasurements.Height; await myBl.AddBodyMeasurement(temp); await _myMessageDialog.ShowInfoDialogAsync("Body Measurement Saved!"); OnPropertyChanged(); } catch (Exception ex) { updateMyBodyMeasurements(); await _myMessageDialog.ShowInfoDialogAsync(ex.Message); } }
/** * \brief Get the name string representation of a body measurement id */ public static string getBodyMeasureName(BodyMeasurement id) { switch (id) { case BodyMeasurement.BODY_HEIGHT: return("bodyHeight"); case BodyMeasurement.TORSO_HEIGHT: return("torsoHeight"); case BodyMeasurement.SHOULDER_WIDTH: return("shoulderWidth"); case BodyMeasurement.HIP_WIDTH: return("hipWidth"); case BodyMeasurement.ARM_LENGTH: return("armLength"); case BodyMeasurement.UPPER_ARM_LENGTH: return("upperArmLength"); case BodyMeasurement.LOWER_ARM_LENGTH: return("lowerArmLength"); case BodyMeasurement.LEG_LENGTH: return("legLength"); case BodyMeasurement.UPPER_LEG_LENGTH: return("upperLegLength"); case BodyMeasurement.LOWER_LEG_LENGTH: return("lowerLegLength"); default: return(""); } }
/// <summary> /// Deletes the measurement with the id <paramref name="bodyMeasurementIdToDelete"/>. If no measurement is found then a RestException will be thrown. If /// the measurement being deleted does not belong to the current user, then a RestException will be thrown. /// </summary> /// <param name="bodyMeasurementIdToDelete"></param> public void Handle(int bodyMeasurementIdToDelete) { Dictionary <string, string> errors = new Dictionary <string, string>(); BodyMeasurement bodyMeasurementToRemove = _bodyFitTrackerContext.BodyMeasurements .Where(b => b.BodyMeasurementId == bodyMeasurementIdToDelete).FirstOrDefault(); if (bodyMeasurementToRemove == null) { errors.Add("", $"The bodymeasurement with id {bodyMeasurementIdToDelete} was not found"); throw new RestException(HttpStatusCode.NotFound, errors); } int currentUserId = _userAccessor.GetCurrentUserId(); if (currentUserId != bodyMeasurementToRemove.AppUserId) { errors.Add("", "Access to another user's body measurement is denied"); throw new RestException(HttpStatusCode.Forbidden, errors); } _bodyFitTrackerContext.BodyMeasurements.Remove(bodyMeasurementToRemove); _bodyFitTrackerContext.SaveChanges(); }
public static BodyMeasurement Convert(BodyMeasurement bodyMeasurement, MeasurementSystem sourceUnits, MeasurementSystem destinationUnits) { if (sourceUnits == destinationUnits) { return(bodyMeasurement); } double?hipCircumference = null; double neckCircumference = MeasurementConverter.ConvertLength(bodyMeasurement.NeckCircumference, sourceUnits, destinationUnits); double waistCircumference = MeasurementConverter.ConvertLength(bodyMeasurement.WaistCircumference, sourceUnits, destinationUnits); if (bodyMeasurement.HipCircumference.HasValue) { hipCircumference = MeasurementConverter.ConvertLength((double)bodyMeasurement.HipCircumference, sourceUnits, destinationUnits); } double height = MeasurementConverter.ConvertLength(bodyMeasurement.Height, sourceUnits, destinationUnits); double weight = MeasurementConverter.ConvertWeight(bodyMeasurement.Weight, sourceUnits, destinationUnits); return(new BodyMeasurement(bodyMeasurement.AppUser, neckCircumference, waistCircumference, hipCircumference, height, weight, bodyMeasurement.DateAdded, destinationUnits) { BodyMeasurementId = bodyMeasurement.BodyMeasurementId }); }
public async Task AddBodyMeasurement(BodyMeasurement bodyMeasurement) { await myDal.AddBodyMeasurement(bodyMeasurement); }
public async Task DeleteBodyMeasurement(BodyMeasurement measurement) { _trainingPlannerDbContext.BodyMeasurements.Remove(measurement); await _trainingPlannerDbContext.SaveChangesAsync(); }
/// <summary> /// Calculates the body fat percentage based off of the given <paramref name="bodyMeasurement"/>. /// </summary> /// <returns> The body fat percentage </returns> public static double CalculateBodyFatPercentage(BodyMeasurement bodyMeasurement) { BodyMeasurement bodyMeasurementConvertedToImperial = BodyMeasurementConverter.Convert(bodyMeasurement, bodyMeasurement.Units, MeasurementSystem.Imperial); return(CalculateBodyFatPercentageUsingImperialUnits(bodyMeasurementConvertedToImperial)); }
private async Task RemoveBodyInjuries(BodyMeasurement mappedMeasurement) { var bodyInjuriesToDelete = await _bodyMeasurementRepository.GetBodyInjuriesToDelete(mappedMeasurement); await _bodyMeasurementRepository.RemoveBodyInjuries(bodyInjuriesToDelete, false); }