59 lines
2.4 KiB
C#
59 lines
2.4 KiB
C#
using Church.Net.DAL.EF;
|
|
using Church.Net.DAL.EFCoreDBF.Core;
|
|
using Microsoft.EntityFrameworkCore;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
using System;
|
|
using WebAPI.Hubs;
|
|
using WebAPI;
|
|
using Newtonsoft.Json.Serialization;
|
|
using WebAPI.Services;
|
|
using Microsoft.AspNetCore.Authorization;
|
|
using WebAPI.Handlers;
|
|
|
|
namespace Church.Net.WebAPI.Bindings
|
|
{
|
|
public class APIBinding : IBinding
|
|
{
|
|
public void Binding(IServiceCollection services)
|
|
{
|
|
services.AddControllers().AddNewtonsoftJson(options =>
|
|
{
|
|
// Use the default property (Pascal) casing
|
|
options.SerializerSettings.ContractResolver = new DefaultContractResolver()
|
|
{
|
|
NamingStrategy = new CamelCaseNamingStrategy(),
|
|
|
|
};
|
|
//options.SerializerSettings.DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Unspecified;
|
|
options.SerializerSettings.NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore;
|
|
options.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;
|
|
});
|
|
|
|
services.AddSignalR();
|
|
|
|
services.AddSingleton<GameRoomLogic>();
|
|
|
|
services.AddSingleton<GameRoomHub>();
|
|
|
|
//Localted at \\ArkNAS\docker\ChurchAPI\docker-compose.yaml
|
|
string databaseConnString = Environment.GetEnvironmentVariable("DB_CONN_STRING");
|
|
#if DEBUG
|
|
databaseConnString = "Host=192.168.68.55;Port=49154;Database=Church;Username=chris;Password=1124";
|
|
#endif
|
|
//services.AddSingleton(_ => new DatabaseOptions { ConnectionString = databaseConnString });
|
|
services.AddSingleton(_ => new DatabaseOptions { ConnectionString = databaseConnString });
|
|
//services.AddSingleton<ChurchNetContext>(new ChurchNetContext());
|
|
services.AddDbContext<ChurchNetContext>(options =>
|
|
options.UseNpgsql(
|
|
//Configuration.GetConnectionString()
|
|
//"Host=192.168.68.55;Port=49154;Database=ChurchSandbox;Username=chris;Password=1124"
|
|
databaseConnString
|
|
));
|
|
|
|
services.AddHostedService<WorkerService>();
|
|
services.AddSingleton<IAuthorizationMiddlewareResultHandler, BasicAuthorizationMiddlewareResultHandler>();
|
|
|
|
}
|
|
}
|
|
}
|