예제 #1
0
        /// <summary>
        /// <para>
        /// Set <see cref="CimSessionProxy"/> properties
        /// </para>
        /// </summary>
        /// <param name="proxy"></param>
        /// <param name="cmdlet"></param>
        private void SetSessionProxyProperties(
            ref CimSessionProxy proxy,
            CimBaseCommand cmdlet)
        {
            if (cmdlet is GetCimInstanceCommand)
            {
                GetCimInstanceCommand getCimInstance = cmdlet as GetCimInstanceCommand;
                proxy.KeyOnly          = getCimInstance.KeyOnly;
                proxy.Shallow          = getCimInstance.Shallow;
                proxy.OperationTimeout = getCimInstance.OperationTimeoutSec;
                if (getCimInstance.ResourceUri != null)
                {
                    proxy.ResourceUri = getCimInstance.ResourceUri;
                }
            }
            else if (cmdlet is RemoveCimInstanceCommand)
            {
                RemoveCimInstanceCommand removeCimInstance = cmdlet as RemoveCimInstanceCommand;
                proxy.OperationTimeout = removeCimInstance.OperationTimeoutSec;
                if (removeCimInstance.ResourceUri != null)
                {
                    proxy.ResourceUri = removeCimInstance.ResourceUri;
                }

                CimRemoveCimInstanceContext context = new CimRemoveCimInstanceContext(
                    ConstValue.GetNamespace(removeCimInstance.Namespace),
                    proxy);
                proxy.ContextObject = context;
            }
            else if (cmdlet is SetCimInstanceCommand)
            {
                SetCimInstanceCommand setCimInstance = cmdlet as SetCimInstanceCommand;
                proxy.OperationTimeout = setCimInstance.OperationTimeoutSec;
                if (setCimInstance.ResourceUri != null)
                {
                    proxy.ResourceUri = setCimInstance.ResourceUri;
                }

                CimSetCimInstanceContext context = new CimSetCimInstanceContext(
                    ConstValue.GetNamespace(setCimInstance.Namespace),
                    setCimInstance.Property,
                    proxy,
                    cmdlet.ParameterSetName,
                    setCimInstance.PassThru);
                proxy.ContextObject = context;
            }
        }
예제 #2
0
        protected static string CreateQuery(CimBaseCommand cmdlet)
        {
            DebugHelper.WriteLogEx();
            GetCimInstanceCommand getCimInstanceCommand = cmdlet as GetCimInstanceCommand;

            if (getCimInstanceCommand == null)
            {
                return(null);
            }
            else
            {
                StringBuilder stringBuilder = new StringBuilder();
                if (getCimInstanceCommand.SelectProperties != null)
                {
                    string[] selectProperties = getCimInstanceCommand.SelectProperties;
                    for (int i = 0; i < (int)selectProperties.Length; i++)
                    {
                        string str = selectProperties[i];
                        if (stringBuilder.Length > 0)
                        {
                            stringBuilder.Append(",");
                        }
                        stringBuilder.Append(str);
                    }
                }
                else
                {
                    stringBuilder.Append("*");
                }
                if (getCimInstanceCommand.Filter == null)
                {
                    object[] className = new object[2];
                    className[0] = stringBuilder;
                    className[1] = getCimInstanceCommand.ClassName;
                    return(string.Format(CultureInfo.CurrentUICulture, "SELECT {0} FROM {1}", className));
                }
                else
                {
                    object[] filter = new object[3];
                    filter[0] = stringBuilder;
                    filter[1] = getCimInstanceCommand.ClassName;
                    filter[2] = getCimInstanceCommand.Filter;
                    return(string.Format(CultureInfo.CurrentUICulture, "SELECT {0} FROM {1} WHERE {2}", filter));
                }
            }
        }
예제 #3
0
 /// <summary>
 /// <para>
 /// Base on parametersetName to retrieve ciminstances
 /// </para>
 /// </summary>
 /// <param name="cmdlet"><see cref="GetCimInstanceCommand"/> object</param>
 public void GetCimInstance(GetCimInstanceCommand cmdlet)
 {
     GetCimInstanceInternal(cmdlet);
 }
예제 #4
0
 /// <summary>
 /// <para>
 /// Base on parametersetName to retrieve ciminstances
 /// </para>
 /// </summary>
 /// <param name="cmdlet"><see cref="GetCimInstanceCommand"/> object</param>
 public void GetCimInstance(GetCimInstanceCommand cmdlet)
 {
     GetCimInstanceInternal(cmdlet);
 }
예제 #5
0
 /// <summary>
 /// Set <see cref="IObjectPreProcess"/> object to proxy to pre-process
 /// the result object if necessary
 /// </summary>
 /// <param name="proxy"></param>
 /// <param name="cmdlet"></param>
 private void SetPreProcess(CimSessionProxy proxy, GetCimInstanceCommand cmdlet)
 {
     if (cmdlet.KeyOnly || (cmdlet.SelectProperties != null))
     {
         proxy.ObjectPreProcess = new FormatPartialCimInstance();
     }
 }