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(); } }
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))); }
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(); } }