/// <summary> /// Returns the SiteCode of the SMS Provider where the WQLConnectionManager is connected to /// </summary> /// <param name="siteServer">Name of the SMS Provider</param> /// <returns>Sitecode of the connected Site</returns> public static async Task <string> GetSiteCodeAsync(string siteServer) { var result = await Task.Run(() => { try { using (WQLHelper wql = new WQLHelper(siteServer)) { return(wql.GetSiteCode()); } } catch (System.Runtime.InteropServices.COMException ex) { System.Windows.Forms.MessageBox.Show($"{ex.GetType().Name} : {ex.Message}", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Error); return(null); } catch (System.Management.ManagementException ex) { System.Windows.Forms.MessageBox.Show($"{ex.GetType().Name} : {ex.Message}", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Error); return(null); } catch (SmsConnectionException ex) { System.Windows.Forms.MessageBox.Show($"{ex.GetType().Name} : {ex.Message}", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Error); return(null); } catch (Exception ex) { System.Windows.Forms.MessageBox.Show($"{ex.GetType().Name} : {ex.GetType().Namespace} :No SMS_Provider found", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Error); return(null); } }); return(result); }
/// <summary> /// Gathers informations for a specified SMS WMI-Class and converts the Result to a list of CMInfo derived Types /// e.g. CMApplication, CMCollection, etc. /// </summary> /// <typeparam name="T">Type of CMInfo derived Class</typeparam> /// <param name="helper">WQL Helper object </param> /// <param name="SMS_Class">SMS WMI-Class</param> /// <returns>List of type T</returns> public static async Task <List <T> > GetSMSObjectInformation <T>(WQLHelper helper, string SMS_Class) where T : CMInfo, new() { var result = await Task.Run(() => { var res = helper.QueryWmi($"Select * From {SMS_Class}"); List <T> apps = new List <T>(); foreach (WqlResultObject r in res) { var obj = r.ManagedObject; apps.Add(CMConverter <T> .ConvertFrom(obj)); } return(apps); }); return(result); }