Example #1
0
        private void _InitNextJobUI(CswPrintJobServiceThread.NextJobEventArgs e)
        {
            if (e.Succeeded)
            {
                string errMsg     = string.Empty;
                string statusInfo = "Job#" + e.Job.JobNo + " for " + e.Job.JobOwner + " " + e.Job.LabelCount.ToString() + " of " + e.Job.LabelName;
                bool   success    = NbtPrintUtil.PrintLabel(e.printer.PrinterName, e.Job.LabelData, ref statusInfo, ref errMsg);

                if (e.Job.LabelCount > 0)
                {
                    _svcThread.updateJob(e.auth, e.Job.JobKey, success, errMsg);
                }

                if (e.Job.RemainingJobCount > 0)
                {
                    timerInterval = 1000; //more jobs, fire soon
                }
                else
                {
                    timerInterval = 10000; //no jobs, use std polling interval of 10 sec
                }
            }
            else
            {
                Log(e.Message);
            }
            timerEnabled = true;
        } // _InitNextJobUI()
Example #2
0
        private void _InitNextJobUI(CswPrintJobServiceThread.NextJobEventArgs e)
        {
            if (e.Succeeded)
            {
                string errMsg     = string.Empty;
                string statusInfo = "Job#" + e.Job.JobNo + " for " + e.Job.JobOwner + " " + e.Job.LabelCount.ToString() + " of " + e.Job.LabelName;
                if (e.Job.LabelCount < 1)
                {
                    statusInfo     = "No label jobs to print at " + DateTime.Now.ToString();
                    lblStatus.Text = statusInfo;
                    Update();
                }
                else
                {
                    bool success = NbtPrintUtil.PrintLabel(e.printer.PrinterName, e.Job.LabelData, ref statusInfo, ref errMsg);
                    if (success)
                    {
                        lblStatus.Text = statusInfo;
                    }
                    else
                    {
                        Log(errMsg);
                    }

                    if (e.Job.LabelCount > 0)
                    {
                        CswPrintJobServiceThread.UpdateJobInvoker lblInvoke = new CswPrintJobServiceThread.UpdateJobInvoker(_svcThread.updateJob);
                        lblInvoke.BeginInvoke(_getAuth(), e.Job.JobKey, success, errMsg, null, null);
                    }
                    if (e.Job.RemainingJobCount > 0)
                    {
                        timer1.Interval = 500; //more jobs, fire soon
                    }
                    else
                    {
                        timer1.Interval = 10000; //no jobs, use std polling interval of 10 sec
                    }
                }
            }
            else
            {
                Log(e.Message);
                timer1.Stop();
            }
            //find this printer and clear its working flag
            for (int i = 0; i < config.printers.Count; ++i)
            {
                if (config.printers[i].PrinterKey == e.printer.PrinterKey)
                {
                    config.printers[i].working = false;
                    i = config.printers.Count + 1;
                }
            }
        } // _InitNextJobUI()
Example #3
0
        //must not touch UI components directly!

        /*
         * void _ServiceThread_Register( ServiceThread.RegisterEventArgs e )
         * {
         *  this.BeginInvoke( new InitRegisterHandler( _InitRegisterUI ), new object[] { e } );
         * } */
        void _ServiceThread_NextJob(CswPrintJobServiceThread.NextJobEventArgs e)
        {
            this.BeginInvoke(new InitNextJobHandler(_InitNextJobUI), new object[] { e });
        }