public System.Collections.Generic.IEnumerable <NativeCimClass> QueryClasses(NativeDestinationOptions options, string namespaceName, string queryDialect, string queryExpression) { var client = CreateClient(options, queryDialect); foreach (EndpointAddress item in client.EnumerateEPR(new Uri(CimNamespaces.CimNamespace), new Filter(queryDialect, new CimEnumerationFilter { Namespace = namespaceName, Filter = queryExpression }), BatchSize)) { yield return(CimEnumerationHelper.CreateClass(item)); } }
public System.Collections.Generic.IEnumerable <NativeCimClass> QueryClasses(NativeDestinationOptions options, string namespaceName, string queryDialect, string queryExpression) { var context = new EnumerationContext(CimNamespaces.CimNamespace, new Filter(queryDialect, new CimEnumerationFilter { Namespace = namespaceName, Filter = queryExpression }), new Selector[0]); foreach (EndpointAddress address in _handler.Enumerate(context)) { yield return(CimEnumerationHelper.CreateClass(address)); } }
private EnumerationClient CreateClient(NativeDestinationOptions options, string queryDialect) { string serverName = string.IsNullOrEmpty(options.ServerName) ? "localhost" : options.ServerName; serverName = "localhost"; int port = options.DestinationPort <= 0 ? 5985 : options.DestinationPort; string prefix = string.IsNullOrEmpty(options.UrlPrefix) ? "http://" : options.UrlPrefix; var binding = new WSManBinding(); ChannelFactory <IWSEnumerationContract> cf = new ChannelFactory <IWSEnumerationContract>(binding); cf.Credentials.UserName.UserName = options.UserName; cf.Credentials.UserName.Password = options.Password; EnumerationClient client = new EnumerationClient(true, new Uri(string.Format("{0}{1}:{2}/wsman", prefix, serverName, port)), cf); client.BindFilterDialect(queryDialect, typeof(CimEnumerationFilter)); return(client); }