public List <CMApplication> GetCMApplicationsByCategory(string category)
        {
            List <CMApplication> cmApps = new List <CMApplication>();

            SmsProvider          smsProvider       = new SmsProvider();
            WqlConnectionManager connectionManager = smsProvider.Connect(SiteServer);

            string appQuery = null;

            if (category == "All")
            {
                appQuery = string.Format("SELECT * FROM SMS_ApplicationLatest WHERE (IsHidden = 0)");
            }
            else
            {
                appQuery = string.Format("SELECT * FROM SMS_ApplicationLatest WHERE (IsHidden = 0) AND (LocalizedCategoryInstanceNames = '{0}')", category);
            }

            try {
                IResultObject appQueryResult = connectionManager.QueryProcessor.ExecuteQuery(appQuery);

                if (appQueryResult != null)
                {
                    foreach (IResultObject app in appQueryResult)
                    {
                        CMApplication application = new CMApplication();
                        application.ApplicationName = app["LocalizedDisplayName"].StringValue;

                        if (app["LocalizedCategoryInstanceNames"] != null)
                        {
                            foreach (string appCategory in app["LocalizedCategoryInstanceNames"].StringArrayValue)
                            {
                                if (!string.IsNullOrEmpty(appCategory))
                                {
                                    application.ApplicationCategories.Add(appCategory);
                                }
                            }
                        }

                        cmApps.Add(application);
                    }
                }
            } catch (SmsException e) {
                MessageBox.Show("Error in GetCMApplicationsByCategory SmsException: " + e.Message);
            } catch (NullReferenceException e) {
                MessageBox.Show("Error in GetCMApplicationsByCategory NullReferenceException: " + e.Message);
            }

            return(cmApps);
        }
        public List <CMApplication> GetCMApplications(string filter)
        {
            List <CMApplication> cmApps = new List <CMApplication>();

            SmsProvider          smsProvider       = new SmsProvider();
            WqlConnectionManager connectionManager = smsProvider.Connect(SiteServer);

            string appQuery = null;

            if (!string.IsNullOrEmpty(filter))
            {
                appQuery = string.Format("SELECT * FROM SMS_ApplicationLatest WHERE (IsHidden = 0) AND (LocalizedDisplayName = '{0}')", filter);
            }
            else
            {
                appQuery = "SELECT * FROM SMS_ApplicationLatest WHERE (IsHidden = 0)";
            }

            IResultObject appQueryResult = connectionManager.QueryProcessor.ExecuteQuery(appQuery);

            if (appQueryResult != null)
            {
                foreach (IResultObject app in appQueryResult)
                {
                    CMApplication application = new CMApplication();

                    application.ApplicationName = app["LocalizedDisplayName"].StringValue;

                    if (app["LocalizedCategoryInstanceNames"] != null)
                    {
                        foreach (string category in app["LocalizedCategoryInstanceNames"].StringArrayValue)
                        {
                            if (!String.IsNullOrEmpty(category))
                            {
                            }
                        }
                    }
                    cmApps.Add(application);
                }
            }

            return(cmApps);
        }