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));
         }
     }
 }
Esempio n. 3
0
        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));
                }
            }
        }