Files
Teamup/src/Modules/TeamUp.Modules.OrgBoard/OrgBoardModule.cs
T

30 lines
1.2 KiB
C#
Raw Normal View History

2026-06-09 06:41:28 +03:30
using Microsoft.AspNetCore.Routing;
using Microsoft.EntityFrameworkCore;
2026-06-09 06:41:28 +03:30
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;
using TeamUp.Modules.OrgBoard.Endpoints;
using TeamUp.Modules.OrgBoard.Persistence;
2026-06-09 06:41:28 +03:30
using TeamUp.SharedKernel.Modularity;
using TeamUp.SharedKernel.Persistence;
2026-06-09 06:41:28 +03:30
namespace TeamUp.Modules.OrgBoard;
/// <summary>Org, products, teams, seats, and the task/board model (M1).</summary>
public sealed class OrgBoardModule : IModule
{
public string Name => "orgboard";
public void Register(IServiceCollection services, IConfiguration configuration)
{
var connectionString = configuration.GetConnectionString("Postgres")
?? throw new InvalidOperationException("Missing connection string 'ConnectionStrings:Postgres'.");
2026-06-09 06:41:28 +03:30
services.AddDbContext<OrgBoardDbContext>(options => options.UseNpgsql(connectionString));
services.AddScoped<IModuleDbContext>(sp => sp.GetRequiredService<OrgBoardDbContext>());
services.TryAddSingleton(TimeProvider.System);
2026-06-09 06:41:28 +03:30
}
public void MapEndpoints(IEndpointRouteBuilder endpoints) => OrgBoardEndpoints.Map(endpoints);
2026-06-09 06:41:28 +03:30
}