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(); services.AddSingleton(); //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(new ChurchNetContext()); services.AddDbContext(options => options.UseNpgsql( //Configuration.GetConnectionString() //"Host=192.168.68.55;Port=49154;Database=ChurchSandbox;Username=chris;Password=1124" databaseConnString )); services.AddHostedService(); services.AddSingleton(); } } }