internal TrainingDay UpdateTrainingDay(TrainingDay trainingDay, TrainingDayScenario trainingDayScenario) { TrainingDay trainingDayResult = null; trainingDayResult = _trainingDayModule.Update(trainingDay, AppUtils.GetUserUnit(_userInfosService, trainingDay.UserId)); SynchroManager.TrainingDayChange(DbContext, trainingDayResult); if (trainingDayScenario != null && trainingDayScenario.ManageExercise) { var trainingExerciseCriteria = new TrainingExerciseCriteria() { UserId = new StringCriteria() { Equal = trainingDay.UserId }, Year = new IntegerCriteria() { Equal = trainingDay.Year }, WeekOfYear = new IntegerCriteria() { Equal = trainingDay.WeekOfYear }, DayOfWeek = new IntegerCriteria() { Equal = trainingDay.DayOfWeek }, TrainingDayId = new IntegerCriteria() { Equal = trainingDay.TrainingDayId } }; var trainingExercisesDb = _trainingExercisesService.FindTrainingExercise(trainingExerciseCriteria); if (trainingExercisesDb != null && trainingExercisesDb.Count > 0) { foreach (var trainingExerciseDb in trainingExercisesDb) { //remove only training exercises who do not present (for keep exercise tempos: retrocompatibility) if (trainingDay.TrainingExercises == null || !trainingDay.TrainingExercises.Any(te => te.Id == trainingExerciseDb.Id)) { _trainingExercisesService.DeleteTrainingExercise(trainingExerciseDb); } } } if (trainingDay.TrainingExercises != null) { trainingDayResult.TrainingExercises = new List <TrainingExercise>(); foreach (var trainingExercise in trainingDay.TrainingExercises) { trainingDayResult.TrainingExercises.Add(_trainingExercisesService.UpdateTrainingExercise(trainingExercise, true)); } } } return(trainingDayResult); }
internal TrainingDay CreateTrainingDay(TrainingDay trainingDay) { var trainingDayCriteria = new TrainingDayCriteria() { UserId = new StringCriteria() { Equal = trainingDay.UserId }, Year = new IntegerCriteria() { Equal = trainingDay.Year }, WeekOfYear = new IntegerCriteria() { Equal = trainingDay.WeekOfYear }, DayOfWeek = new IntegerCriteria() { Equal = trainingDay.DayOfWeek }, }; var trainingDayScenario = new TrainingDayScenario() { ManageExercise = false }; var trainingDayList = FindTrainingDay(AppUtils.GetUserUnit(_userInfosService, trainingDay.UserId), trainingDayCriteria, trainingDayScenario); int trainingDayId = 1; if (trainingDayList != null && trainingDayList.Count > 0) { trainingDayId = trainingDayList.Max(td => td.TrainingDayId) + 1; } trainingDay.TrainingDayId = trainingDayId; // no need transaction, only header TrainingDay trainingDayResult = null; trainingDayResult = _trainingDayModule.Create(trainingDay, AppUtils.GetUserUnit(_userInfosService, trainingDay.UserId)); SynchroManager.TrainingDayChange(DbContext, trainingDayResult); if (trainingDay.TrainingExercises != null) { trainingDayResult.TrainingExercises = new List <TrainingExercise>(); foreach (var trainingExercise in trainingDay.TrainingExercises) { trainingDayResult.TrainingExercises.Add(_trainingExercisesService.CreateTrainingExercise(trainingExercise)); } } return(trainingDayResult); }
public void DeleteTrainingDay(TrainingDayKey key) { var trainingDayScenario = new TrainingDayScenario() { ManageExercise = true }; var trainingDay = GetTrainingDay(key, trainingDayScenario); if (trainingDay != null) { _trainingDayModule.Delete(trainingDay); SynchroManager.TrainingDayChange(DbContext, trainingDay, true); if (trainingDay.TrainingExercises != null) { foreach (var trainingExercise in trainingDay.TrainingExercises) { _trainingExercisesService.DeleteTrainingExercise(trainingExercise); } } } }