// Loads the LOB app data into the ViewModel. protected void LoadAvailablePackages(MemoryStream stream) { try { var element = XElement.Load(stream); var apps = from var in element.Descendants("App") orderby var.Attribute("Name").Value select new CompanyAppViewModel(var.Attribute("Name").Value, var.Attribute("Description").Value, var.Attribute("IconUrl").Value, new Uri(var.Attribute("XapUrl").Value), Status.NotInstalled, Guid.Parse(var.Attribute("ProductId").Value)); foreach (CompanyAppViewModel item in apps) { App.ViewModel.CompanyApps.Add(item); } // Make note of each LOB app that is already installed. IEnumerable <Package> installedPackages = InstallationManager.FindPackagesForCurrentPublisher(); foreach (Package package in installedPackages) { Guid productId = Guid.Parse(package.Id.ProductId); int index = this.FindProductIdIndex(productId); if (index != -1) { App.ViewModel.CompanyApps[index].Status = Status.Installed; } } } catch (System.Exception ex) { MessageBox.Show(ex.ToString()); } }
// Starts the LOB app with the specified product ID. private void LaunchApp(Guid productId) { try { bool found = false; IEnumerable <Package> packages = InstallationManager.FindPackagesForCurrentPublisher(); foreach (Package package in packages) { if (Guid.Parse(package.Id.ProductId) == productId) { found = true; package.Launch(string.Empty); break; } } if (found == false) { MessageBox.Show("Could not find the app to launch."); } } catch (System.Exception ex) { MessageBox.Show(ex.ToString()); } }
private void share_Click(object sender, EventArgs e) { IEnumerable <Package> packages = InstallationManager.FindPackagesForCurrentPublisher(); Package simulator = packages.FirstOrDefault(item => item.Id.Name == "NotificationSimulator"); if (simulator != null) { simulator.Launch("/MainPage.xaml?ClientChannelUri=" + channelUri.Text); } }
public void LoadData() { //use Linq to exclude the current application from the selection list IEnumerable <Package> appPackages = InstallationManager.FindPackagesForCurrentPublisher() .Where(p => p.Id.Name != "MyAppsLauncher") .AsEnumerable <Package>(); this.InstalledApps = new ObservableCollection <Package>(appPackages); this.IsDataLoaded = true; }
static int isInstalled(int L) { if (!LuaCommon.CheckAndShowArgsError(L, LConst.String)) { Lua.Lua_pushnil(L); return(1); } string appId = Lua.Lua_tostring(L, 2).Trim(); var cropApps = InstallationManager.FindPackagesForCurrentPublisher(); var result = cropApps.Any(a => a.Id.ProductId.TrimStart('{').TrimEnd('}').Equals(appId, StringComparison.CurrentCultureIgnoreCase)); Lua.Lua_pushboolean(L, result ? 1 : 0); return(1); }
private static Version InitVersion() { #if __ANDROID__ PackageInfo package; try { package = Context.PackageManager.GetPackageInfo(Context.PackageName, (PackageInfoFlags)0); } catch (PackageManager.NameNotFoundException) { return(new Version(1, 0)); } if (Version.TryParse(package.VersionName, out Version ret)) { return(ret); } else { return(new Version(1, 0)); } #elif __IOS__ var versionString = NSBundle.MainBundle.InfoDictionary[new NSString("CFBundleShortVersionString")].ToString(); if (Version.TryParse(versionString, out Version ret)) { return(ret); } else { return(new Version(1, 0)); } #elif WINDOWS_PHONE_APP var packages = InstallationManager.FindPackagesForCurrentPublisher(); var package = packages.FirstOrDefault(); if (package != null) { return(package.Id.Version.ToVersion()); } else { return(new Version(1, 0)); } #elif DESKTOP return(System.Reflection.Assembly.GetEntryAssembly().GetName().Version); #else #error Unrecognized platform #endif }
static int launch(int L) { if (!LuaCommon.CheckAndShowArgsError(L, LConst.String)) { return(0); } string appId = Lua.Lua_tostring(L, 2).Trim(); var cropApps = InstallationManager.FindPackagesForCurrentPublisher(); var app = cropApps.Where(a => a.Id.ProductId.TrimStart('{').TrimEnd('}').Equals(appId, StringComparison.CurrentCultureIgnoreCase)).FirstOrDefault(); if (app != null) { app.Launch(string.Empty); } else { string error = string.Concat("appId:", appId); LogLib.RYTLog.ShowMessage(error, "企业App启动失败"); } return(0); }