예제 #1
0
        private async Task <Training> CreateTraining(DataContext context, User user)
        {
            var training = Training.Create(
                "Training 1",
                new DateTime(2020, 7, 20),
                user
                );

            var exercise = await GetExercise(context);

            var trainingExercise = TrainingExercise.Create(exercise, user);

            var unit = await GetUnit(context);

            var trainingExerciseSet1 = TrainingExerciseSet.Create(
                10,
                80,
                unit,
                user
                );

            var trainingExerciseSet2 = TrainingExerciseSet.Create(
                10,
                85,
                unit,
                user
                );

            trainingExercise.Sets.Add(trainingExerciseSet1);
            trainingExercise.Sets.Add(trainingExerciseSet2);
            training.Exercises.Add(trainingExercise);
            return(training);
        }
예제 #2
0
        public async Task <bool> Add(TrainingForAddDto trainingForAddDto, int userId)
        {
            var user = await _repoUser.GetUser(userId);

            var trainingToCreate = Training.Create(trainingForAddDto.Name.Trim(), trainingForAddDto.Date, user);

            foreach (var trainingExerciseDto in trainingForAddDto.Exercises)
            {
                var exercise = await _repoExercise.GetByName(trainingExerciseDto.Exercise.Name, user.Id);

                if (exercise == null)
                {
                    _repoExercise.Add(Exercise.Create(trainingExerciseDto.Exercise.Name, user));
                    await _repoExercise.SaveAll();

                    exercise = await _repoExercise.GetByName(trainingExerciseDto.Exercise.Name, user.Id);
                }
                var exerciseToCreate = TrainingExercise.Create(exercise, user);

                foreach (var set in trainingExerciseDto.Sets)
                {
                    var unit = await _repoUnit.GetByCode(set.Unit);

                    var setToCreate = TrainingExerciseSet.Create(set.Reps, set.Weight, unit, user);
                    exerciseToCreate.Sets.Add(setToCreate);
                }

                trainingToCreate.Exercises.Add(exerciseToCreate);
            }
            _repoTraining.Add(trainingToCreate);
            return(await _repoTraining.SaveAll());
        }
예제 #3
0
        /// <summary>
        /// Update data in database
        /// </summary>
        /// <param name="trainingExerciseSet">data</param>
        /// <returns>updated data</returns>
        public TrainingExerciseSet Update(TrainingExerciseSet trainingExerciseSet)
        {
            if (trainingExerciseSet == null || string.IsNullOrWhiteSpace(trainingExerciseSet.UserId) ||
                trainingExerciseSet.Year == 0 || trainingExerciseSet.WeekOfYear == 0 ||
                trainingExerciseSet.DayOfWeek < 0 || trainingExerciseSet.DayOfWeek > 6 || trainingExerciseSet.TrainingDayId == 0 ||
                trainingExerciseSet.TrainingExerciseId == 0 || trainingExerciseSet.Id == 0)
            {
                return(null);
            }

            var row = _dbContext.TrainingExerciseSet.Where(t => t.UserId == trainingExerciseSet.UserId &&
                                                           t.Year == trainingExerciseSet.Year &&
                                                           t.WeekOfYear == trainingExerciseSet.WeekOfYear &&
                                                           t.DayOfWeek == trainingExerciseSet.DayOfWeek &&
                                                           t.TrainingDayId == trainingExerciseSet.TrainingDayId &&
                                                           t.TrainingExerciseId == trainingExerciseSet.TrainingExerciseId &&
                                                           t.Id == trainingExerciseSet.Id).FirstOrDefault();

            if (row == null)
            { // No data in database
                return(Create(trainingExerciseSet));
            }
            else
            { //Modify Data in database
                TrainingExerciseSetTransformer.ToRow(trainingExerciseSet, row);
                _dbContext.SaveChanges();
                return(TrainingExerciseSetTransformer.ToBean(row));
            }
        }
예제 #4
0
 private void TransformMetricUnitToUserUnit(TUnitType userUnit, TrainingExerciseSet trainingExerciseSet)
 {
     if (trainingExerciseSet != null)
     {
         trainingExerciseSet.Weight = Utils.TransformWeightToUnitSytem(TUnitType.Metric, userUnit, trainingExerciseSet.Weight);
     }
 }
예제 #5
0
        /// <summary>
        /// Create data in database
        /// </summary>
        /// <param name="trainingExerciseSet">Data</param>
        /// <returns>insert data</returns>
        public TrainingExerciseSet Create(TrainingExerciseSet trainingExerciseSet)
        {
            if (trainingExerciseSet == null || string.IsNullOrWhiteSpace(trainingExerciseSet.UserId) ||
                trainingExerciseSet.Year == 0 || trainingExerciseSet.WeekOfYear == 0 ||
                trainingExerciseSet.DayOfWeek < 0 || trainingExerciseSet.DayOfWeek > 6 || trainingExerciseSet.TrainingDayId == 0 ||
                trainingExerciseSet.TrainingExerciseId == 0 || trainingExerciseSet.Id == 0)
            {
                return(null);
            }

            var row = new TrainingExerciseSetRow();

            TrainingExerciseSetTransformer.ToRow(trainingExerciseSet, row);
            _dbContext.Insert(row);
            return(TrainingExerciseSetTransformer.ToBean(row));
        }
