/// <summary>
        ///     Configure the IChangeableNeedAuthentication to be disabled when permission is available, and enabled when not
        /// </summary>
        /// <param name="enabledAuthentication">INeedAuthentication of type bool</param>
        /// <param name="permissions">The permission(s)</param>
        public static void EnabledOnPermissionsMissing(this IChangeableNeedAuthentication <bool> enabledAuthentication, IEnumerable <string> permissions = null)
        {
            enabledAuthentication.AuthenticationTargetProperty = AuthenticationTargetProperties.IsEnabled;
            enabledAuthentication.WhenPermission        = false;
            enabledAuthentication.WhenPermissionMissing = true;

            if (permissions != null)
            {
                enabledAuthentication.Permissions = permissions;
            }
        }
        /// <summary>
        ///     Configure the IChangeableNeedAuthentication to be visible when permission is missing, and hidden when available
        /// </summary>
        /// <param name="visibilityAuthentication">INeedAuthentication of type Visibility</param>
        /// <param name="permissions">The permission(s)</param>
        /// <param name="hidden">Visibility for hidden</param>
        public static void VisibleOnPermissionsMissing(this IChangeableNeedAuthentication <Visibility> visibilityAuthentication, IEnumerable <string> permissions = null,
                                                       Visibility hidden = Visibility.Collapsed)
        {
            visibilityAuthentication.AuthenticationTargetProperty = AuthenticationTargetProperties.Visibility;
            visibilityAuthentication.WhenPermission        = hidden;
            visibilityAuthentication.WhenPermissionMissing = Visibility.Visible;

            if (permissions != null)
            {
                visibilityAuthentication.Permissions = permissions;
            }
        }
 /// <summary>
 ///     Configure the IChangeableNeedAuthentication to be disabled when permission is available, and enabled when not
 /// </summary>
 /// <param name="enabledAuthentication">INeedAuthentication of type bool</param>
 /// <param name="permissions">The permission(s)</param>
 public static void EnabledOnPermissionsMissing(this IChangeableNeedAuthentication <bool> enabledAuthentication, string permissions)
 {
     enabledAuthentication.EnabledOnPermissionsMissing(permissions.ToPermissions());
 }
 /// <summary>
 ///     Configure the IChangeableNeedAuthentication to be visible when permission is missing, and hidden when available
 /// </summary>
 /// <param name="visibilityAuthentication">INeedAuthentication of type Visibility</param>
 /// <param name="permissions">The permission(s)</param>
 /// <param name="hidden">Visibility for hidden</param>
 public static void VisibleOnPermissionsMissing(this IChangeableNeedAuthentication <Visibility> visibilityAuthentication, string permissions, Visibility hidden = Visibility.Collapsed)
 {
     visibilityAuthentication.VisibleOnPermissionsMissing(permissions.ToPermissions(), hidden);
 }