コード例 #1
0
        /*
         *
         * //Report the type of the actual property value.
         * //This is important for numeric properties, where
         * //CIM Type is different than the type of value (automation layer problem).
         *
         * Object val = prop.get_Value();
         *
         * if (val.GetType() != typeof(System.DBNull) && prop.CimType != WbemCimTypeEnum.wbemCimTypeDatetime )
         * {
         *      return val.GetType();
         * }
         * else
         * {
         *      return CimTypeMapper.ToType(prop.CimType, prop.IsArray, prop);
         * }
         */



        public override void ResetValue(Object component)
        {
            try
            {
                /*
                 * Object defValue = wmiClassObj.Properties_.Item(propName, 0).get_Value();
                 * prop.set_Value(ref defValue);
                 * if (CommitImmediately)
                 * {
                 *      wmiObj.Put_((int)WbemChangeFlagEnum.wbemChangeFlagCreateOrUpdate
                 | (int)WbemFlagEnum.wbemFlagUseAmendedQualifiers,
                 |                              null);
                 | }*/

                prop.Value = classProp.Value;
                if (CommitImmediately)
                {
                    PutOptions putOpts = new PutOptions(null,
                                                        true,                                                   //use amended qualifiers
                                                        PutType.UpdateOrCreate);

                    mgmtObj.Put(putOpts);
                }
            }
            catch (Exception exc)
            {
                throw (exc);
            }
        }
コード例 #2
0
        /// <summary>
        /// Execute() implementation
        /// </summary>
        /// <param name='context'>The context for the test, this holds state that is passed beteen tests</param>
        public override void Execute(Context context)
        {
            ManagementObject mo = GetreceiveLocationWmiObject(ReceiveLocationName);

            bool isActualEnabled;

            using (mo)
            {
                isActualEnabled = (bool)mo.GetPropertyValue("OperatingWindowEnabled");
            }

            if (Enable != isActualEnabled)
            {
                PutOptions p = new PutOptions();
                p.Type = PutType.UpdateOnly;
                mo.SetPropertyValue("OperatingWindowEnabled", Enable);
                ManagementPath result = mo.Put(p);

                context.LogInfo(string.Format("The receive location: {0} service window is {1}", ReceiveLocationName, Enable ? "enabled" : "disabled"));
            }
            else
            {
                context.LogInfo(string.Format("The receive location: {0} service windows was already in the state {1}", ReceiveLocationName, Enable ? "enabled" : "disabled"));
            }
        }
コード例 #3
0
 public void CommitObject(PutOptions putOptions)
 {
     if ((this.isEmbedded == false))
     {
         this.PrivateLateBoundObject.Put(putOptions);
     }
 }
コード例 #4
0
        private void CreateHandler(string hostName, string serverName, string adapterName, HandlerType handlerType)
        {
            string handler = handlerType == HandlerType.Receive ? "MSBTS_ReceiveHandler" : "MSBTS_SendHandler2";

            try
            {
                PutOptions options = new PutOptions();
                options.Type = PutType.CreateOnly;

                //create a ManagementClass object and spawn a ManagementObject instance
                ManagementClass  objReceiveHandlerClass = new ManagementClass(string.Format(BIZTALKSCOPE, serverName), handler, null);
                ManagementObject objReceiveHandler      = objReceiveHandlerClass.CreateInstance();

                //set the properties for the Managementobject
                objReceiveHandler["AdapterName"] = adapterName;
                objReceiveHandler["HostName"]    = hostName;

                //create the Managementobject
                objReceiveHandler.Put(options);
                System.Console.WriteLine("ReceiveHandler - " + adapterName + " " + hostName + " - has been created successfully");
            }
            catch (Exception excep)
            {
                throw new ApplicationException("Failed while creating receive handler", excep);
            }
        }
