2024-12-09 21:11:46 +01:00
|
|
|
// Copyright (C) 2023-present sam/u1f320 (vulpine.solutions)
|
|
|
|
//
|
|
|
|
// This program is free software: you can redistribute it and/or modify
|
|
|
|
// it under the terms of the GNU Affero General Public License as published
|
|
|
|
// by the Free Software Foundation, either version 3 of the License, or
|
|
|
|
// (at your option) any later version.
|
|
|
|
//
|
|
|
|
// This program is distributed in the hope that it will be useful,
|
|
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
// GNU Affero General Public License for more details.
|
|
|
|
//
|
|
|
|
// You should have received a copy of the GNU Affero General Public License
|
|
|
|
// along with this program. If not, see <https://www.gnu.org/licenses/>.
|
2024-12-08 15:07:25 +01:00
|
|
|
using Npgsql;
|
2024-10-30 15:35:23 +01:00
|
|
|
using Serilog;
|
|
|
|
|
|
|
|
namespace Foxnouns.Backend.Database;
|
|
|
|
|
|
|
|
public static class DatabaseServiceExtensions
|
|
|
|
{
|
|
|
|
public static IServiceCollection AddFoxnounsDatabase(
|
|
|
|
this IServiceCollection serviceCollection,
|
|
|
|
Config config
|
|
|
|
)
|
|
|
|
{
|
2024-12-08 15:07:25 +01:00
|
|
|
NpgsqlDataSource dataSource = DatabaseContext.BuildDataSource(config);
|
|
|
|
ILoggerFactory loggerFactory = new LoggerFactory().AddSerilog(dispose: false);
|
2024-10-30 15:35:23 +01:00
|
|
|
|
|
|
|
serviceCollection.AddDbContext<DatabaseContext>(options =>
|
|
|
|
DatabaseContext.BuildOptions(options, dataSource, loggerFactory)
|
|
|
|
);
|
|
|
|
|
|
|
|
return serviceCollection;
|
|
|
|
}
|
|
|
|
}
|