Ejemplo n.º 1
0
 private void addTesterDetails(DO.Test doTestSorce, Test boTestToUpdate)
 {
     try
     {
         DO.Tester      tester        = dlObject.getTester(doTestSorce.TesterID);
         ExternalTester testerDetails = new ExternalTester(tester.ToBOTester());
         boTestToUpdate.Tester = testerDetails;
     }
     catch (Exception exception)
     {
         throw exception.ToBOException();
     }
 }
Ejemplo n.º 2
0
        void IBL.addTestWithFoundTester(Trainee trainee, DateTime date, int time, Address exitAddress, Tester foundTester)
        {
            ExternalTester tester = new ExternalTester(foundTester);
            Test           test   = new Test(
                0,
                tester,
                trainee.ID,
                trainee.FirstName + " " + trainee.LastName,
                date,
                time,
                exitAddress);

            DO.Test testToAdd       = test.ToDOTest();
            int     fixedTestNumber = dlObject.addTest(testToAdd);

            trainee.Tests.Add(
                new TraineeTest(dlObject.getTest(fixedTestNumber).ToBOTest(),
                                new ExternalTrainee(trainee)));
        }
Ejemplo n.º 3
0
        private void AddTestWorker_DoWork(object sender, DoWorkEventArgs e)
        {
            try
            {
                BackgroundWorker worker      = sender as BackgroundWorker;
                List <Object>    parms       = e.Argument as List <Object>;
                Address          exitAddress = (Address)parms[0];
                List <DO.Tester> relevants   = parms[1] as List <DO.Tester>;
                DateTime         date        = (DateTime)parms[2];
                int     time    = (int)parms[3];
                Trainee trainee = (Trainee)parms[4];

                List <Tester> relevantAndCloseTesters = relevants.
                                                        Where(tester => distance(tester.Address.ToBOAddress(), exitAddress, worker) <= tester.MaxDistanceFromAddress).
                                                        Select(x => x.ToBOTester()).ToList();
                if (worker.CancellationPending)
                {
                    e.Cancel = true;
                    return;
                }
                foreach (Tester BOtester in relevantAndCloseTesters)
                {
                    addListOfTests(BOtester);
                    addTesterSchedule(BOtester);
                }

                if (relevantAndCloseTesters.Any() == false)
                {
                    throw new NoTesterCloseEnoughException("Sorry, we have no tester close enough to the asked exit address, please choose another address.\n");
                }
                if (worker.CancellationPending)
                {
                    e.Cancel = true;
                    return;
                }
                ExternalTester foundTester = getAvailableTester(relevantAndCloseTesters, date, time, trainee, exitAddress, worker);
                Test           test        = new Test(
                    0,
                    foundTester,
                    trainee.ID,
                    trainee.FirstName + " " + trainee.LastName,
                    date,
                    time,
                    exitAddress);
                if (worker.CancellationPending)
                {
                    e.Cancel = true;
                    return;
                }
                DO.Test testToAdd       = test.ToDOTest();
                int     fixedTestNumber = dlObject.addTest(testToAdd);
                trainee.Tests.Add(
                    new TraineeTest(dlObject.getTest(fixedTestNumber).ToBOTest(),
                                    new ExternalTrainee(trainee)));
                e.Result = fixedTestNumber;
            }
            catch (Exception ex)
            {
                if (ex is OperationCanceledException)
                {
                    e.Cancel = true;
                }
                e.Result = ex.ToBOException();
            }
        }