Example #1
0
        protected override async Task RenderContentsAsync(XmlWriter writer)
        {
            await RenderTitleAsync(writer);

            await
            SpeedBarComponent.RenderAsync(writer, SpeedBarComponent.GetRssFeed(BasePageName),
                                          SpeedBarComponent.GetRssDigestFeed(BasePageName), SpeedBarComponent.GetDownloadLog(BasePageName));

            if (errorLogEntries.Count < 1)
            {
                await RenderNoErrorsAsync(writer);
            }
            else
            {
                // Write error number range displayed on this page and the
                // total available in the log, followed by stock
                // page sizes.
                await writer.WriteStartElementAsync("p");

                await RenderStatsAsync(writer);
                await RenderStockPageSizesAsync(writer);

                await writer.WriteEndElementAsync(); // </p>

                // Write out the main table to display the errors.
                await RenderErrorsAsync(writer);

                // Write out page navigation links.
                await RenderPageNavigatorsAsync(writer);
            }
        }
Example #2
0
        private async Task RenderErrorAsync(XmlWriter writer)
        {
            var error = errorLogEntry.Error;

            await writer.WriteStartElementAsync("h1");

            await writer.WriteAttributeStringAsync("id", "PageTitle");

            {
                await writer.WriteStringAsync(error.Message);
            }
            await writer.WriteEndElementAsync();

            await SpeedBarComponent.RenderAsync(writer, SpeedBarComponent.GetHome(BasePageName));

            await writer.WriteStartElementAsync("p");

            await writer.WriteAttributeStringAsync("id", "ErrorTitle");

            {
                await writer.WriteStartElementAsync("span");

                await writer.WriteAttributeStringAsync("id", "ErrorType");

                {
                    await writer.WriteStringAsync(error.TypeName);
                }
                await writer.WriteEndElementAsync();

                await writer.WriteStartElementAsync("span");

                await writer.WriteAttributeStringAsync("id", "ErrorTypeMessageSeparator");

                {
                    await writer.WriteStringAsync(": ");
                }
                await writer.WriteEndElementAsync();

                await writer.WriteStartElementAsync("span");

                await writer.WriteAttributeStringAsync("id", "ErrorMessage");

                {
                    await writer.WriteStringAsync(error.Message);
                }
                await writer.WriteEndElementAsync();
            }
            await writer.WriteEndElementAsync();

            await writer.WriteStartElementAsync("pre");

            await writer.WriteAttributeStringAsync("id", "ErrorDetail");

            {
                await writer.WriteStringAsync(error.Detail);
            }
            await writer.WriteEndElementAsync();

            await writer.WriteStartElementAsync("p");

            await writer.WriteAttributeStringAsync("id", "ErrorLogTime");

            {
                await writer.WriteStringAsync($"Logged on {error.Time}.");
            }
            await writer.WriteEndElementAsync();

            await writer.WriteStartElementAsync("p");

            {
                await writer.WriteStringAsync("See also:");
            }
            await writer.WriteEndElementAsync();

            await writer.WriteStartElementAsync("ul");

            {
                await writer.WriteStartElementAsync("li");

                {
                    await writer.WriteStringAsync("Raw/Source data in ");

                    await writer.WriteStartElementAsync("a");

                    await writer.WriteAttributeStringAsync("href", "json" + requestQuery);

                    await writer.WriteAttributeStringAsync("rel", "alternate");

                    await writer.WriteAttributeStringAsync("type", "application/json");

                    {
                        await writer.WriteStringAsync("JSON");
                    }
                    await writer.WriteEndElementAsync();
                }
                await writer.WriteEndElementAsync();
            }
            await writer.WriteEndElementAsync();

            await RenderDictionaryAsync(writer, error.ServerEnvironment, "ServerVariables", "Server Environment");
            await RenderDictionaryAsync(writer, error.Headers.ToDictionary(pair => pair.Key, pair => string.Join(", ", pair.Value)), "ServerVariables", "Headers");
            await RenderDictionaryAsync(writer, error.Query.ToDictionary(pair => pair.Key, pair => string.Join(", ", pair.Value)), "ServerVariables", "Query");
            await RenderDictionaryAsync(writer, error.Cookies, "ServerVariables", "Cookies");
        }