Facebook.Extensions.Print C# (CSharp) Method

Print() public static method

Renders a Graph API-compatible string representation of an ExtendedPermissions instance.
public static Print ( this permissions ) : string
permissions this The permissions to render.
return string
        public static string Print(this ExtendedPermissions permissions)
        {
            if (permissions == ExtendedPermissions.None)
                return string.Empty;

            long bitfield = (long)permissions;
            StringBuilder result = new StringBuilder();
            for (long bit = START_NON_FRIENDS_PERMISSIONS; bit < END_NON_FRIENDS_PERMISSIONS; bit <<= 1)
            {
                if ((bitfield & bit) == bit)
                {
                    string permissionName;
                    if (RequiresPermissionAttribute.DefinedPermissions.TryGetValue((ExtendedPermissions)bit, out permissionName))
                    {
                        if (result.Length > 0)
                            result.Append(",");

                        result.Append(permissionName);
                    }
                }
            }

            bool useFriend = ((bitfield & (long)ExtendedPermissions.Friend) == (long)ExtendedPermissions.Friend);

            for (long bit = START_FRIENDS_PERMISSIONS; bit < END_FRIENDS_PERMISSIONS; bit <<= 1)
            {
                if ((bitfield & bit) == bit)
                {
                    string permissionName;
                    if (RequiresPermissionAttribute.DefinedPermissions.TryGetValue((ExtendedPermissions)bit, out permissionName))
                    {
                        if (result.Length > 0)
                            result.Append(",");

                        result.Append(permissionName);
                    }

                    if (useFriend)
                    {
                        if (RequiresPermissionAttribute.DefinedPermissions.TryGetValue((ExtendedPermissions)(bit | (long)ExtendedPermissions.Friend), out permissionName))
                        {
                            if (result.Length > 0)
                                result.Append(",");

                            result.Append(permissionName);
                        }
                    }
                }
            }

            return result.ToString();
        }