Esempio n. 1
0
        public void MarkExerciseCompleted(string exerciseName, int quantity)
        {
            var exerciseHistory = ExerciseHistories.SingleOrDefault(eh =>
            {
                var todaysDate = DateTime.Today.Date;
                return(eh.RecordedDate == todaysDate && eh.ExerciseName == exerciseName);
            });

            if (exerciseHistory == null)
            {
                exerciseHistory = new ExerciseHistory
                {
                    ExerciseName      = exerciseName,
                    QuantityCompleted = quantity,
                    RecordedDate      = DateTime.Today
                };

                _db.Insert(exerciseHistory);
            }
            else
            {
                exerciseHistory.QuantityCompleted += quantity;
                _db.Update(exerciseHistory);
            }
        }
Esempio n. 2
0
 public void UpdateCell(ExerciseHistory history)
 {
     ExerciseName.Text            = history.ExerciseName + ":";
     ExerciseName.TextColor       = Colors.PrimaryColor;
     ExerciseCountLabel.Text      = $"{history.QuantityCompleted} Completed";
     ExerciseCountLabel.TextColor = Colors.PrimaryColor;
 }
Esempio n. 3
0
        public async Task <ExerciseHistoryDto> AddExerciseHistoryAsync(int exerciseId, int userId)
        {
            Exercise exercise = await exerciseRepository.GetByIdAsync(exerciseId);

            if (exercise?.TrainingTemplate.CreatorId != userId)
            {
                return(null);
            }

            ActiveTraining activeTraining = exercise.TrainingTemplate.Creator.ActiveTraining;

            if (activeTraining is null || !exercise.TrainingTemplate.Equals(activeTraining.TrainingTemplate))
            {
                return(null);
            }

            ExerciseHistory exerciseHistory = mapper.Map <Exercise, ExerciseHistory>(exercise);

            exerciseHistory.EndDate           = DateTime.Now.ToUniversalTime();
            exerciseHistory.TrainingHistoryId = activeTraining.TrainingHistory.Id;
            exerciseHistory.Properties        =
                exercise.Properties.Select(p => mapper.Map <ExerciseProperty, ExercisePropertyHistory>(p)).ToList();


            exerciseHistory = await exerciseHistoryRepository.AddAsync(exerciseHistory);

            await exerciseHistoryRepository.SaveChangesAsync();

            return(mapper.Map <ExerciseHistory, ExerciseHistoryDto>(exerciseHistory));
        }
        public async Task <WorkoutHistory> CreateIncludingExerciseHistories(WorkoutHistory newWorkoutHistory, Guid ownerGuid)
        {
            var workoutBluePrint = FittifyContext.Workouts.FirstOrDefault(w => w.Id == newWorkoutHistory.WorkoutId);

            if (workoutBluePrint == null && newWorkoutHistory.Workout != null)
            {
                workoutBluePrint = FittifyContext.Workouts.FirstOrDefault(w => w.Id == newWorkoutHistory.Workout.Id);
            }

            newWorkoutHistory.Workout   = workoutBluePrint;
            newWorkoutHistory.OwnerGuid = ownerGuid;
            await FittifyContext.AddAsync(newWorkoutHistory);

            await FittifyContext.SaveChangesAsync();

            var listExerciseHistories = new List <ExerciseHistory>();

            foreach (var map in FittifyContext.MapExerciseWorkout
                     .Where(map => map.WorkoutId == workoutBluePrint.Id)
                     .Include(i => i.Exercise)
                     .ToList())
            {
                var exerciseHistory = new ExerciseHistory();
                exerciseHistory.Exercise           = map.Exercise;
                exerciseHistory.WorkoutHistory     = newWorkoutHistory;
                exerciseHistory.WorkoutHistoryId   = newWorkoutHistory.Id;
                exerciseHistory.ExecutedOnDateTime = DateTime.Now;
                exerciseHistory.OwnerGuid          = ownerGuid;

                // Finding the latest non null and non-empty previous exerciseHistory
                exerciseHistory.PreviousExerciseHistory =
                    FittifyContext
                    .ExerciseHistories
                    .OrderByDescending(o => o.Id)
                    .FirstOrDefault(eH => eH.Exercise == map.Exercise &&
                                    (FittifyContext.WeightLiftingSets.OrderByDescending(o => o.Id).FirstOrDefault(wls => wls.ExerciseHistoryId == eH.Id && wls.RepetitionsFull != null) != null ||
                                     FittifyContext.CardioSets.OrderByDescending(o => o.Id).FirstOrDefault(cds => cds.ExerciseHistoryId == eH.Id && cds.DateTimeStart != null && cds.DateTimeEnd != null) != null));

                listExerciseHistories.Add(exerciseHistory);
            }

            newWorkoutHistory.ExerciseHistories = listExerciseHistories;

            await FittifyContext.SaveChangesAsync();

            return(newWorkoutHistory);
        }