protected ExerciseProfileData CreateExerciseRecord(Exercise exercise, Profile profile, Tuple <int, decimal> serie, DateTime trainingDate, Customer customer = null) { var trainingDay = new TrainingDay(trainingDate); trainingDay.Customer = customer; trainingDay.Profile = profile; StrengthTrainingEntry entry = new StrengthTrainingEntry(); entry.MyPlace = GetDefaultMyPlace(profile); trainingDay.AddEntry(entry); StrengthTrainingItem item = new StrengthTrainingItem(); item.Exercise = exercise; entry.AddEntry(item); Serie set1 = new Serie(); set1.RepetitionNumber = serie.Item1; set1.Weight = serie.Item2; item.AddSerie(set1); insertToDatabase(trainingDay); ExerciseProfileData data = new ExerciseProfileData(); data.Profile = profile; data.Customer = customer; data.Serie = set1; data.TrainingDate = trainingDate; data.Repetitions = serie.Item1; data.MaxWeight = serie.Item2; data.Exercise = exercise; insertToDatabase(data); return(data); }
public void DeleteOrphandExerciseRecords(DeleteOldProfilesParam param) { Serie serie = null; ExerciseProfileData profileData = null; var unusedProfiles = NHibernateContext.Current().Session.QueryOver <ExerciseProfileData>().JoinAlias(x => x.Serie, () => serie) .JoinAlias(x => serie.ExerciseProfileData, () => profileData) .Where(x => profileData.GlobalId != x.GlobalId).List(); if (!param.OnlyShowUsers) { using (var trans = NHibernateContext.Current().Session.BeginSaveTransaction()) { foreach (var unusedProfile in unusedProfiles) { try { if (unusedProfile.GlobalId != unusedProfile.Serie.ExerciseProfileData.GlobalId) { NHibernateContext.Current().Session.Delete(unusedProfile); } } catch (Exception ex) { BodyArchitect.Logger.ExceptionHandler.Default.Process(ex); throw; } } trans.Commit(); } } }
public void ExerciseProfileData_RemoveMaxWeightDay_LastEntryForExercise() { var profile = (ProfileDTO)profiles[0].Tag; SessionData data = CreateNewSession(profile, ClientInformation); var day = new TrainingDay(DateTime.Now.Date); day.Profile = profiles[0]; var exercise = CreateExercise(Session, null, "test", "t", ExerciseType.Nogi, MechanicsType.Isolation, ExerciseForceType.Pull); var entry = new StrengthTrainingEntry(); entry.MyPlace = GetDefaultMyPlace(profiles[0]); day.AddEntry(entry); var item = new StrengthTrainingItem(); item.Exercise = exercise; entry.AddEntry(item); var serie1 = new Serie("10x10"); item.AddSerie(serie1); var serie2 = new Serie("2x40"); item.AddSerie(serie2); var serie3 = new Serie("4x20"); item.AddSerie(serie3); insertToDatabase(day); ExerciseProfileData exData = new ExerciseProfileData(); exData.Exercise = exercise; exData.Profile = profiles[0]; exData.Serie = serie2; exData.MaxWeight = 40; exData.Repetitions = 2; exData.TrainingDate = day.TrainingDate; insertToDatabase(exData); RunServiceMethod(delegate(InternalBodyArchitectService Service) { DeleteTrainingDayParam param = new DeleteTrainingDayParam(); param.TrainingDayId = day.GlobalId; Service.DeleteTrainingDay(data.Token, param); }); exData = Session.QueryOver <ExerciseProfileData>().SingleOrDefault(); Assert.IsNull(exData); }