Example #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="user"></param>
        /// <returns></returns>
        /// <remarks>
        /// Se llama cuando el usuario inicia su programa.
        /// Si ya inicio almenos un programa la siguiente vez, el birthdate y sexo no deben cambiar
        /// </remarks>
        public User UpdateUserRegistration(User user)
        {
            using (var context = new RegistrationEntities())
            {
                decimal heigh = user.HeighInt + UnitConverter.CentimetersToMeters(user.HeighDec); //estatura en metros

                user.BMI = Selery.BO.Nutrition.Profile.GetBMI(heigh, user.Weight);

                int age = Selery.Library.Common.Helper.GetAge(user.BirthDate.Value);


                //selecctionar el goaltype en base al bmi
                Selery.BO.Core.Enum.GoalType goalTypeID = Selery.BO.Nutrition.Profile.GetGoalType(user.BMI);


                //TODO: por ahora solo tenemos 2 goals, el 1 es de LoseWeight y el 2 es de Maintain
                //cuando haya mas Goals vamos a tener que hacer refactor a este metodo.

                int goalID = (goalTypeID == Selery.BO.Core.Enum.GoalType.LoseWeight ? (int)Selery.BO.Core.Enum.GoalType.LoseWeight : (int)Selery.BO.Core.Enum.GoalType.Maintain);


                //Las calorias ya vienen en el usuario
                int?rowcount = context.spUserRegistrationUpdate(user.UserID,
                                                                user.Gender,
                                                                user.HeighInt,
                                                                user.HeighDec,
                                                                user.BirthDate,
                                                                goalID,
                                                                user.BMI,
                                                                user.Calories).SingleOrDefault();


                decimal?id = context.spUserActivityInsert(user.UserID, user.ActivityID).SingleOrDefault();
            }

            using (var context = new WorkoutEntities())
            {
                //iniciar el programa
                //guardar cual es el BMI del usuario al inicio del programa
                int?rowcount = context.spUserProgramUpdate(user.UserID, user.CurrentProgram.ProgramID, user.BMI).SingleOrDefault();
            }

            //insertar el peso
            this.UserWeightInsert(user.UserID, user.Weight);

            //inicializar menu
            using (var context = new  NutritionEntities())
            {
                int?rowcount = context.spUserDailyMenuInitialize(user.UserID, user.CurrentProgram.ProgramID).SingleOrDefault();
            }

            return(this.SelectUserByID(user.UserID));
        }