Spontaneous.WebApp.Services.UserProfileFacade.UpdatePreMealSugar C# (CSharp) Method

UpdatePreMealSugar() private method

private UpdatePreMealSugar ( int sugarLevel, int targetSugar ) : void
sugarLevel int
targetSugar int
return void
        internal void UpdatePreMealSugar(int sugarLevel, int targetSugar)
        {
            var userProfile = GetUserProfile();
            var userData = userProfile.GetUserData();
            if (userData.UserMeals == null)
            {
                log.WarnFormat("[UpdatePremealSugar] User={0} tried to update premeal sugar, but meal doesn't exists sugarLevel={1}, targetSugar={2}.", userProfile.UserName, sugarLevel, targetSugar);
                userData.UserMeals = new List<Meal>();
                userData.UserMeals.Add(new Meal());
            }

            var userMeal = userData.UserMeals.OrderByDescending(c => c.CreatedAt).ToList().FirstOrDefault();
            var timeDiff = (DateTime.UtcNow - userMeal.CreatedAt);
            if (timeDiff.Hours > 2)
            {
                log.WarnFormat("[UpdatePremealSugar] last meal was created for more then 2 hours. Created new one");
                userMeal = new Meal();
                userData.UserMeals.Add(userMeal);
            }

            userMeal.PreMealSugarLevel = sugarLevel;
            userMeal.PreMealSugarUpdatedAt = DateTime.UtcNow;

            if (targetSugar >= 0)
            {
                if (userData.BaseInsulinCalcProfile == null)
                {
                    userData.BaseInsulinCalcProfile = new RapidInsulinProfile()
                    {
                        MaxSugarRange = targetSugar
                    };
                }
                else userData.BaseInsulinCalcProfile.MaxSugarRange = targetSugar;
            }

            userProfile.SetUserData(userData);
            userProfile.Save();
            log.InfoFormat("[UpdatePremealSugar] user={0}, meal={1}, sugarLevel={2}, targetSugar={3}.", userProfile.UserName, userMeal, sugarLevel, targetSugar);
        }