/// <summary>
        /// Updates the Permission Display to show permissions
        /// for the CurrentApplication
        /// </summary>
        protected virtual void UpdatePermissionDisplay()
        {
            IEnumerable<PermissionEntry> permissions;
            var report = new PermissionReport();
            try
            {
                if (CurrentApplication == null)
                {
                    permissions = PermissionService.GetSitePermisisons();
                    report.AddTitle("Overall Site Permissions");
                }
                else
                {
                    permissions = PermissionService.GetApplicationPermisisons(CurrentApplication);
                    report.AddApplicationTitle(CurrentApplication);
                }

                // Convert permissions to array to prevent LINQ queries hitting the permissions
                // endpoint multiple times
                report.AddPermissionGrid(permissions.ToArray());

                permissionDisplayBrowser.DocumentText = report.WriteReport();
            }
            catch (WebException ex)
            {
                StringBuilder b = new StringBuilder("<h1>An error occured obtaining permissions</h1>");
                b.Append("<p>");
                b.Append(ex.GetType().ToString());
                b.Append("<br />");
                b.Append(ex.Message);
                b.Append("</p>");
                var reader = new StreamReader(ex.Response.GetResponseStream());
                b.Append(reader.ReadToEnd());

                permissionDisplayBrowser.DocumentText = b.ToString();
            }
        }