Beispiel #1
0
        public void NewUserConfig(DietUsers dietUsers, double UserWc, double WeightPounds, double HeightInches, double UserWeight, double UserHeight)
        {
            //hash the password
            MD5    md5Hash      = MD5.Create();
            string hashPassword = GetMd5Hash(md5Hash, dietUsers.UserPassword);

            dietUsers.UserPassword = hashPassword;
            dietUsers.Status       = "Active";

            //Add a record to ProgressTracker Table
            ProgressTracker FirstPRogress = new ProgressTracker();
            double          BMI           = UserWeight / (UserHeight * UserHeight);

            FirstPRogress.TrackerId     = Guid.NewGuid();
            FirstPRogress.UserName      = dietUsers.UserName;
            FirstPRogress.Wc            = Convert.ToDouble(UserWc);
            FirstPRogress.Bmi           = BMI;
            FirstPRogress.Month         = 1;
            FirstPRogress.MonthlyHeight = UserHeight;
            FirstPRogress.MonthlyWeight = UserWeight;
            FirstPRogress.DateEntered   = DateTime.Today;
            double?BMR;
            int    WCRange = 0;

            if (dietUsers.UserGender == "Male")
            {
                BMR = 66 + (6.23 * WeightPounds) + (12.7 * HeightInches) - (6.8 * dietUsers.UserAge);

                if (UserWc < 94)
                {
                    WCRange = 1;
                }
                else if (UserWc < 102)
                {
                    WCRange = 2;
                }
                else
                {
                    WCRange = 3;
                }
            }
            else
            {
                BMR = 655 + (4.35 * WeightPounds) + (4.7 * HeightInches) - (4.7 * dietUsers.UserAge);
                if (UserWc < 80)
                {
                    WCRange = 1;
                }
                else if (UserWc < 88)
                {
                    WCRange = 2;
                }
                else
                {
                    WCRange = 3;
                }
            }
            FirstPRogress.Bmr = (double)BMR;
            db.Add(FirstPRogress);

            float age = (float)Convert.ToDouble(dietUsers.UserAge);



            float wc = (float)Convert.ToDouble(UserWc);

            //send user's details to stochastic class to get weight category
            dietUsers.UserWeightCategory = WeightClassification.returnClassification((float)BMI, WCRange);
            dietUsers.NewUser            = true;
            db.Add(dietUsers);
            db.SaveChanges();
        }
Beispiel #2
0
        public IActionResult UpdateBMI(string WeightMetric, double weight, double waist, string HeightMetric, double heightMeter = 0, double heightFeet = 0, double heightInches = 0)
        {
            try
            {
                string username = null;

                if (HttpContext.Session.GetString("LoggedIn") != null)
                {
                    username = HttpContext.Session.GetString("Username");
                }
                else
                {
                    return(RedirectToAction("Index"));
                }
                double height;
                double UserWeight;
                if (HeightMetric == "Feet")
                {
                    height  = heightFeet * 12;
                    height += heightInches;
                    height *= 0.025;
                }
                else
                {
                    height = heightMeter;
                }

                if (WeightMetric == "kg")
                {
                    UserWeight = weight;
                }
                else
                {
                    UserWeight = weight * 0.45;
                }

                //Saving the latest Weight data to Tracker table
                var             TrackerList   = db.ProgressTracker.ToList();
                var             latestMonth   = TrackerList.Where(z => z.UserName.ToLower() == username.ToLower()).Max(x => x.Month); //getting the latest week updated
                ProgressTracker FirstPRogress = new ProgressTracker();
                double          BMI           = weight / (height * height);
                FirstPRogress.TrackerId     = Guid.NewGuid();
                FirstPRogress.UserName      = username;
                FirstPRogress.Wc            = waist;
                FirstPRogress.Bmi           = BMI;
                FirstPRogress.MonthlyHeight = height;
                FirstPRogress.MonthlyWeight = UserWeight;
                FirstPRogress.DateEntered   = DateTime.Today;
                FirstPRogress.Month         = latestMonth + 1;
                db.Add(FirstPRogress);
                //end of saving to table Tracker

                var dietUser = db.DietUsers.Where(x => x.UserName.ToLower() == username.ToLower()).FirstOrDefault();

                float age = (float)Convert.ToDouble(dietUser.UserAge);

                int WCRange;
                if (dietUser.UserGender == "Male")
                {
                    if (waist < 94)
                    {
                        WCRange = 1;
                    }
                    else if (waist < 102)
                    {
                        WCRange = 2;
                    }
                    else
                    {
                        WCRange = 3;
                    }
                }
                else
                {
                    if (waist < 80)
                    {
                        WCRange = 1;
                    }
                    else if (waist < 88)
                    {
                        WCRange = 2;
                    }
                    else
                    {
                        WCRange = 3;
                    }
                }

                dietUser.UserWeightCategory = WeightClassification.returnClassification((float)BMI, WCRange);
                db.Update(dietUser);
                db.SaveChanges();

                return(RedirectToAction("Dashboard"));
            }
            catch (SqlException)
            {
                string action     = this.ControllerContext.RouteData.Values["action"].ToString();
                string controller = this.ControllerContext.RouteData.Values["controller"].ToString();
                return(RedirectToAction("Error", new { controllerName = controller, actionName = action }));
            }
        }