public static async Task <PackageContainerBase> Demo( PackageCentral packageCentral, string location, bool overrideLoadResident, PackageContainerOptionsBase containerOptions = null, PackCntRuntimeOptions ro = null) { // Log location ro?.Log?.Info($"Perform Demo() for location {location}"); // ask for a list var li1 = new List <SelectFromListFlyoutItem>(); li1.Add(new SelectFromListFlyoutItem("AAAAAAAAAAAAAAAAAAAAAAAAAAA", "A")); li1.Add(new SelectFromListFlyoutItem("bbbbbbbbbbbb", "B")); li1.Add(new SelectFromListFlyoutItem("CCCCCCCCCCCCCCCCCC CCCCC", "C")); var waitLi1 = new TaskCompletionSource <SelectFromListFlyoutItem>(); ro?.AskForSelectFromList?.Invoke("Testselect", li1, waitLi1); var xx = await waitLi1.Task; ro?.Log?.Info($".. selected item is {"" + xx?.Text}"); // ask for a list var li2 = new List <SelectFromListFlyoutItem>(); li2.Add(new SelectFromListFlyoutItem("111111111", "A")); li2.Add(new SelectFromListFlyoutItem("222222222222222222222222", "B")); li2.Add(new SelectFromListFlyoutItem("3333333333333 3333", "C")); var waitLi2 = new TaskCompletionSource <SelectFromListFlyoutItem>(); ro?.AskForSelectFromList?.Invoke("Testselect", li2, waitLi2); var xy = await waitLi2.Task; ro?.Log?.Info($".. selected item is {"" + xy?.Text}"); // ask for credentials var waitCre = new TaskCompletionSource <PackageContainerCredentials>(); ro?.AskForCredentials?.Invoke("Fill user credentials", waitCre); var xz = await waitCre.Task; ro?.Log?.Info($".. credentials are {"" + xz?.Username} and {"" + xz?.Password}"); // debug some important blocks of text ro?.Log?.Info(StoredPrint.Color.Yellow, "Showing fingerprint:"); var sum = ""; for (int i = 0; i < 1000; i++) { sum += $"{i} "; } ro?.Log?.Info($"Showing fingerprint: {sum}"); // done ro?.Log?.Info($".. demo loading from internet .."); return(await PackageContainerNetworkHttpFile.CreateAndLoadAsync( packageCentral, "http://admin-shell-io.com:51310/server/getaasx/0", "http://admin-shell-io.com:51310/server/getaasx/0", // "http://localhost:51310/server/getaasx/0", overrideLoadResident, null, containerOptions, ro)); }
public static async Task <PackageContainerBase> GuessAndCreateForAsync( PackageCentral packageCentral, string location, string fullItemLocation, bool overrideLoadResident, PackageContainerBase takeOver = null, PackageContainerOptionsBase containerOptions = null, PackCntRuntimeOptions runtimeOptions = null) { // access if (location == null) { return(null); } var ll = location.ToLower(); // guess runtimeOptions?.Log?.Info($"Trying to guess package container for {location} .."); var guess = PackageContainerGuess.FromLocation(location, runtimeOptions); if (guess == null) { runtimeOptions?.Log?.Info("Aborting"); return(null); } // start runtimeOptions?.Log?.Info($".. with containerOptions = {containerOptions?.ToString()}"); // TODO (MIHO, 2021-02-01): check, if demo option is still required if (ll.Contains("/demo")) { return(await Demo(packageCentral, location, overrideLoadResident, containerOptions, runtimeOptions)); } // starts with http ? if (guess.GuessedType == typeof(PackageContainerNetworkHttpFile)) { var cnt = await PackageContainerNetworkHttpFile.CreateAndLoadAsync( packageCentral, location, fullItemLocation, overrideLoadResident, takeOver, containerOptions, runtimeOptions); if (cnt.ContainerOptions.StayConnected && guess.AasId.HasContent() && guess.HeadOfPath.HasContent()) { cnt.ConnectorPrimary = new PackageConnectorHttpRest(cnt, new Uri(guess.HeadOfPath + "/aas/" + guess.AasId)); } return(cnt); } // check FileInfo for (possible?) local file FileInfo fi = null; try { fi = new FileInfo(location); } catch (Exception ex) { LogInternally.That.SilentlyIgnoredError(ex); } // if file, try to open (might throw exceptions!) if (fi != null) { // seems to be a valid (possible) file return(await PackageContainerLocalFile.CreateAndLoadAsync( packageCentral, location, fullItemLocation, overrideLoadResident, takeOver, containerOptions)); } // no?? runtimeOptions?.Log?.Info($".. no any possible option for package container found .. Aborting!"); return(null); }