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);
        }
Example #2
0
        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);
        }
Example #3
0
        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).");
        }