コード例 #5
0
        /// <summary>
        /// The execute method
        /// </summary>
        /// <returns></returns>
        public override bool  Execute()
        {
            try
            {
                var options = new PutOptions {
                    Type = PutType.CreateOnly
                };

                using (var recieveHandlerManagementClass = new ManagementClass("root\\MicrosoftBizTalkServer", "MSBTS_ReceiveHandler", null))
                {
                    foreach (var recieveHandler in
                             recieveHandlerManagementClass.GetInstances().Cast <ManagementObject>().Where(recieveHandler => (string)recieveHandler["AdapterName"] == AdapterName && (string)recieveHandler["HostName"] == HostName))
                    {
                        recieveHandler.Delete();
                    }

                    using (var recieveHandlerManager = recieveHandlerManagementClass.CreateInstance())
                    {
                        if (recieveHandlerManager != null)
                        {
                            recieveHandlerManager["AdapterName"] = AdapterName;
                            recieveHandlerManager["HostName"]    = HostName;
                            recieveHandlerManager.Put(options);
                        }
                    }
                }
                return(true);
            }
            catch (Exception ex)
            {
                System.Diagnostics.EventLog.WriteEntry(GetType().FullName, ex.ToString());
                throw;
            }
        }
コード例 #6
0
        public void ToStringTest()
        {
            PutOptions putoptions = new PutOptions();

            Assert.IsTrue(putoptions.ToString() == "", "empty");

            putoptions.Details = true;

            Assert.IsTrue(putoptions.ToString() == "?details", "only details");

            putoptions.Summary = true;

            Assert.IsTrue(putoptions.ToString() == "?details", " summary+details, only details");

            putoptions.Details = false;

            Assert.IsTrue(putoptions.ToString() == "?summary", "summary only");


            putoptions.Sync = true;


            Assert.IsTrue(putoptions.ToString() == "?summary&sync", "summary & sync");

            putoptions.Summary = false;


            Assert.IsTrue(putoptions.ToString() == "?sync", "only sync");


            putoptions.Details = true;
            Assert.IsTrue(putoptions.ToString() == "?details&sync", "details+ sync");
        }
コード例 #7
0
        private void CreateOrUpdate()
        {
            PutOptions options = new PutOptions {
                Type = PutType.UpdateOrCreate
            };

            using (ManagementClass instance = new ManagementClass(this.Scope, new ManagementPath("MSBTS_AdapterSetting"), null))
            {
                ManagementObject btsHostSetting = instance.CreateInstance();
                if (btsHostSetting == null)
                {
                    Log.LogError("There was a failure creating the MSBTS_AdapterSetting instance");
                    return;
                }

                btsHostSetting["Name"]      = this.AdaptorName;
                btsHostSetting["Comment"]   = this.Comment ?? string.Empty;
                btsHostSetting["MgmtCLSID"] = this.MgmtCLSID;

                if (this.Constraints > 0)
                {
                    btsHostSetting["Constraints"] = Convert.ToUInt32(this.Constraints);
                }

                btsHostSetting.Put(options);
                this.explorer.SaveChanges();
            }
        }
