void editTrainingPlan(BodyArchitect.Service.Model.TrainingPlans.TrainingPlan plan) { ControlHelper.RunWithExceptionHandling(delegate { WorkoutPlanDTO planDto = (WorkoutPlanDTO)plan.Tag; TrainingPlanEditorWindow wnd = new TrainingPlanEditorWindow(); wnd.Fill(plan); if (wnd.ShowDialog(this) == System.Windows.Forms.DialogResult.OK) { ParentWindow.RunAsynchronousOperation(delegate { TrainingPlanChecker checker = new TrainingPlanChecker(); checker.Process(wnd.TrainingPlan); planDto.SetTrainingPlan(wnd.TrainingPlan); XmlSerializationTrainingPlanFormatter formatter = new XmlSerializationTrainingPlanFormatter(); planDto.PlanContent = formatter.ToXml(wnd.TrainingPlan).ToString(); planDto.Profile = UserContext.CurrentProfile; ServiceManager.SaveTrainingPlan(planDto); ObjectsReposidory.ClearWorkoutPlansCache(); ParentWindow.SynchronizationContext.Send(delegate { Fill(); }, null); }); } }); }
private void btnNew_Click(object sender, EventArgs e) { var plan = new BodyArchitect.Service.Model.TrainingPlans.TrainingPlan(); plan.Tag = new WorkoutPlanDTO(); editTrainingPlan(plan); }
private void checkUniquenessDayNames(TrainingPlan plan, TrainingPlanCheckResult result) { var uniqueNamesResult = from day in plan.Days group day by day.Name into g select g; var moreResult = uniqueNamesResult.Where(t => t.ToList().Count > 1); foreach (var item in moreResult) { var test = item.ToList(); for (int i = 1; i < test.Count; i++) { result.AddResult(test[i], "TrainingPlan_DaysName_Unique", TrainingPlanCheckItemStatus.Error); } } }
void check(TrainingPlan plan, TrainingPlanCheckResult result) { if (plan.RestSeconds == 0) { result.AddResult(plan, "TrainingPlan_RestSecond_Empty", TrainingPlanCheckItemStatus.Information); } if (string.IsNullOrEmpty(plan.Name)) { result.AddResult(plan, "TrainingPlan_Name_Empty", TrainingPlanCheckItemStatus.Error); } //not unique names checkUniquenessDayNames(plan, result); foreach (var day in plan.Days) { check(day, result); } }
public void Process(TrainingPlan plan) { foreach (TrainingPlanDay day in plan.Days) { for (int i = day.Entries.Count - 1; i >= 0; i--) { if (day.Entries[i].ExerciseId == Guid.Empty) { day.RemoveEntry(day.Entries[i]); } } for (int i = day.SuperSets.Count - 1; i >= 0; i--) { if (day.SuperSets[i].SuperSets.Count < 2) { day.SuperSets.RemoveAt(i); } } } }
public static TrainingPlanPack Create(TrainingPlan plan, IDictionary <Guid, ExerciseDTO> exercises) { if (plan == null) { throw new ArgumentNullException("plan"); } TrainingPlanPack pack = new TrainingPlanPack(); pack.TrainingPlan = plan; foreach (var day in pack.TrainingPlan.Days) { foreach (var entry in day.Entries) { if (exercises.ContainsKey(entry.ExerciseId) && !pack.Exercises.Contains(entry.ExerciseId)) { pack.Exercises.Add(entry.ExerciseId); } } } return(pack); }