Exemplo n.º 1
0
        void worker_DoWork(object sender, DoWorkEventArgs e)
        {
            Func <Transaction, bool> whereQuery = (Func <Transaction, bool>)e.Argument;

            worker.ReportProgress(1);
            BillingDataDataContext db = new BillingDataDataContext();

            List <Transaction> transactions = db.Transactions.Where(whereQuery).ToList();
            double             transCount   = transactions.Count;

            double i = 0;

            foreach (Transaction trans in transactions)
            {
                if (trans.ConnsignmentNo == "X10477603")
                {
                    Debug.WriteLine("ABC");
                }
                trans.AmountCharged = (decimal)UtilityClass.getCost(trans.CustCode, trans.BilledWeight ?? 0, trans.Destination, trans.Type.Trim(), trans.DOX);
                if (trans.Insurance != null)
                {
                    trans.AmountCharged = trans.AmountCharged + (decimal)trans.Insurance;
                }

                worker.ReportProgress((int)((i / transCount) * 94 + 1));
                i++;
            }
            ChangeSet changeSet = db.GetChangeSet();

            db.SubmitChanges();
            worker.ReportProgress(100);
            e.Result = "Completed for " + ((int)transCount).ToString() + " transactions";
        }