public static PSADUser ToPSADUser(this User user)
        {
            var adUser = new PSADUser()
            {
                DisplayName       = user.DisplayName,
                UserPrincipalName = user.UserPrincipalName,
                Type = user.ObjectType
            };

            return((PSADUser)AssignObjectId(adUser, user.ObjectId));
        }
        public static PSADObject ToPSADObject(this AADObject obj)
        {
            if (obj == null)
            {
                throw new ArgumentNullException();
            }

            if (obj.ObjectType == typeof(User).Name)
            {
                var adUser = new PSADUser()
                {
                    DisplayName       = obj.DisplayName,
                    Type              = obj.ObjectType,
                    UserPrincipalName = obj.UserPrincipalName
                };

                return(AssignObjectId(adUser, obj.ObjectId));
            }
            else if (obj.ObjectType == "Group")
            {
                var adGroup = new PSADGroup()
                {
                    DisplayName     = obj.DisplayName,
                    Type            = obj.ObjectType,
                    SecurityEnabled = obj.SecurityEnabled,
                    MailNickname    = obj.Mail
                };
                return(AssignObjectId(adGroup, obj.ObjectId));
            }
            else if (obj.ObjectType == typeof(ServicePrincipal).Name)
            {
                var adSp = new PSADServicePrincipal()
                {
                    DisplayName           = obj.DisplayName,
                    Type                  = obj.ObjectType,
                    ServicePrincipalNames = obj.ServicePrincipalNames.ToArray()
                };

                return(AssignObjectId(adSp, obj.ObjectId));
            }
            else
            {
                var adObj = new PSADObject()
                {
                    DisplayName = obj.DisplayName,
                    Type        = obj.ObjectType
                };

                return(AssignObjectId(adObj, obj.ObjectId));
            }
        }