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); } }
public void UpdateCell(ExerciseHistory history) { ExerciseName.Text = history.ExerciseName + ":"; ExerciseName.TextColor = Colors.PrimaryColor; ExerciseCountLabel.Text = $"{history.QuantityCompleted} Completed"; ExerciseCountLabel.TextColor = Colors.PrimaryColor; }
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); }