コード例 #8
0
        public async Task <bool> UpdateVisitor(UpdateCardHolder_DTO cardHolder, string idPersona, string path, string user, string password)
        {
            try
            {
                ManagementScope          visitorScope    = _dataConduITMgr.GetManagementScope(path, user, password);
                ObjectQuery              visitorSearcher = new ObjectQuery("SELECT * FROM Lnl_Visitor WHERE OPHONE = " + idPersona);
                ManagementObjectSearcher getVisitor      = new ManagementObjectSearcher(visitorScope, visitorSearcher);

                //redefine properties value
                foreach (ManagementObject queryObj in getVisitor.Get())
                {
                    queryObj["LASTNAME"]  = cardHolder.apellidos;
                    queryObj["FIRSTNAME"] = cardHolder.nombres;
                    queryObj["SSNO"]      = cardHolder.ssno;
                    queryObj["STATE"]     = cardHolder.status;
                    queryObj["OPHONE"]    = cardHolder.nrodocumento;
                    queryObj["DIVISION"]  = cardHolder.empresa;
                    queryObj["CITY"]      = cardHolder.ciudad;
                    queryObj["EMAIL"]     = cardHolder.email;

                    PutOptions options = new PutOptions();
                    options.Type = PutType.UpdateOnly;
                    queryObj.Put(options);
                }

                return(true);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
コード例 #9
0
        /// <summary>
        /// Creates a new AppPool.
        /// </summary>
        /// <param name="name">The AppPool name.</param>
        /// <param name="machineName">The server on which the AppPool will be created.</param>
        /// <param name="millisecondsTimeout">Timeout value on wait for Create to complete.</param>
        /// <returns>The Wmi ManagementPath</returns>
        public static ManagementPath Create(string name, string machineName, int millisecondsTimeout, string managedRunTimeVersion = "v4.0", int identityType = 4, string username = null, string password = null)
        {
            PutOptions options = new PutOptions();

            options.Timeout = System.TimeSpan.FromMinutes(Convert.ToDouble(millisecondsTimeout));

            IisAppPoolUtilWmiHelper helper  = new IisAppPoolUtilWmiHelper(machineName);
            ManagementObject        appPool = helper.CreateManagementObject("IIsApplicationPoolSetting");

            appPool.Properties["Name"].Value = string.Format("W3SVC/AppPools/{0}", name);
            appPool.Properties["AppPoolIdentityType"].Value   = identityType;
            appPool.Properties["ManagedRuntimeVersion"].Value = managedRunTimeVersion;

            if (identityType == 3)
            {
                if (username != null)
                {
                    appPool.Properties["WAMUserName"].Value = username;
                }
                if (password != null)
                {
                    appPool.Properties["WAMUserPass"].Value = password;
                }
            }

            return(appPool.Put(options));
        }
コード例 #10
0
        /// <summary>
        /// The execute method
        /// </summary>
        /// <returns></returns>
        public override bool Execute()
        {
            try
            {
                var options = new PutOptions {
                    Type = PutType.CreateOnly
                };

                var handlerManagementClass = new ManagementClass("root\\MicrosoftBizTalkServer", "MSBTS_SendHandler2", null);

                foreach (var handler in
                         handlerManagementClass.GetInstances().Cast <ManagementObject>().Where(handler => (string)handler["AdapterName"] == AdapterName && (string)handler["HostName"] == HostName))
                {
                    handler.Delete();
                }

                var handlerInstance = handlerManagementClass.CreateInstance();
                if (handlerInstance != null)
                {
                    handlerInstance["AdapterName"] = AdapterName;
                    handlerInstance["HostName"]    = HostName;
                    handlerInstance.Put(options);
                }

                return(true);
            }
            catch (Exception ex)
            {
                EventLog.WriteEntry(GetType().FullName, ex.ToString());
                throw;
            }
        }
コード例 #11
0
 public void CommitObject(PutOptions putOptions)
 {
     if (_isEmbedded == false)
     {
         _privateLateBoundObject.Put(putOptions);
     }
 }
コード例 #12
0
        public async Task <object> AddCardHolder(AddCardHolder_DTO newCardHolder, string path, string user, string password)
        {
            ManagementScope cardHolderScope = _dataConduITMgr.GetManagementScope(path, user, password);

            ManagementClass cardHolderClass = new ManagementClass(cardHolderScope, new ManagementPath("Lnl_Cardholder"), null);

            ManagementObject newCardHolderInstance = cardHolderClass.CreateInstance();

            newCardHolderInstance["FIRSTNAME"] = newCardHolder.firstName;
            newCardHolderInstance["LASTNAME"]  = newCardHolder.lastName;
            newCardHolderInstance["DEPT"]      = newCardHolder.city;
            newCardHolderInstance["OPHONE"]    = newCardHolder.nroDocumento;
            newCardHolderInstance["SSNO"]      = newCardHolder.ssno;
            newCardHolderInstance["TITLE"]     = newCardHolder.empresa;
            newCardHolderInstance["BUILDING"]  = newCardHolder.instalacion;
            newCardHolderInstance["FLOOR"]     = newCardHolder.piso;
            newCardHolderInstance["DIVISION"]  = newCardHolder.area;
            newCardHolderInstance["EMAIL"]     = newCardHolder.email;


            PutOptions options = new PutOptions();

            options.Type = PutType.CreateOnly;

            //SE REALIZA COMMIT DE LA INSTANCIA
            newCardHolderInstance.Put(options);

            return(true);
        }
コード例 #13
0
        private void registerAdapterInBizTalk()
        {
            try
            {
                PutOptions options = new PutOptions();
                options.Type = PutType.CreateOnly;

                //create a ManagementClass object and spawn a ManagementObject instance
                ManagementClass  newAdapterClass  = new ManagementClass("root\\MicrosoftBizTalkServer", "MSBTS_AdapterSetting", null);
                ManagementObject newAdapterObject = newAdapterClass.CreateInstance();

                //set the properties for the Managementobject
                newAdapterObject["Name"]        = "LoopBack";
                newAdapterObject["Comment"]     = "Bounce a message back to the message box through a solicit-response send port.";
                newAdapterObject["Constraints"] = "9482";                                   //see the registry file!!
                newAdapterObject["MgmtCLSID"]   = "{D44A2A6E-3B4F-452A-8007-CAB27D2D0B95}"; //see the registry file!!

                //create the Managementobject
                newAdapterObject.Put(options);
            }
            catch (Exception ex)
            {
                System.Diagnostics.EventLog.WriteEntry("LoopBackAdapterInstaller", "Unable to register adapter in BizTalk: " + ex.Message, System.Diagnostics.EventLogEntryType.Error);
            }
        }
コード例 #14
0
        private static void ChangeQueuePort(string portName, string newName)
        {
            ConnectionOptions options = new ConnectionOptions();

            options.EnablePrivileges = true;

            ManagementScope mgmtScope = new ManagementScope("root\\CIMV2", options);

            mgmtScope.Connect();

            ObjectQuery objQuery = new ObjectQuery("SELECT * FROM Win32_Printer WHERE PortName = '{0}'".FormatWith(portName));

            using (ManagementObjectSearcher searcher = new ManagementObjectSearcher(mgmtScope, objQuery))
            {
                ManagementObjectCollection match = searcher.Get();
                if (match.Count != 1)
                {
                    throw new InvalidOperationException("Unexpected search result.  Returned {0} matches for PortName:{1}".FormatWith(match.Count, portName));
                }

                var enumerator = match.GetEnumerator();
                enumerator.MoveNext();
                ManagementObject printerObject = (ManagementObject)enumerator.Current;

                TraceFactory.Logger.Debug("Old Port: {0}, New Port: {1}".FormatWith(printerObject["PortName"], newName));
                printerObject["PortName"] = newName;

                PutOptions po = new PutOptions();
                po.Type = PutType.UpdateOrCreate;
                printerObject.Put(po);
            }
        }
コード例 #15
0
        public static void CleanupWMISharingEntries()
        {
            var scope = new ManagementScope("root\\Microsoft\\HomeNet");

            scope.Connect();

            var options = new PutOptions();

            options.Type = PutType.UpdateOnly;

            var query = new ObjectQuery("SELECT * FROM HNet_ConnectionProperties");
            var srchr = new ManagementObjectSearcher(scope, query);

            foreach (ManagementObject entry in srchr.Get())
            {
                if ((bool)entry["IsIcsPrivate"])
                {
                    entry["IsIcsPrivate"] = false;
                }
                if ((bool)entry["IsIcsPublic"])
                {
                    entry["IsIcsPublic"] = false;
                }
                entry.Put(options);
            }
        }
コード例 #16
0
ファイル: Badge.cs プロジェクト: alejomejia1/fhir_panel
        public async Task <bool> UpdateStatusBadge(string badgeId, badgeStatus status, DateTime deactivationDate, string path, string user, string pass)
        {
            try
            {
                CultureInfo provider = CultureInfo.InvariantCulture;

                ManagementScope          badgeScope    = _dataConduITMgr.GetManagementScope(path, user, pass);
                ObjectQuery              badgeSearcher = new ObjectQuery("SELECT * FROM Lnl_Badge WHERE ID = " + badgeId);
                ManagementObjectSearcher getBadge      = new ManagementObjectSearcher(badgeScope, badgeSearcher);

                //redefine properties value
                foreach (ManagementObject queryObj in getBadge.Get())
                {
                    queryObj["STATUS"] = (int)status;
                    string fechaDesactivacion = deactivationDate.ToString("yyyyMMdd") + "000000.000000-300";
                    if (status == badgeStatus.INACTIVA || status == badgeStatus.ACTIVO)
                    {
                        queryObj["DEACTIVATE"] = fechaDesactivacion;
                    }

                    PutOptions options = new PutOptions();
                    options.Type = PutType.UpdateOnly;
                    queryObj.Put(options);
                }

                return(true);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
コード例 #17
0
        /// <summary>
        /// 重命名Tap设备
        /// </summary>
        /// <param name="name">新名字</param>
        /// <param name="adapter">Tap设备</param>
        public static void RenameTapDevice(string name, NetworkInterface adapter)
        {
            if (Os.Ver == Os.V.XpOrLower)
            {
                throw new NotSupportedException("Windows Version Too Low");
            }
            if (Os.Ver == Os.V.VistaOrSeven)
            {
                // win7 or lower
                ManagementClass  nic    = new ManagementClass(@"\\.\ROOT\cimv2:Win32_NetworkAdapter");
                ManagementObject target = null;
                foreach (ManagementObject a in nic.GetInstances())
                {
                    if ((string)a["GUID"] == adapter.Id)
                    {
                        target = a;
                        break;
                    }
                }
                if (target != null)
                {
                    target.SetPropertyValue("NetConnectionID", name);
                    PutOptions po = new PutOptions {
                        Type = PutType.UpdateOnly
                    };
                    target.Put(po);
                }
            }
            else
            {
                // win8 or higher
                ManagementClass  nic    = new ManagementClass(@"\\.\ROOT\StandardCimv2:MSFT_NetAdapter");
                ManagementObject target = null;
                foreach (ManagementObject a in nic.GetInstances())
                {
                    if ((string)a["DeviceID"] == adapter.Id)
                    {
                        target = a;
                        break;
                    }
                }
                if (target != null)
                {
                    ManagementBaseObject param = target.GetMethodParameters("Rename");
                    param["NewName"] = name;
                    target.InvokeMethod("Rename", param, null);
                }
            }


            /*
             * else {
             *  // xp or lower,不确定是否有效(win7测试无效)
             *  string adapterKey = @"SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}\" + adapter.Id + @"\Connection";
             *  RegistryKey rbase = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Default);
             *  RegistryKey rk = rbase.OpenSubKey(adapterKey, true);
             *  rk?.SetValue("Name", name);
             * }
             */
        }
コード例 #18
0
        private void registerAdapterInBizTalk()
        {
            try
            {
                PutOptions options = new PutOptions();
                options.Type = PutType.CreateOnly;

                //create a ManagementClass object and spawn a ManagementObject instance
                ManagementClass  newAdapterClass  = new ManagementClass("root\\MicrosoftBizTalkServer", "MSBTS_AdapterSetting", null);
                ManagementObject newAdapterObject = newAdapterClass.CreateInstance();

                //set the properties for the Managementobject
                newAdapterObject["Name"]        = "NULL";
                newAdapterObject["Comment"]     = "Discard BizTalk messages.";
                newAdapterObject["Constraints"] = "8210";                                   //see the registry file!!
                newAdapterObject["MgmtCLSID"]   = "{C98D3C74-F722-4F50-8AFC-4C2A9CB1D961}"; //see the registry file!!

                //create the Managementobject
                newAdapterObject.Put(options);
            }
            catch (Exception ex)
            {
                System.Diagnostics.EventLog.WriteEntry("NullAdapterInstaller", "Unable to register adapter in BizTalk: " + ex.Message, System.Diagnostics.EventLogEntryType.Error);
            }
        }
コード例 #19
0
 public static PutOptions UseDefault(this PutOptions options, string[] updatedProperties)
 {
     _ = options ?? throw new ArgumentNullException(nameof(options));
     options.Context = PutOptionsExtensions.NewContext(updatedProperties);
     options.UseAmendedQualifiers = false;
     options.Type = PutType.UpdateOnly;
     return(options);
 }
コード例 #20
0
        /// <summary>
        /// Put data into a database.
        /// </summary>
        /// <param name="db">Database.</param>
        /// <param name="key">Key byte array.</param>
        /// <param name="value">Value byte array.</param>
        /// <param name="options">Operation options (optional).</param>
        public void Put(LightningDatabase db, byte[] key, byte[] value, PutOptions options = PutOptions.None)
        {
            if (db == null)
            {
                throw new ArgumentNullException(nameof(db));
            }

            Lmdb.mdb_put(_handle, db.Handle(), key, value, options);
        }
コード例 #21
0
ファイル: LightningTransaction.cs プロジェクト: swdee/Terab
        public void Put(LightningDatabase db, ReadOnlySpan <byte> key, ReadOnlySpan <byte> value,
                        PutOptions options = PutOptions.None)
        {
            if (db == null)
            {
                throw new ArgumentNullException(nameof(db));
            }

            mdb_put(_handle, db.Handle(), key, value, options);
        }
コード例 #22
0
        public void Put(byte[] key, byte[] value, PutOptions options)
        {
            using (var keyMarshalStruct = new MarshalValueStructure(key))
                using (var valueMarshalStruct = new MarshalValueStructure(value))
                {
                    var keyStruct   = keyMarshalStruct.ValueStructure;
                    var valueStruct = valueMarshalStruct.ValueStructure;

                    NativeMethods.Execute(lib => lib.mdb_cursor_put(_handle, ref keyStruct, ref valueStruct, options));
                }
        }
コード例 #23
0
        //TODO: tests
        public void Put(byte[] key, byte[] value, PutOptions options)
        {
            using (var keyMarshalStruct = new MarshalValueStructure(key))
                using (var valueMarshalStruct = new MarshalValueStructure(value))
                {
                    var keyStruct   = keyMarshalStruct.ValueStructure;
                    var valueStruct = valueMarshalStruct.ValueStructure;

                    Native.Execute(() => Native.mdb_cursor_put(_handle, keyStruct, valueStruct, options));
                }
        }
コード例 #24
0
        private void addIPPort()
        {
            var conn = new ConnectionOptions
            {
                EnablePrivileges = true,
                Impersonation    = ImpersonationLevel.Impersonate
            };

            var mPath = new ManagementPath("Win32_TCPIPPrinterPort");

            var mScope = new ManagementScope(@"\\.\root\cimv2", conn)
            {
                Options =
                {
                    EnablePrivileges = true,
                    Impersonation    = ImpersonationLevel.Impersonate
                }
            };

            var mPort = new ManagementClass(mScope, mPath, null).CreateInstance();

            var remotePort = 9100;

            try
            {
                if (IP != null && IP.Contains(":"))
                {
                    var arIP = IP.Split(':');
                    if (arIP.Length == 2)
                    {
                        remotePort = int.Parse(arIP[1]);
                    }
                }
            }
            catch (Exception ex)
            {
                Log.Error(LogName, "Could not parse port from IP");
                Log.Error(LogName, ex);
            }

            mPort.SetPropertyValue("Name", Port);
            mPort.SetPropertyValue("Protocol", 1);
            mPort.SetPropertyValue("HostAddress", IP);
            mPort.SetPropertyValue("PortNumber", remotePort);
            mPort.SetPropertyValue("SNMPEnabled", false);

            var put = new PutOptions
            {
                UseAmendedQualifiers = true,
                Type = PutType.UpdateOrCreate
            };

            mPort.Put(put);
        }
コード例 #25
0
        /// <summary>
        /// Creates a new AppPool.
        /// </summary>
        /// <param name="name">The AppPool name.</param>
        /// <param name="machineName">The server on which the AppPool will be created.</param>
        /// <param name="millisecondsTimeout">Timeout value on wait for Create to complete.</param>
        /// <returns>The Wmi ManagementPath</returns>
        public static ManagementPath Create(string name, string machineName, int millisecondsTimeout)
        {
            PutOptions options = new PutOptions();

            options.Timeout = System.TimeSpan.FromMinutes(Convert.ToDouble(millisecondsTimeout));

            IisAppPoolUtilWmiHelper helper  = new IisAppPoolUtilWmiHelper(machineName);
            ManagementObject        appPool = helper.CreateManagementObject("IIsApplicationPoolSetting");

            appPool.Properties["Name"].Value = string.Format("W3SVC/AppPools/{0}", name);
            appPool.Properties["AppPoolIdentityType"].Value   = 3;
            appPool.Properties["ManagedRuntimeVersion"].Value = "v4.0";

            return(appPool.Put(options));
        }
コード例 #26
0
ファイル: Host.cs プロジェクト: uzigula/MSBuildExtensionPack
        private void CreateOrUpdate()
        {
            if (string.IsNullOrEmpty(this.WindowsGroup))
            {
                Log.LogError("WindowsGroup is required.");
                return;
            }

            PutOptions options = new PutOptions {
                Type = PutType.UpdateOrCreate
            };

            using (ManagementClass instance = new ManagementClass(this.Scope, new ManagementPath("MSBTS_HostSetting"), null))
            {
                ManagementObject btsHostSetting = instance.CreateInstance();
                if (btsHostSetting == null)
                {
                    Log.LogError("There was a failure creating the MSBTS_HostSetting instance");
                    return;
                }

                btsHostSetting["Name"]                 = this.HostName;
                btsHostSetting["HostType"]             = this.hostType;
                btsHostSetting["NTGroupName"]          = this.WindowsGroup;
                btsHostSetting["AuthTrusted"]          = this.Trusted;
                btsHostSetting["MgmtDbServerOverride"] = this.DatabaseServer;
                btsHostSetting["IsHost32BitOnly"]      = this.Use32BitHostOnly;

                if (this.hostType == BizTalkHostType.InProcess)
                {
                    btsHostSetting.SetPropertyValue("HostTracking", this.Tracking);
                    btsHostSetting.SetPropertyValue("IsDefault", this.Default);
                }

                if (!string.IsNullOrEmpty(this.AdditionalHostSettings))
                {
                    string[] additionalproperties = this.AdditionalHostSettings.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
                    foreach (string s in additionalproperties)
                    {
                        string[] property = s.Split(new[] { '=' }, StringSplitOptions.RemoveEmptyEntries);
                        btsHostSetting[property[0]] = property[1];
                    }
                }

                btsHostSetting.Put(options);
                this.explorer.SaveChanges();
            }
        }
コード例 #27
0
        /// <summary>
        /// Put data into a database.
        /// </summary>
        /// <param name="db">Database.</param>
        /// <param name="key">Key byte array.</param>
        /// <param name="value">Value byte array.</param>
        /// <param name="options">Operation options (optional).</param>
        public void Put(LightningDatabase db, byte[] key, byte[] value, PutOptions options = PutOptions.None)
        {
            if (db == null)
            {
                throw new ArgumentNullException("db");
            }

            using (var keyStructureMarshal = new MarshalValueStructure(key))
                using (var valueStructureMarshal = new MarshalValueStructure(value))
                {
                    var keyStruct   = keyStructureMarshal.ValueStructure;
                    var valueStruct = valueStructureMarshal.ValueStructure;

                    NativeMethods.Execute(lib => lib.mdb_put(_handle, db._handle, ref keyStruct, ref valueStruct, options));
                }
        }
コード例 #28
0
        private void DisableSharing()
        {
            if (router.IsRunning())
            {
                INetSharingManager sharingManager = new NetSharingManager();
                foreach (var con in from INetSharingConfiguration conf in from INetConnection c in sharingManager.EnumEveryConnection
                         select sharingManager.INetSharingConfigurationForINetConnection[c]
                         where conf.SharingEnabled
                         select conf)
                {
                    con.DisableSharing();
                }

                var scope = new ManagementScope("root\\Microsoft\\HomeNet");
                scope.Connect();

                foreach (var type in new string[] { "HNet_ConnectionProperties", "HNet_Connection" })
                {
                    var query = new ObjectQuery("SELECT * FROM " + type);
                    var srchr = new ManagementObjectSearcher(scope, query);
                    foreach (ManagementObject entry in srchr.Get())
                    {
                        entry.Dispose();
                        entry.Delete();
                    }
                }
                {
                    var options = new PutOptions();
                    options.Type = PutType.UpdateOnly;

                    var query = new ObjectQuery("SELECT * FROM HNet_ConnectionProperties");
                    var srchr = new ManagementObjectSearcher(scope, query);
                    foreach (ManagementObject entry in srchr.Get())
                    {
                        if ((bool)entry["IsIcsPrivate"])
                        {
                            entry["IsIcsPrivate"] = false;
                        }
                        if ((bool)entry["IsIcsPublic"])
                        {
                            entry["IsIcsPublic"] = false;
                        }
                        entry.Put(options);
                    }
                }
            }
        }
コード例 #29
0
        /// <summary>
        /// Call when a transacted commit of properties is required (e.g., when saving a new instance)
        /// </summary>
        internal bool Commit()
        {
            try
            {
                PutOptions putOpts = new PutOptions(null,
                                                    true,                                                       //use amended qualifiers
                                                    PutType.UpdateOrCreate);

                mgmtObj.Put(putOpts);
                return(true);
            }
            catch (Exception exc)
            {
                MessageBox.Show(WMISys.GetString("WMISE_ObjComp_PutFailed", PATH, exc.Message));
                return(false);
            }
        }
コード例 #30
0
/*
 *      public override TypeConverter Converter
 *      {
 *               get
 *              {
 *                      return new WMIEnumTypeConverter();
 *              }
 *
 *      }
 *
 *      public override Object GetValue (Object component)
 *      {
 *              return prop.get_Value();
 *      }
 */

        public override void SetValue(Object component, Object value)
        {
            try
            {
                prop.Value = value;
                if (CommitImmediately)
                {
                    PutOptions putOpts = new PutOptions(null,
                                                        true,                                                   //use amended qualifiers
                                                        PutType.UpdateOrCreate);

                    mgmtObj.Put(putOpts);
                }
            }
            catch (Exception exc)
            {
                throw (exc);
            }
        }
コード例 #31
0
 private static extern int mdb_put(IntPtr txn, UInt32 dbi, ref ValueStructure key, ref ValueStructure data, PutOptions flags);
コード例 #32
0
ファイル: Lmdb.cs プロジェクト: sebastienros/Lightning.NET
 public static int mdb_put(IntPtr txn, uint dbi, byte[] key, byte[] value, PutOptions flags)
 {
     using(var marshal = new MarshalValueStructure(key, value))
         return check(LmdbMethods.mdb_put(txn, dbi, ref marshal.Key, ref marshal.Value, flags));
 }
コード例 #33
0
	public ManagementPath Put(PutOptions options) {}
コード例 #34
0
 int INativeLibraryFacade.mdb_put(IntPtr txn, uint dbi, ref ValueStructure key, ref ValueStructure data, PutOptions flags)
 {
     return FallbackLibraryFacade.mdb_put(txn, dbi, ref key, ref data, flags);
 }
コード例 #35
0
	public ManagementPath CopyTo(string path, PutOptions options) {}
コード例 #36
0
	public void Put(ManagementOperationObserver watcher, PutOptions options) {}
コード例 #37
0
        //TODO: tests
        public void Put(byte[] key, byte[] value, PutOptions options)
        {
            using(var keyMarshalStruct = new MarshalValueStructure(key))
            using (var valueMarshalStruct = new MarshalValueStructure(value))
            {
                var keyStruct = keyMarshalStruct.ValueStructure;
                var valueStruct = valueMarshalStruct.ValueStructure;

                Native.Execute(lib => lib.mdb_cursor_put(_handle, keyStruct, valueStruct, options));
            }
        }
コード例 #38
0
	public ManagementPath CopyTo(ManagementPath path, PutOptions options) {}
コード例 #39
0
 public static extern int mdb_put(IntPtr txn, uint dbi, ref ValueStructure key, ref ValueStructure data, PutOptions flags);
コード例 #40
0
	public void CopyTo(ManagementOperationObserver watcher, ManagementPath path, PutOptions options) {}
コード例 #41
0
        public void Put(LightningDatabase db, byte[] key, byte[] value, PutOptions options = PutOptions.None)
        {
            if (db == null)
                throw new ArgumentNullException("db");

            using (var keyStructureMarshal = new MarshalValueStructure(key))
            using (var valueStructureMarshal = new MarshalValueStructure(value))
            {
                var keyStruct = keyStructureMarshal.ValueStructure;
                var valueStruct = valueStructureMarshal.ValueStructure;

                Native.Execute(() => Native.mdb_put(_handle, db._handle, ref keyStruct, ref valueStruct, options));
            }
        }
コード例 #42
0
 int INativeLibraryFacade.mdb_cursor_put(IntPtr cursor, ref ValueStructure key, ref ValueStructure data, PutOptions flags)
 {
     return Native64BitLibraryFacade.mdb_cursor_put(cursor, ref key, ref data, flags);
 }
コード例 #43
0
 int INativeLibraryFacade.mdb_cursor_put(IntPtr cursor, ValueStructure key, ValueStructure data, PutOptions flags)
 {
     return FallbackLibraryFacade.mdb_cursor_put(cursor, key, data, flags);
 }
コード例 #44
0
 private static extern int mdb_cursor_put(IntPtr cursor, ValueStructure key, ValueStructure data, PutOptions flags);
コード例 #45
0
        /// <summary>
        /// Put data into a database.
        /// </summary>
        /// <param name="db">Database.</param>
        /// <param name="key">Key byte array.</param>
        /// <param name="value">Value byte array.</param>
        /// <param name="options">Operation options (optional).</param>
        public void Put(LightningDatabase db, byte[] key, byte[] value, PutOptions options = PutOptions.None)
        {
            if (db == null)
                throw new ArgumentNullException(nameof(db));

            mdb_put(_handle, db.Handle(), key, value, options);
        }