public int GetWalkingCalorieBurn(User.Record record) { User.Snapshot snapshot = User.Snapshot.FindNearestSnapshot(record, _user); double Time = ((double)(record.WalkTime + record.RunTime) / 3600); if (Time <= 0.0013888888888889) { return(0); //5 seconds } double KPH = Common.CommonMethods.CalcDistance((uint)(record.WalkingStepCount + record.RunningStepCount), _user.StepLength) / Time; return((int)Math.Round((0.0215 * KPH * KPH * KPH - 0.1765 * KPH * KPH + 0.8710 * KPH + 1.4577) * snapshot.Weight * Time)); }
public int CalcHourlyBMR(User.Record record) { if (_user == null) { return(0); } else { if (_user.Snapshots.Count == 0) { return(0); } else { User.Snapshot snapshot = User.Snapshot.FindNearestSnapshot(record, _user); return((int)((double)RawBMR(_user.UserGender, snapshot.Weight, snapshot.Height, Common.CommonMethods.CalcAge(record.StartDate, _user.Birthdate)) / 24)); } } }
public static Snapshot FindNearestSnapshot(Record record, AppUser user) { if (user == null) { return(new Snapshot()); } User.Snapshot snapshot = user.Snapshots[0]; if (user.Snapshots.Count > 0) { for (int i = 1; i < user.Snapshots.Count; i++) { if ((record.StartDate - user.Snapshots[i].DateTaken) < (record.StartDate - snapshot.DateTaken)) { snapshot = user.Snapshots[i]; } } } return(snapshot); }
//fallback function public int CalcHourlyBMR(DateTime date) { if (_user == null) { return(0); } else { if (_user.Snapshots.Count == 0) { return(0); } else { User.Record record = new User.Record(); record.StartDate = date; User.Snapshot snapshot = User.Snapshot.FindNearestSnapshot(record, _user); return((int)((double)RawBMR(_user.UserGender, snapshot.Weight, snapshot.Height, Common.CommonMethods.CalcAge(record.StartDate, _user.Birthdate)) / 24)); //* GetHBMultiplier(_user.UserActivityLevel)); } } }