public static ADUserInformation GetADUserInformation(User user)
        {
            var login  = user.Login;
            var result = new ADUserInformation {
                LastLogOnDate = user.Logs != null ? user.Logs.LastLogon : null,
                Logs          = user.Logs
            };

            try {
                result.Login         = login;
                result.IsLoginExists = IsLoginExists(login);
                if (result.IsLoginExists)
                {
                    result.BadPasswordDate = GetBadPasswordDate(login);
                    result.DisabledInAd    = IsDisabled(login);
                    result.IsLocked        = IsLocked(login);
                    result.CalculateLastLogon(GetLastLogOnDate(login));
                    result.LastPasswordChange = GetLastPasswordChange(login);
                    result.DisabledInAd       = IsDisabled(login);
                }
                return(result);
            }
            catch (Exception) {
                return(result);
            }
        }
        private static ADUserInformation GetInformationBySearchResult(SearchResult searchResult)
        {
            var tempResult = new ADUserInformation();

            if (searchResult == null)
            {
                return(null);
            }
            tempResult.IsLoginExists = true;
            tempResult.Login         = searchResult.Properties["sAMAccountName"][0].ToString();

            var directoryEntry = searchResult.GetDirectoryEntry();

            tempResult.IsLocked     = Convert.ToBoolean(directoryEntry.InvokeGet("IsAccountLocked"));
            tempResult.DisabledInAd = Convert.ToBoolean(directoryEntry.InvokeGet("AccountDisabled"));

            return(tempResult);
        }