-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathExtensions.cs
More file actions
52 lines (41 loc) · 1.7 KB
/
Extensions.cs
File metadata and controls
52 lines (41 loc) · 1.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
using System;
using System.IO;
using DiscordMaINBot.Interfaces;
using DiscordMaINBot.Services;
using MaIN.Core;
using MaIN.Domain.Configuration;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
namespace DiscordMaINBot;
public static class Extensions
{
public static IServiceCollection AddServices(this IServiceCollection services, IConfiguration configuration)
{
services.AddTransient<IDiscordService, DiscordService>();
services.AddTransient<IMaInService, MaInService>();
services.AddSingleton(configuration);
return services;
}
public static IServiceCollection AddMaIn(this IServiceCollection services, IConfiguration configuration)
{
// services.AddMaIN(configuration, (options) =>
// {
// options.BackendType = BackendType.Gemini;
// options.GeminiKey = "AIzaSyA9ZjnO0QKIiGVgGXyReaUmxPG2wAbbxZg";
// });
services.AddMaIN(configuration);
var provider = services.BuildServiceProvider();
provider.UseMaIN();
return services;
}
public static IConfiguration RegisterConfiguration(this IServiceCollection services)
{
var path = Path.GetFullPath(Path.Combine(AppContext.BaseDirectory, "..", "..", ".."));
var configuration = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile(Path.Combine(path, "appsettings.json"), optional: false, reloadOnChange: true)
.Build();
services.AddSingleton(configuration);
return configuration;
}
}