示例#1
0
        // 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());
            }
        }
示例#2
0
        // 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());
            }
        }
示例#3
0
        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;
        }
示例#5
0
        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);
        }
示例#6
0
        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
        }
示例#7
0
        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);
        }