打印服务
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

73 lines
2.6 KiB

3 years ago
  1. 
  2. using Microsoft.Extensions.Configuration;
  3. using Microsoft.Extensions.DependencyInjection;
  4. using Microsoft.Extensions.Hosting;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Globalization;
  8. using System.IO;
  9. using System.Threading;
  10. using System.Threading.Tasks;
  11. namespace POSCorePrint
  12. {
  13. class Program
  14. {
  15. //private static Dictionary<string, Printer> printerList = new Dictionary<string, Printer>();
  16. static async Task Main(string[] args)
  17. {
  18. //add by liuwz 2019-12-26 解决linux下时间格式的问题
  19. var culture = CultureInfo.CreateSpecificCulture("zh-CN");
  20. var dateformat = new DateTimeFormatInfo()
  21. {
  22. ShortTimePattern = "HH:mm:ss",
  23. LongTimePattern = "HH:mm:ss",
  24. ShortDatePattern = "yyyy-MM-dd",
  25. LongDatePattern = "yyyy-MM-dd",
  26. FullDateTimePattern = "yyyy-MM-dd HH:mm:ss"
  27. };
  28. culture.DateTimeFormat = dateformat;
  29. CultureInfo.DefaultThreadCurrentUICulture = culture;
  30. CultureInfo.DefaultThreadCurrentCulture = culture;
  31. var builder = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);
  32. Constant.Configuration = builder.Build();
  33. Constant.ConnectionString = Constant.Configuration["Config:connectionString"];
  34. Constant.PrintBackTime = double.Parse(Constant.Configuration["taskTimes:printBackTime"]);
  35. Constant.SaveHisDataDays = double.Parse(Constant.Configuration["taskTimes:saveHisDataDays"]);
  36. var hostBuilder = new HostBuilder()
  37. .ConfigureServices(serviceCollection =>
  38. {
  39. //注册我们的服务接口
  40. serviceCollection.AddSingleton<IHostedService, MyService>();
  41. });
  42. await hostBuilder.RunConsoleAsync();
  43. }
  44. }
  45. class MyService : IHostedService
  46. {
  47. public Task StartAsync(CancellationToken cancellationToken)
  48. {
  49. return Task.Run(() =>
  50. {
  51. Console.WriteLine($"{DateTime.Now.ToString()}:开启打印任务:" + DateTime.Now.ToString());
  52. TaskStart taskStart = new TaskStart();
  53. taskStart.Start();
  54. });
  55. }
  56. public Task StopAsync(CancellationToken cancellationToken)
  57. {
  58. return Task.Run(() =>
  59. {
  60. Console.WriteLine($"{DateTime.Now.ToString()}:关闭打印任务:" + DateTime.Now.ToString());
  61. });
  62. }
  63. }
  64. }