Disco.Services.DeviceActionExtensions.OnDecommission C# (CSharp) Method

OnDecommission() public static method

public static OnDecommission ( this d, DecommissionReasons Reason ) : void
d this
Reason DecommissionReasons
return void
        public static void OnDecommission(this Device d, DecommissionReasons Reason)
        {
            if (!d.CanDecommission())
                throw new InvalidOperationException("Decommission of Device is Denied");

            d.DecommissionedDate = DateTime.Now;
            d.DecommissionReason = Reason;

            // Disable AD Account
            if (ActiveDirectory.IsValidDomainAccountId(d.DeviceDomainId))
            {
                var adAccount = d.ActiveDirectoryAccount();
                if (adAccount != null && !adAccount.IsCriticalSystemObject)
                {
                    adAccount.DisableAccount();
                    adAccount.SetDescription(d);
                }
            }
        }
        #endregion