예제 #6
0
        public static void ToRow(TrainingExerciseSet bean, TrainingExerciseSetRow row)
        {
            if (bean == null)
            {
                return;
            }

            row.UserId             = bean.UserId;
            row.Year               = bean.Year;
            row.WeekOfYear         = bean.WeekOfYear;
            row.DayOfWeek          = bean.DayOfWeek;
            row.TrainingDayId      = bean.TrainingDayId;
            row.TrainingExerciseId = bean.TrainingExerciseId;
            row.Id               = bean.Id;
            row.NumberOfSets     = bean.NumberOfSets;
            row.NumberOfReps     = bean.NumberOfReps;
            row.Weight           = bean.Weight;
            row.Unit             = (int)bean.Unit;
            row.ModificationDate = bean.ModificationDate;
        }
예제 #7
0
        public static void ToRow(TrainingExerciseSet bean, TrainingExerciseSetRow row)
        {
            if (bean == null)
            {
                return;
            }

            row.UserId             = bean.UserId;
            row.Year               = bean.Year;
            row.WeekOfYear         = bean.WeekOfYear;
            row.DayOfWeek          = bean.DayOfWeek;
            row.TrainingDayId      = bean.TrainingDayId;
            row.TrainingExerciseId = bean.TrainingExerciseId;
            row.Id               = bean.Id;
            row.NumberOfSets     = bean.NumberOfSets;
            row.NumberOfReps     = bean.NumberOfReps;
            row.Weight           = bean.Weight;
            row.ModificationDate = DbUtils.DbDateToUtc(bean.ModificationDate);
            row.ExecutionTime    = bean.ExecutionTime;
        }
예제 #8
0
        internal static TrainingExerciseSet ToBean(TrainingExerciseSetRow row)
        {
            if (row == null)
            {
                return(null);
            }

            var bean = new TrainingExerciseSet();

            bean.UserId             = row.UserId;
            bean.Year               = row.Year;
            bean.WeekOfYear         = row.WeekOfYear;
            bean.DayOfWeek          = row.DayOfWeek;
            bean.TrainingDayId      = row.TrainingDayId;
            bean.TrainingExerciseId = row.TrainingExerciseId;
            bean.Id               = row.Id;
            bean.NumberOfSets     = row.NumberOfSets;
            bean.NumberOfReps     = row.NumberOfReps;
            bean.Weight           = row.Weight;
            bean.Unit             = Utils.IntToEnum <TUnitType>(row.Unit);
            bean.ModificationDate = row.ModificationDate;
            return(bean);
        }
예제 #9
0
        public static void ToRow(TrainingExerciseSet bean, TrainingExerciseSetRow row)
        {
            if (bean == null)
            {
                return;
            }

            row.UserId             = bean.UserId;
            row.Year               = bean.Year;
            row.WeekOfYear         = bean.WeekOfYear;
            row.DayOfWeek          = bean.DayOfWeek;
            row.TrainingDayId      = bean.TrainingDayId;
            row.TrainingExerciseId = bean.TrainingExerciseId;
            row.Id               = bean.Id;
            row.NumberOfSets     = bean.NumberOfSets;
            row.NumberOfReps     = bean.NumberOfReps;
            row.Weight           = bean.Weight;
            row.ModificationDate = DbUtils.DateToUtc(Utils.DateTimeWithoutMs); // Set modificationDate
            if (bean.ObjectVersionNumber > 0)                                  // Retrocompatibility
            {
                row.ExecutionTime = bean.ExecutionTime;
            }
        }
예제 #10
0
        internal static TrainingExerciseSet ToBean(TrainingExerciseSetRow row)
        {
            if (row == null)
            {
                return(null);
            }

            var bean = new TrainingExerciseSet();

            bean.UserId             = row.UserId;
            bean.Year               = row.Year;
            bean.WeekOfYear         = row.WeekOfYear;
            bean.DayOfWeek          = row.DayOfWeek;
            bean.TrainingDayId      = row.TrainingDayId;
            bean.TrainingExerciseId = row.TrainingExerciseId;
            bean.Id               = row.Id;
            bean.NumberOfSets     = row.NumberOfSets;
            bean.NumberOfReps     = row.NumberOfReps;
            bean.Weight           = row.Weight;
            bean.ModificationDate = DbUtils.DbDateToUtc(row.ModificationDate);
            bean.ExecutionTime    = row.ExecutionTime.HasValue ? row.ExecutionTime.Value : 0;
            return(bean);
        }
 public TrainingExerciseSet UpdateTrainingExerciseSet(TrainingExerciseSet trainingExerciseSet)
 {
     return(_trainingExerciseSetModule.Update(trainingExerciseSet));
 }