private void btnClone_Click(object sender, EventArgs e) { var plan = TrainingPlan; if (plan == null) { return; } ParentWindow.RunAsynchronousOperation(delegate { var workoutPlan = plan.ToTrainingPlan(); workoutPlan.BasedOnId = plan.GlobalId; var copyPlan = workoutPlan.Clone(); copyPlan.BasedOnId = plan.GlobalId; copyPlan.GlobalId = Guid.NewGuid(); copyPlan.Name = StrengthTrainingEntryStrings.TrainingPlanNewName; WorkoutPlanDTO dto = new WorkoutPlanDTO(); copyPlan.Tag = dto; dto.SetTrainingPlan(copyPlan); ParentWindow.SynchronizationContext.Send(delegate { editTrainingPlan(copyPlan); }, null); }, asyncOperationStateChange); }
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); }); } }); }