public async Task <IActionResult> UpdateUserMetrics(User user, UserMetricsUpdateModel UserMetrics, UserManager <User> _userManager)
        {
            user.Name = UserMetrics.Name;
            WeightHistory        history = new WeightHistory(user.Id, UserMetrics.MetricWeight, DateTime.Now.Date);
            WeightHistoryManager manager = new WeightHistoryManager(_context, _userManager);
            await manager.AddChange(history);

            user.Age    = UserMetrics.MetricAge;
            user.Gender = UserMetrics.MetricGender;
            user.Goal   = UserMetrics.MetricGoal;
            user.Height = UserMetrics.MetricHeight;
            for (int i = 0; i < UserMetrics.healthProblems.Count; i++)
            {
                UserMetrics.healthProblems[i].UserId = user.Id;
            }
            await _userManager.UpdateAsync(user);

            await _context.SaveChangesAsync();

            var user_health = _context.HealthProblems.Where(x => x.UserId == user.Id).ToList();

            _context.HealthProblems.RemoveRange(user_health);
            await _context.SaveChangesAsync();

            await _context.HealthProblems.AddRangeAsync(UserMetrics.healthProblems);

            await _context.SaveChangesAsync();

            return(new OkResult());
        }
        public async Task <IActionResult> UpdateMetrics(UserMetricsUpdateModel UserMetrics)
        {
            if (!ModelState.IsValid)
            {
                return(UnprocessableEntity());
            }

            var user = await _jwtService.CheckUser(Request.Cookies["JWT"]);

            if (user == null)
            {
                return(Unauthorized());
            }

            _userMetricsManager.UpdateUserMetrics(user, UserMetrics, _userManager);
            return(Ok());
        }