public void Run() { try { exitCode = ExitCode.ErrorServerNotStarted; Log.Info("will start.........."); ConsoleSampleServer().Wait(); Console.WriteLine("Server started."); exitCode = ExitCode.ErrorServerRunning; } catch (Exception ex) { Utils.Trace("ServiceResultException:" + ex.Message); Console.WriteLine("Exception: {0}", ex.Message); exitCode = ExitCode.ErrorServerException; return; } exitCode = ExitCode.Ok; }
public void Run() { try { exitCode = ExitCode.ErrorServerNotStarted; Log.Info("will start.........."); ConsoleSampleServer().Wait(); Console.WriteLine("Server started."); exitCode = ExitCode.Ok; } catch (Exception ex) { var st = ex.Message; if (!(IgnoreFurtherErrors && (st.Contains("Mindestens ein") || st.Contains("At least")))) { Utils.Trace("ServiceResultException:" + st); Log.Error(ex, "starting server"); Console.WriteLine("Exception: {0}", ex.Message); exitCode = ExitCode.ErrorServerException; Stop(); FinallyStopped = AllowFinallyStopped; } } }
private void ButtonTabPanels_Click(object sender, RoutedEventArgs e) { if (sender == ButtonCreateDoc) { // show the edit panel OuterTabControl.SelectedItem = TabPanelEdit; ButtonAddUpdateDoc.Content = "Add"; //// TODO (MIHO, 2020-09-29): if the V1.1 template works and is adopted, the old //// V1.0 shall be removed completely (over complicated) */ //// make a template description for the content (remeber it) var desc = theOptions.FormVdi2770; if (desc == null) { desc = DocumentShelfOptions.CreateVdi2770TemplateDesc(theOptions); } // latest version (from resources) if (this.CheckBoxLatestVersion.IsChecked == true) { desc = DocumentShelfOptions.CreateVdi2770v11TemplateDesc(); } this.currentFormDescription = desc; formInUpdateMode = false; updateSourceElements = null; // take over existing data this.currentFormInst = new FormInstanceSubmodelElementCollection(null, currentFormDescription); this.currentFormInst.PresetInstancesBasedOnSource(updateSourceElements); this.currentFormInst.outerEventStack = theEventStack; // bring it to the panel var elementsCntl = new FormListOfDifferentControl(); elementsCntl.ShowHeader = false; elementsCntl.DataContext = this.currentFormInst; ScrollViewerForm.Content = elementsCntl; } if (sender == ButtonAddUpdateDoc) { // add if (this.currentFormInst != null && this.currentFormDescription != null && thePackage != null && theOptions != null && theOptions.SemIdDocument != null && theSubmodel != null) { // on this level of the hierarchy, shall a new SMEC be created or shall // the existing source of elements be used? AdminShell.SubmodelElementWrapperCollection currentElements = null; if (formInUpdateMode && updateSourceElements != null) { currentElements = updateSourceElements; } else { currentElements = new AdminShell.SubmodelElementWrapperCollection(); } // create a sequence of SMEs try { this.currentFormInst.AddOrUpdateDifferentElementsToCollection( currentElements, thePackage, addFilesToPackage: true); } catch (Exception ex) { Log.Error(ex, "when adding Document"); } // the InstSubmodel, which started the process, should have a "fresh" SMEC available // make it unique in the Documentens Submodel var newSmc = this.currentFormInst?.sme as AdminShell.SubmodelElementCollection; // if not update, put them into the Document's Submodel if (!formInUpdateMode && currentElements != null && newSmc != null) { // make newSmc unique in the cotext of the Submodel FormInstanceHelper.MakeIdShortUnique(theSubmodel.submodelElements, newSmc); // add the elements newSmc.value = currentElements; // add the whole SMC theSubmodel.Add(newSmc); } #if __may_be_not__ // save directly to ensure consistency try { if (thePackage.Filename != null) { thePackage.SaveAs(thePackage.Filename); } } catch (Exception ex) { if (theLogger != null) { theLogger.Log( $"Saving package {thePackage.Filename} failed for adding Document " + $"and gave: {ex.Message}"); } } #endif } else { Log.Error("Preconditions for adding Document not met."); } // change back OuterTabControl.SelectedItem = TabPanelList; // re-display ParseSubmodelToListItems( this.theSubmodel, this.theOptions, theViewModel.TheSelectedDocClass, theViewModel.TheSelectedLanguage, theViewModel.TheSelectedListType); // re-display also in Explorer var evt = new AasxPluginResultEventRedrawAllElements(); if (theEventStack != null) { theEventStack.PushEvent(evt); } } if (sender == ButtonCancel) { OuterTabControl.SelectedItem = TabPanelList; } if (sender == ButtonFixCDs) { // check if CDs are present var theDefs = new AasxPredefinedConcepts.DefinitionsVDI2770.SetOfDefsVDI2770( new AasxPredefinedConcepts.DefinitionsVDI2770()); var theCds = theDefs.GetAllReferables().Where( (rf) => { return(rf is AdminShell.ConceptDescription); }).ToList(); // v11 if (CheckBoxLatestVersion.IsChecked == true) { theCds = AasxPredefinedConcepts.VDI2770v11.Static.GetAllReferables().Where( (rf) => { return(rf is AdminShell.ConceptDescription); }).ToList(); } if (theCds.Count < 1) { Log.Error( "Not able to find appropriate ConceptDescriptions in pre-definitions. " + "Aborting."); return; } // check for Environment var env = this.thePackage?.AasEnv; if (env == null) { Log.Error( "Not able to access AAS environment for set of Submodel's ConceptDescriptions. Aborting."); return; } // be safe? if (MessageBoxResult.Yes != MessageBox.Show( "Add missing ConceptDescriptions to the AAS?", "Question", MessageBoxButton.YesNo, MessageBoxImage.Warning)) { return; } // ok, check int nr = 0; foreach (var x in theCds) { var cd = x as AdminShell.ConceptDescription; if (cd == null || cd.identification == null) { continue; } var cdFound = env.FindConceptDescription(cd.identification); if (cdFound != null) { continue; } // ok, add var newCd = new AdminShell.ConceptDescription(cd); env.ConceptDescriptions.Add(newCd); nr++; } // ok Log.Info("In total, {0} ConceptDescriptions were added to the AAS environment.", nr); } if (sender == ButtonCreateEntity) { // show the edit panel OuterTabControl.SelectedItem = TabPanelEntity; } if (sender == ButtonCancelEntity) { OuterTabControl.SelectedItem = TabPanelList; } if (sender == ButtonAddEntity && this.theSubmodel != null && TextBoxEntityIdShort.Text.Trim().HasContent()) { // add entity this.theSubmodel.SmeForWrite.CreateSMEForCD <AdminShell.Entity>( AasxPredefinedConcepts.VDI2770v11.Static.CD_DocumentedEntity, idShort: "" + TextBoxEntityIdShort.Text.Trim(), addSme: true); // switch back OuterTabControl.SelectedItem = TabPanelList; // re-display also in Explorer var evt = new AasxPluginResultEventRedrawAllElements(); if (theEventStack != null) { theEventStack.PushEvent(evt); } } }
private void ButtonTabPanels_Click(object sender, RoutedEventArgs e) { if (sender == ButtonUpdate) { // add if (this.currentFormInst != null && thePackage != null && theOptions != null && theSubmodel != null) { // on this level of the hierarchy, shall a new SMEC be created or shall // the existing source of elements be used? AdminShell.SubmodelElementWrapperCollection currentElements = null; if (formInUpdateMode && updateSourceElements != null) { currentElements = updateSourceElements; } else { } // create a sequence of SMEs try { this.currentFormInst.AddOrUpdateDifferentElementsToCollection( currentElements, thePackage, addFilesToPackage: true, editSource: true); } catch (Exception ex) { Log.Error(ex, "when adding Document"); } #if __may_be_not__ // save directly to ensure consistency try { if (thePackage.Filename != null) { thePackage.SaveAs(thePackage.Filename); } } catch (Exception ex) { if (theLogger != null) { theLogger.Log( $"Saving package {thePackage.Filename} failed for adding Document " + $"and gave: {ex.Message}"); } } #endif } else { Log.Error("Preconditions for adding entities from GenericForm not met."); } // re-display DisplaySubmodel(); // re-display also in Explorer var evt = new AasxPluginResultEventRedrawAllElements(); if (theEventStack != null) { theEventStack.PushEvent(evt); } } if (sender == ButtonFixCDs) { // check if CDs are present if (currentFormRecord == null || currentFormRecord.ConceptDescriptions == null || currentFormRecord.ConceptDescriptions.Count < 1) { Log.Error( "Not able to find appropriate ConceptDescriptions in the GeneralForm option records. " + "Aborting."); return; } // check for Environment var env = this.thePackage?.AasEnv; if (env == null) { Log.Error( "Not able to access AAS environment for set of Submodel's ConceptDescriptions. Aborting."); return; } // be safe? if (MessageBoxResult.Yes != MessageBox.Show( "Add missing ConceptDescriptions to the AAS?", "Question", MessageBoxButton.YesNo, MessageBoxImage.Warning)) { return; } // ok, check int nr = 0; foreach (var cd in currentFormRecord.ConceptDescriptions) { if (cd == null || cd.identification == null) { continue; } var cdFound = env.FindConceptDescription(cd.identification); if (cdFound != null) { continue; } // ok, add var newCd = new AdminShell.ConceptDescription(cd); env.ConceptDescriptions.Add(newCd); nr++; } // ok Log.Info("In total, {0} ConceptDescriptions were added to the AAS environment.", nr); } }
// // Start page // private async void ProceedOnPageStart() { // make runtime options to link to this dialogue var ro = new PackCntRuntimeOptions() { Log = _logger, ProgressChanged = (state, tfs, tbd) => { if (state == PackCntRuntimeOptions.Progress.Ongoing) { // determine if (tfs == null) { tfs = 5 * 1024 * 1024; } var frac = Math.Min(100.0, 100.0 * tbd / tfs.Value); var bshr = AdminShellUtil.ByteSizeHumanReadable(tbd); SetProgressBar(frac, $"{bshr} transferred"); } if (state == PackCntRuntimeOptions.Progress.Final) { SetProgressBar(0.0, ""); } }, AskForSelectFromList = (caption, items, propRes) => { TabItemSelectFromList.Dispatcher.BeginInvoke( System.Windows.Threading.DispatcherPriority.Background, new Action(() => { StartPageSelectFromList(caption, items, (li) => { // never again _selectFromListAction = null; // call propRes?.TrySetResult(li); }); })); }, AskForCredentials = (caption, propRes) => { TabItemCredentials.Dispatcher.BeginInvoke( System.Windows.Threading.DispatcherPriority.Background, new Action(() => { StartPageAskCredentials(caption, (pcc) => { // never again _askedUserCredentials = null; // call propRes?.TrySetResult(pcc); }); })); } }; // Log var location = TextBoxStartLocation.Text; _logger?.Info($"Connect (integrated): Trying to connect to {location} .."); // try do the magic try { // quickly parse out container options var copts = PackageContainerOptionsBase.CreateDefault(Options.Curr, loadResident: true); copts.StayConnected = true == CheckBoxStayConnected.IsChecked; if (Int32.TryParse("" + TextBoxUpdatePeriod.Text, out int i)) { copts.UpdatePeriod = Math.Max(OptionsInformation.MinimumUpdatePeriod, i); } // create container var x = await PackageContainerFactory.GuessAndCreateForAsync( _packageCentral, location, location, overrideLoadResident : true, containerOptions : copts, runtimeOptions : ro); // returning "x" is the only way to end the dialogue successfuly if (x != null) { // prepare result _logger?.Info($"Connect (integrated): guessing and creating container package " + $"succeeded with {x.ToString()} !"); this.Result = true; this.ResultContainer = x; // close now? if (true == CheckBoxStayAutoClose.IsChecked) { // trigger close ControlClosed?.Invoke(); } else { // proceed to summary page StartPageSummary(); } } } catch (Exception ex) { _logger?.Error(ex, "when guessing for packager container!"); } }