private static async Task Properties(StreamWriter writer, Type type, XDocument xmlComments)
        {
            var properties = type.GetProperties().Where(TypeHelper.IgnoreDeclaringType).ToList();

            if (properties.Count > 0)
            {
                await writer.WriteLineAsync("### Properties");

                await writer.WriteLineAsync("| | |");

                await writer.WriteLineAsync("|_|_|");

                foreach (var property in properties.OrderBy(o => o.Name))
                {
                    await writer.WriteAsync("[");

                    await writer.WriteAsync(property.Name);

                    await writer.WriteAsync("](");

                    await writer.WriteAsync(FileNameHelper.PropertyFileName(string.Empty, property));

                    await writer.WriteAsync(")|");

                    var summary = XmlCommentHelper.Property(xmlComments, property);

                    await writer.WriteAsync(summary);

                    if (property.DeclaringType != type)
                    {
                        if (summary.Length > 0)
                        {
                            await writer.WriteAsync("<br/>");
                        }

                        await writer.WriteAsync("(Inherited from ");

                        await writer.WriteAsync(property.DeclaringType?.Name);

                        await writer.WriteAsync(")");
                    }

                    await writer.WriteLineAsync();
                }
            }

            await writer.WriteLineAsync();
        }