protected override void SetupProvider() { // Transports var comTransport = new ComTransport(); var tcpTransport = new TcpTransport(); // Drivers var datecsXIsl = new BgDatecsXIslFiscalPrinterDriver(); var datecsPIsl = new BgDatecsPIslFiscalPrinterDriver(); var datecsCIsl = new BgDatecsCIslFiscalPrinterDriver(); var eltradeIsl = new BgEltradeIslFiscalPrinterDriver(); var daisyIsl = new BgDaisyIslFiscalPrinterDriver(); var incotexIsl = new BgIncotexIslFiscalPrinterDriver(); var islIcp = new BgIslIcpFiscalPrinterDriver(); var tremolZfp = new BgTremolZfpFiscalPrinterDriver(); var tremolV2Zfp = new BgTremolZfpV2FiscalPrinterDriver(); // Add drivers and their compatible transports to the provider. Provider = new Provider() // Isl X Frame .Register(datecsXIsl, comTransport) .Register(datecsXIsl, tcpTransport) // Isl Frame .Register(datecsCIsl, comTransport) .Register(datecsCIsl, tcpTransport) .Register(datecsPIsl, comTransport) .Register(datecsPIsl, tcpTransport) .Register(eltradeIsl, comTransport) .Register(eltradeIsl, tcpTransport) // Isl Frame + constants .Register(daisyIsl, comTransport) .Register(daisyIsl, tcpTransport) .Register(incotexIsl, comTransport) .Register(incotexIsl, tcpTransport) // Icp Frame .Register(islIcp, comTransport) .Register(islIcp, tcpTransport) // Zfp Frame .Register(tremolZfp, comTransport) .Register(tremolZfp, tcpTransport) .Register(tremolV2Zfp, comTransport) .Register(tremolV2Zfp, tcpTransport); }
static Provider GetProviderOfSupportedTransportsAndDrivers() { // Transports var comTransport = new ComTransport(); //var btTransport = new BtTransport(); //var httpTransport = new HttpTransport(); // Cloud transport with account. // var cloudPrintTransport = new CloudPrintTransport("user", "pwd"); // Drivers var daisyIsl = new BgDaisyIslFiscalPrinterDriver(); var datecsPIsl = new BgDatecsPIslFiscalPrinterDriver(); var datecsCIsl = new BgDatecsCIslFiscalPrinterDriver(); var datecsXIsl = new BgDatecsXIslFiscalPrinterDriver(); var eltradeIsl = new BgEltradeIslFiscalPrinterDriver(); var tremolZfp = new BgTremolZfpFiscalPrinterDriver(); var tremolV2Zfp = new BgTremolZfpV2FiscalPrinterDriver(); // Add ErpNet Json driver, which can be used to forward the commands to: // 1. Another ErpNet print server. // 2. Cloud printing instance. // var erpNetJson = new ErpNetJsonDriver(); // Add drivers and their compatible transports to the provider. var provider = new Provider() .Register(daisyIsl, comTransport) .Register(datecsCIsl, comTransport) .Register(datecsPIsl, comTransport) .Register(eltradeIsl, comTransport) .Register(datecsXIsl, comTransport) .Register(tremolZfp, comTransport) .Register(tremolV2Zfp, comTransport); return(provider); }
public PrintersControllerContext(IConfiguration configuration, ILogger logger) { this.logger = logger; var autoDetect = configuration.GetValue <bool>("AutoDetect", true); // Transports var comTransport = new ComTransport(); // Drivers var daisyIsl = new BgDaisyIslFiscalPrinterDriver(); var datecsPIsl = new BgDatecsPIslFiscalPrinterDriver(); var datecsCIsl = new BgDatecsCIslFiscalPrinterDriver(); var datecsXIsl = new BgDatecsXIslFiscalPrinterDriver(); var eltradeIsl = new BgEltradeIslFiscalPrinterDriver(); var tremolZfp = new BgTremolZfpFiscalPrinterDriver(); var tremolV2Zfp = new BgTremolZfpV2FiscalPrinterDriver(); // Add drivers and their compatible transports to the provider. var provider = new Provider() .Register(daisyIsl, comTransport) .Register(datecsCIsl, comTransport) .Register(datecsPIsl, comTransport) .Register(eltradeIsl, comTransport) .Register(datecsXIsl, comTransport) .Register(tremolZfp, comTransport) .Register(tremolV2Zfp, comTransport); if (autoDetect) { logger.LogInformation("Autodetecting local printers..."); var printers = provider.DetectAvailablePrinters(); foreach (KeyValuePair <string, IFiscalPrinter> printer in printers) { AddPrinter(printer.Value); } } logger.LogInformation("Detecting configured printers..."); var printersSettings = configuration.GetSection("Printers").Get <Dictionary <string, PrinterConfig> >(); if (printersSettings != null) { foreach (var printerSetting in printersSettings) { string logString = $"Trying {printerSetting.Key}: {printerSetting.Value.Uri}"; var uri = printerSetting.Value.Uri; if (uri.Length > 0) { try { var printer = provider.Connect(printerSetting.Value.Uri, null); logger.LogInformation($"{logString}, OK"); PrintersInfo.Add(printerSetting.Key, printer.DeviceInfo); Printers.Add(printerSetting.Key, printer); } catch { logger.LogInformation($"{logString}, failed"); // Do not add this printer, it fails to connect. } } } } logger.LogInformation($"Detecting done. Found {Printers.Count} available printer(s)."); }