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(); }
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 })); } }