Program.cs 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. using EVCB_OCPP.Domain;
  2. using EVCB_OCPP.WSServer.Message;
  3. using EVCB_OCPP.WSServer.Service;
  4. using Microsoft.EntityFrameworkCore;
  5. using Microsoft.Extensions.Configuration;
  6. using Microsoft.Extensions.DependencyInjection;
  7. using Microsoft.Extensions.Hosting;
  8. using Microsoft.Extensions.Logging;
  9. using Newtonsoft.Json;
  10. using System;
  11. using NLog;
  12. using NLog.Web;
  13. using NLog.Extensions.Logging;
  14. using System.IO;
  15. using System.Data.Common;
  16. using Microsoft.Data.SqlClient;
  17. namespace EVCB_OCPP.WSServer
  18. {
  19. class Program
  20. {
  21. static void Main(string[] args)
  22. {
  23. Console.WriteLine("====================================================================================================");
  24. Console.WriteLine("====================================================================================================");
  25. Console.WriteLine("== ==");
  26. Console.WriteLine("== ------------ ----------- ------------- ------------- ==");
  27. Console.WriteLine("== --- --- ---- ---------------- ---------------- ==");
  28. Console.WriteLine("== --- --- ---- ---- --- ---- --- ==");
  29. Console.WriteLine("== --- --- ---- ---- --- ---- --- ==");
  30. Console.WriteLine("== --- --- ---- ---- ------------- ---- ------------- ==");
  31. Console.WriteLine("== --- --- ---- ---- ----------- ---- ----------- ==");
  32. Console.WriteLine("== --- --- ---- ---- ---- ==");
  33. Console.WriteLine("== --- --- ---- ---- ---- ==");
  34. Console.WriteLine("== ----------- ----------- ---- ---- ==");
  35. Console.WriteLine("== ==");
  36. Console.WriteLine("====================================================================================================");
  37. Console.WriteLine("====================================================================================================");
  38. IHost host = Host.CreateDefaultBuilder(args)
  39. .ConfigureLogging((context, builder) => {
  40. builder.ClearProviders();
  41. NLog.LogManager.Configuration = new NLogLoggingConfiguration(context.Configuration.GetSection("NLog"));
  42. })
  43. .UseNLog()
  44. .ConfigureServices((hostContext, services) =>
  45. {
  46. var commandTimeout = int.TryParse(hostContext.Configuration["CommandTimeout"], out var temp) ? temp : 180;
  47. var maxRetryCount = int.TryParse(hostContext.Configuration["MaxRetryCount"], out var temp2) ? temp2 : int.MaxValue;
  48. services.AddPooledDbContextFactory<MainDBContext>((options) => {
  49. var cString = hostContext.Configuration.GetConnectionString("MainDBContext");
  50. options.UseSqlServer(cString, dbOptions =>
  51. {
  52. dbOptions.EnableRetryOnFailure(maxRetryCount);
  53. dbOptions.CommandTimeout(commandTimeout);
  54. });
  55. });
  56. services.AddPooledDbContextFactory<MeterValueDBContext>((options) => {
  57. var cString = hostContext.Configuration.GetConnectionString("MeterValueDBContext");
  58. options.UseSqlServer(cString, dbOptions => {
  59. dbOptions.EnableRetryOnFailure(maxRetryCount);
  60. dbOptions.CommandTimeout(commandTimeout);
  61. });
  62. });
  63. services.AddPooledDbContextFactory<ConnectionLogDBContext>((options) => {
  64. var cString = hostContext.Configuration.GetConnectionString("ConnectionLogDBContext");
  65. options.UseSqlServer(cString, dbOptions => {
  66. dbOptions.EnableRetryOnFailure(maxRetryCount);
  67. dbOptions.CommandTimeout(commandTimeout);
  68. });
  69. });
  70. services.AddProtalServer();
  71. })
  72. .Build();
  73. host.Run();
  74. //ProtalServer s = new ProtalServer();
  75. //Console.WriteLine("Starting Server...");
  76. //s.Start();
  77. //Console.Read();
  78. }
  79. public static object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
  80. {
  81. DateTime? timevalue = null;
  82. if (reader.Value != null)
  83. {
  84. DateTime date = ((DateTime)reader.Value).ToLocalTime();
  85. timevalue = new DateTime(date.Year, date.Month, date.Day, date.TimeOfDay.Hours, date.TimeOfDay.Minutes, date.TimeOfDay.Seconds, 000);
  86. }
  87. return timevalue;
  88. }
  89. }
  90. }