48 lines
1.7 KiB
C#
48 lines
1.7 KiB
C#
using Microsoft.Extensions.DependencyInjection;
|
|
using Microsoft.OpenApi.Models;
|
|
using Oms.Application.Dtos.Orders;
|
|
using Swashbuckle.AspNetCore.SwaggerGen;
|
|
using System.Reflection;
|
|
|
|
var services = new ServiceCollection();
|
|
services.AddSwaggerGen(c =>
|
|
{
|
|
c.SwaggerDoc("OMS-Order", new OpenApiInfo { Title = "OMS-Order", Version = "v1" });
|
|
c.CustomSchemaIds(t => t.FullName?.Replace("+", ".") ?? t.Name);
|
|
});
|
|
var sp = services.BuildServiceProvider();
|
|
var gen = sp.GetRequiredService<ISchemaGenerator>();
|
|
var repo = new SchemaRepository("OMS-Order");
|
|
|
|
void Try(string name, Type t)
|
|
{
|
|
try
|
|
{
|
|
gen.GenerateSchema(t, repo);
|
|
Console.WriteLine($"OK {name}");
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
Console.WriteLine($"FAIL {name}: {ex.GetType().Name}: {ex.Message}");
|
|
if (ex.InnerException != null) Console.WriteLine($" inner: {ex.InnerException.Message}");
|
|
}
|
|
}
|
|
|
|
Try(nameof(OrderParcelBatchCreateInput), typeof(OrderParcelBatchCreateInput));
|
|
Try(nameof(OrderParcelCreateInput), typeof(OrderParcelCreateInput));
|
|
Try(nameof(OrderPriceCheckResultOutput), typeof(OrderPriceCheckResultOutput));
|
|
Try(nameof(OrderPriceCheckOutput), typeof(OrderPriceCheckOutput));
|
|
Try(nameof(OrderUploadInput), typeof(OrderUploadInput));
|
|
Try(nameof(OrderTemplateCustomDetailOutput), typeof(OrderTemplateCustomDetailOutput));
|
|
Try(nameof(OrderOutput), typeof(OrderOutput));
|
|
Try(nameof(OrderPaginatedOutput), typeof(OrderPaginatedOutput));
|
|
|
|
// Also generate for all public types in Orders Dtos
|
|
var asm = typeof(OrderOutput).Assembly;
|
|
foreach (var t in asm.GetTypes().Where(x => x.IsPublic && x.Namespace == "Oms.Application.Dtos.Orders").OrderBy(x => x.Name))
|
|
{
|
|
Try(t.Name, t);
|
|
}
|
|
|
|
Console.WriteLine($"Schemas generated: {repo.Schemas.Count}");
|