public MainWindow() { InitializeComponent(); ProgressSpinner.IsActive = true; ThemeManager.AddAccent("CustomAccentUMN", new Uri("pack://application:,,,/UMN-SCCMApplicationCategorization;component/Styles/CustomAccentUMN.xaml")); SmsProvider smsProvider = new SmsProvider(); if (smsProvider.TestConnection(Properties.Settings.Default.CMSiteServer)) { cmAppCategories = cmHandler.GetCMApplicationCategories(true); var categories = new ObservableCollection <string>(cmAppCategories.Select(c => c.LocalizedCategoryInstanceName).OrderBy(c => c).ToList()); CategoriesListBox.DataContext = categories; } else { MessageBox.Show("Issue connecting to site server: " + Properties.Settings.Default.CMSiteServer + Environment.NewLine + "Go to File->Settings to update site server address."); } if (Properties.Settings.Default.DarkTheme) { ThemeManager.ChangeAppStyle(this, ThemeManager.GetAccent("CustomAccentUMN"), ThemeManager.GetAppTheme("BaseDark")); DarkThemeSlider.IsChecked = true; } else { ThemeManager.ChangeAppStyle(this, ThemeManager.GetAccent("CustomAccentUMN"), ThemeManager.GetAppTheme("BaseLight")); DarkThemeSlider.IsChecked = false; } ProgressSpinner.IsActive = false; }
public void RemoveCMApplicationCategory(string appName, string categoryName) { SmsProvider smsProvider = new SmsProvider(); WqlConnectionManager connectionManager = smsProvider.Connect(SiteServer); ObservableCollection <CMApplicationCategory> applicationCategories = GetCMApplicationCategories(false); string appQuery = string.Format("SELECT * FROM SMS_ApplicationLatest WHERE (IsHidden = 0) AND (LocalizedDisplayName = '{0}')", appName); IResultObject appQueryResult = connectionManager.QueryProcessor.ExecuteQuery(appQuery); if (appQueryResult != null) { foreach (IResultObject app in appQueryResult) { ArrayList appCategories = new ArrayList(app["CategoryInstance_UniqueIDs"].StringArrayValue); CMApplicationCategory applicationCategory = applicationCategories.Where(c => c.LocalizedCategoryInstanceName == categoryName).First(); if (appCategories.Contains(applicationCategory.CategoryInstance_UniqueID)) { appCategories.Remove(applicationCategory.CategoryInstance_UniqueID); app["CategoryInstance_UniqueIDs"].StringArrayValue = (string[])appCategories.ToArray(typeof(string)); app.Put(); } else { MessageBox.Show(appName + " doesn't contain " + categoryName); } } } }
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 ObservableCollection <CMApplicationCategory> GetCMApplicationCategories(bool includeAllApplications) { ObservableCollection <CMApplicationCategory> applicationCategories = new ObservableCollection <CMApplicationCategory>(); SmsProvider smsProvider = new SmsProvider(); WqlConnectionManager connectionManager = smsProvider.Connect(SiteServer); string appCatagoriesQuery = "SELECT * FROM SMS_CategoryInstance WHERE (CategoryTypeName = 'AppCategories')"; try { IResultObject appCategoriesQueryResult = connectionManager.QueryProcessor.ExecuteQuery(appCatagoriesQuery); if (appCategoriesQueryResult != null) { foreach (IResultObject appCategory in appCategoriesQueryResult) { CMApplicationCategory cmApplicationCategory = new CMApplicationCategory(); cmApplicationCategory.CategoryInstanceID = appCategory["CategoryInstanceID"].IntegerValue; cmApplicationCategory.CategoryInstance_UniqueID = appCategory["CategoryInstance_UniqueID"].StringValue; cmApplicationCategory.CategoryTypeName = appCategory["CategoryTypeName"].StringValue; cmApplicationCategory.LocalizedCategoryInstanceName = appCategory["LocalizedCategoryInstanceName"].StringValue; cmApplicationCategory.ParentCategoryInstanceID = appCategory["ParentCategoryInstanceID"].IntegerValue; cmApplicationCategory.SourceSite = appCategory["SourceSite"].StringValue; applicationCategories.Add(cmApplicationCategory); } // Add All Categories Option if (includeAllApplications) { CMApplicationCategory allCategory = new CMApplicationCategory { LocalizedCategoryInstanceName = "All" }; applicationCategories.Add(allCategory); } } } catch (SmsException e) { MessageBox.Show("Error connecting to site server " + SiteServer + ": " + e.Message); } catch (NullReferenceException e) { MessageBox.Show("Error in GetCMApplicationCategories NullReferenceException: " + e.Message); } return(applicationCategories); }
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); }