-
Notifications
You must be signed in to change notification settings - Fork 10
Expand file tree
/
Copy pathProgram.cs
More file actions
109 lines (86 loc) · 4.08 KB
/
Program.cs
File metadata and controls
109 lines (86 loc) · 4.08 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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Serilog;
using FSHCodeGenerator.Classes;
using FSHCodeGenerator.InterFaces;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Design;
using MySql.EntityFrameworkCore;
using FSHCodeGenerator.Context;
namespace FSHCodeGenerator
{
class Program
{
private static readonly CancellationTokenSource _cts = new CancellationTokenSource();
static async Task Main(string[] args)
{
var builder = new ConfigurationBuilder()
//BuildConfig(builder);
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);
var config = builder.Build();
var mySourceGenSettings = config.GetSection("GenerateSourcesSettings").Get<SourceGenSettings>();
var myDatabaseSettings = config.GetSection("DataBaseSettings").Get<DataBaseSettings>();
var appdbcontext = mySourceGenSettings.DbContext;
var connstring = myDatabaseSettings.ConnectionString;
Log.Logger = new LoggerConfiguration()
.Enrich.FromLogContext()
.WriteTo.Console()
.CreateLogger();
Log.Logger.Information("Starting...");
var host = Host.CreateDefaultBuilder()
.ConfigureServices((context, services) =>
{
services.AddDbContext<SourceGenContext>( options => options.UseSqlServer(connstring));
services.AddTransient<ISourceGenerator, SourceGenerator>();
services.AddTransient<IGenerateSources, GenerateSources>();
services.AddTransient<IGetEntities, GetEntities>();
})
.UseSerilog()
.Build();
//var mySourceGenSettings = config.GetSection("GenerateSourcesSettings").Get<GenerateSourcesSettings>();
Log.Logger.Information(" List Application settings.. Verify!");
var sgen = ActivatorUtilities.CreateInstance<SourceGenerator>(host.Services);
var result = sgen.Run();
if (result.Result == true)
{
Console.WriteLine();
var getent = ActivatorUtilities.CreateInstance<GetEntities>(host.Services);
var entities = getent.Run();
if (entities.Result.Count > 0)
{
var gen = ActivatorUtilities.CreateInstance<GenerateSources>(host.Services);
await gen.Run();
}
//// var context = await ContextExists(_cancellationSource);
// //foreach (var customer in customersList)
// //{
// // Console.WriteLine($"\t{customer}");
// //}
// // Console.WriteLine("Iterator");
// await Example3(_cancellationSource);
// var startTimeSpan = TimeSpan.Zero;
// var periodTimeSpan = TimeSpan.FromSeconds(20);
// Console.WriteLine();
// Console.WriteLine("Last example");
// var timer = new Timer(async (e) =>
// {
// var x = await Example1();
// Console.WriteLine(x.ToYesNo());
// }, null, startTimeSpan, periodTimeSpan);
// Console.ReadLine();
}
// internal class MyContextFactory : IDesignTimeDbContextFactory<MyContext>
//{
// public MyContext CreateDbContext(string[] args)
// {
// var dbContextBuilder = new DbContextOptionsBuilder<MyContext>();
// var connString = "myconnection string";
// dbContextBuilder.UseSqlServer(connString);
// return new MyContext(dbContextBuilder.Options);
// }
//}
}
}
}