internal SolverContext Save(string path) { CpModel model; if (!Monitors.Any()) { model = Solver.ExportModel(); } else if (DecisionBuilder == null) { using (var vector = new SearchMonitorVector()) { foreach (var m in Monitors) { vector.Add(m); } model = Solver.ExportModelWithSearchMonitors(vector); } } else { using (var vector = new SearchMonitorVector()) { foreach (var m in Monitors) { vector.Add(m); } model = Solver.ExportModelWithSearchMonitorsAndDecisionBuilder(vector, DecisionBuilder); } } using (var ws = File.Open(path, Create)) { Assert.NotNull(model); model.WriteTo(ws); } return(this); }