public override void OnNext() { base.OnNext(); try { List <LayerDesc> layerDescs = new List <LayerDesc>(); foreach (ILayer2D layer2D in uCtrlLayerList.Selected) { layerDescs.Add(layer2D.LayerDescriptor); } Solution.SetSolver(new LayerSolver()); AnalysisCaseTruck analysis = AnalysisCast; if (null == analysis) { AnalysisBase = _document.CreateNewAnalysisCaseTruck( ItemName, ItemDescription , SelectedPackable, SelectedTruck , new List <InterlayerProperties>() , BuildConstraintSet() , layerDescs ); } else { analysis.ID.SetNameDesc(ItemName, ItemDescription); analysis.Content = SelectedPackable; analysis.TruckProperties = SelectedTruck; analysis.ConstraintSet = BuildConstraintSet(); analysis.AddSolution(layerDescs); _document.UpdateAnalysis(analysis); } Close(); } catch (Exception ex) { _log.Error(ex.ToString()); } }