コード例 #1
0
 private void DeleteTester_Click(object sender, RoutedEventArgs e)
 {
     winCondition = "Delete";
     removeWarnings();
     try
     {
         Save.Content                = "Delete";
         TesterForPL                 = new Tester();
         TesterGrid.Visibility       = Visibility.Visible;
         TesterComboBox.Visibility   = Visibility.Visible;
         TesterComboBox.SelectedItem = null;
         TesterGrid.DataContext      = TesterForPL;
         closeAlmostAll();
         IdErrors.Text   = "First Select ID";
         TesterListForPL = bl.GetListOfTesters();
         if (TesterListForPL == null)
         {
             throw new Exception("There are no testers to delete.");
         }
         if (TesterListForPL.Count == 0)
         {
             throw new Exception("There are no testers to delete.");
         }
         TesterComboBox.ItemsSource = bl.GetListOfTesters().Select(x => x.TesterId);
     }
     catch (Exception exception)
     {
         MessageBox.Show(exception.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
     }
 }
コード例 #2
0
 public TestersWindow()
 {
     InitializeComponent();
     WindowStartupLocation = System.Windows.WindowStartupLocation.CenterScreen;
     TesterGrid.Visibility = Visibility.Hidden;
     bl          = IBL_imp.Instance;
     TesterForPL = new Tester();
     this.TesterGrid.DataContext     = TesterForPL;
     this.TesterComboBox.DataContext = TesterListForPL;
     //Save.IsEnabled = false;
     //manage calendar
     dateOfBirthDatePicker.DisplayDateEnd   = DateTime.Now.AddYears(-1 * (int)BE.Configuration.MinAgeOFTester);
     dateOfBirthDatePicker.DisplayDateStart = DateTime.Now.AddYears(-1 * (int)BE.Configuration.MaxAgeOFTester);
     //enums
     this.testerGenderComboBox.ItemsSource = Enum.GetValues(typeof(BE.Gender));
     this.testercarComboBox.ItemsSource    = Enum.GetValues(typeof(BE.CarType));
     //for numbers only
     this.testerIdTextBox.PreviewTextInput           += TextBox_PreviewTextInputNumbers;
     this.phoneNumberTextBox.PreviewTextInput        += TextBox_PreviewTextInputNumbers;
     this.maxDistanceForTestTextBox.PreviewTextInput += TextBox_PreviewTextInputNumbers;
     this.yearsOfExperienceTextBox.PreviewTextInput  += TextBox_PreviewTextInputNumbers;
     this.maxTestsInaWeekTextBox.PreviewTextInput    += TextBox_PreviewTextInputNumbers;
     //for letters only
     this.sirnameTextBox.PreviewTextInput   += TextBox_PreviewTextInputLetters;
     this.firstNameTextBox.PreviewTextInput += TextBox_PreviewTextInputLetters;
     this.City.PreviewTextInput             += TextBox_PreviewTextInputLetters;
 }
コード例 #3
0
        private void UpdateTester_Click(object sender, RoutedEventArgs e)
        {
            winCondition = "update";
            try
            {
                TesterForPL = new Tester();
                TesterComboBox.SelectedItem = null;
                closeAlmostAll();
                TesterGrid.DataContext     = TesterForPL;
                IdErrors.Text              = "First Select ID";
                IdErrors.Foreground        = Brushes.DarkBlue;
                TesterListForPL            = bl.GetListOfTesters();
                TesterComboBox.ItemsSource = bl.GetListOfTesters().Select(x => x.TesterId);
                if (TesterListForPL.Count == 0)
                {
                    throw new Exception("There are no Testers to update.");
                }
                TesterGrid.Visibility = Visibility.Visible;
                TesterGrid.IsEnabled  = true;

                Save.Content = "Check";
                TesterComboBox.Visibility  = Visibility.Visible;
                testerIdTextBox.Visibility = Visibility.Hidden;
            }
            catch (Exception exception)
            {
                MessageBox.Show(exception.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
コード例 #4
0
        public void updateTester(BE.Tester tester)
        {
            bool   tester_exists = false;
            Tester t             = new Tester();
            bool   canchange     = false;

            foreach (Tester item in getAllTesters())
            {
                if (item.id == tester.id)
                {
                    tester_exists = true;
                    if (item.BirthDate == tester.BirthDate && item.TesterGender == tester.TesterGender)
                    {
                        canchange = true;
                    }
                }
            }
            if (!tester_exists)
            {
                throw new Exception("tried updating a tester not in database");
            }
            if (canchange)
            {
                d.updateTester(tester);
            }
            else
            {
                throw new Exception("can't change birth date & gender");
            }
        }
コード例 #5
0
 public AddTester()
 {
     InitializeComponent();
     tester = new BE.Tester();
     this.gridAddTester.DataContext = tester;
     bl = BL.FactoryBL.getBL();
     this.comboBox1.ItemsSource = Enum.GetValues(typeof(BE.gender));
 }
コード例 #6
0
        public SortedSet <DateTime> avalibleDateTimes(Test test)
        {
            BE.Trainee trainee = IDAL.GetTraineeCopy(test.TraineeID);
            var        result  = new SortedSet <DateTime>();
            DateTime   time    = DateTime.Now.AddDays(2);

            time = time.AddMinutes(120 - time.Minute);
            while (time <= DateTime.Now.AddDays(BE.Configuration.AllowToAddTest_DaysInAdvance))
            {
                try
                {
                    test.Time = time;

                    BE.Test LastPreviusTest = null, FirstNextTest = null;
                    foreach (var item in IDAL.GetAllTests(t => t.TraineeID == test.TraineeID))
                    {
                        if (item.Time < test.Time && (LastPreviusTest == null || LastPreviusTest.Time < item.Time))
                        {
                            LastPreviusTest = item;
                        }
                        else if (item.Time >= test.Time && (FirstNextTest == null || LastPreviusTest.Time < item.Time))
                        {
                            FirstNextTest = item;
                        }
                    }
                    if (LastPreviusTest != null && (test.Time - LastPreviusTest.Time).Days < BE.Configuration.MinimumDaysBetweenTests ||
                        FirstNextTest != null && (FirstNextTest.Time - test.Time).Days < BE.Configuration.MinimumDaysBetweenTests)
                    {
                        throw new Exception("לתלמיד זה קיים מבחן בהפרש של פחות משבעה ימים.");
                    }
                    if (test.Time != NextWorkTime(test.Time))
                    {
                        throw new Exception("מועד הטסט מחוץ לשעות העבודה. \nשעות העבודה בימי השבוע הם: " + BE.Configuration.WorkStartHour + " עד " + BE.Configuration.WorkEndHour);
                    }

                    BE.Tester tester = (from item in GetAllTesters(test.Time)
                                        where item.Vehicle == trainee.Vehicle &&
                                        BE.Tools.Maps_DrivingDistance(item.Address, test.Address) < item.MaxDistanceInMeters &&
                                        (!trainee.OnlyMyGender || item.Gender == trainee.Gender) &&
                                        item.GearBoxType == trainee.GearBoxType &&
                                        NumOfTestsInWeek(item, test.Time) < item.MaxTestsInWeek
                                        select item).FirstOrDefault();
                    if (tester == null)
                    {
                        throw new Exception("הזמן המבוקש תפוס");
                    }
                    result.Add(time);
                    time = time.AddDays(1);
                    time = time.AddHours(-time.Hour + BE.Configuration.WorkStartHour);
                }
                catch (Exception)
                {
                    time = time.AddMinutes(15);
                }
                time = NextWorkTime(time);
            }
            return(result);
        }
コード例 #7
0
 /// <summary>
 /// Remove Tester from the DataBase
 /// </summary>
 /// <param name="ID">the ID fo Tester to remove</param>
 public void RemoveTester(string ID)
 {
     BE.Tester tester = IDAL.GetTesterCopy(ID);
     if (tester == null)
     {
         throw new KeyNotFoundException("לא נמצא בוחן שמספרו " + ID);
     }
     IDAL.RemoveTester(ID);
 }
コード例 #8
0
 /// <summary>
 /// Add Tester
 /// </summary>
 /// <param name="tester"></param>
 public void AddTester(BE.Tester tester)
 {
     BE.Tester ExsistTester = GetTester(tester.ID);
     if (ExsistTester != null)
     {
         throw new Exception("הבוחן כבר קיים במערכת");
     }
     testers.Add(tester.Clone());
     SaveToXML <List <Tester> >(testers, testersPath);
 }
コード例 #9
0
 /// <summary>
 /// Remove Tester
 /// </summary>
 /// <param name="ID"></param>
 public void RemoveTester(string ID)
 {
     BE.Tester tester = GetTester(ID);
     if (tester == null)
     {
         throw new KeyNotFoundException("לא נמצא בוחן שמספרו " + ID);
     }
     testers.Remove(tester);
     SaveToXML <List <Tester> >(testers, testersPath);
 }
コード例 #10
0
ファイル: UpdateTester.xaml.cs プロジェクト: acerosen/LAUNCH
 public UpdateTester()
 {
     InitializeComponent();
     tester           = new BE.Tester();
     this.DataContext = tester;
     bl = BL.FactoryBL.getBL();
     IDComboBox.ItemsSource = from item in bl.getAllTester()
                              select item.TesterID;
     //Gender.ItemsSource = Enum.GetValues(typeof(BE.Gender));
 }
コード例 #11
0
        /// <summary>
        /// Update Tester
        /// </summary>
        /// <param name="tester"></param>
        public void UpdateTester(BE.Tester tester)
        {
            int indexTester = testers.FindIndex(t => t.ID == tester.ID);

            if (indexTester == -1)
            {
                throw new KeyNotFoundException("לא נמצא בוחן שמספרו " + tester.ID);
            }
            testers[indexTester] = tester.Clone();
            SaveToXML <List <Tester> >(testers, testersPath);
        }
コード例 #12
0
        public MainWindow()
        {
            InitializeComponent();

            bl = BL.factoryBL.getBL();

            currentTesters  = bl.testersList();
            currentTrainees = bl.traineesList();

            myTester  = new BE.Tester();
            myTrainee = new BE.Trainee();
        }
コード例 #13
0
 private void button_Click(object sender, RoutedEventArgs e)
 {
     try
     {
         BL.BL_imp.addTester(Tester);
         MessageBox.Show("the tester \"" + Tester.id + "\" added to the list", "");
         var Window = new BE.Tester();
         this.gridAddBranch.DataContext = Window;
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
 }
コード例 #14
0
 private void Add_Click(object sender, RoutedEventArgs e)
 {
     try
     {
         bl.addTester(tester);
         MessageBox.Show("the tester " + tester.FirstName + " was added", "");
         tester = new BE.Tester();
         this.gridAddTester.DataContext = tester;
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
 }
コード例 #15
0
 private void AddTester_Click(object sender, RoutedEventArgs e)
 {
     winCondition = "add";
     TesterComboBox.ItemsSource = bl.GetListOfTesters().Select(x => x.TesterId);
     TesterForPL = new Tester();
     openAll();
     TesterGrid.DataContext     = TesterForPL;
     IdErrors.Text              = "";
     testerIdTextBox.Visibility = Visibility.Visible;
     TesterGrid.Visibility      = Visibility.Visible;
     TesterComboBox.Visibility  = Visibility.Hidden;
     TesterGrid.IsEnabled       = true;
     Save.Content = "Check";
 }
コード例 #16
0
 public AddTester(Tester testerToUp)//update window sending an existing tester
 {
     InitializeComponent();
     tester = testerToUp;
     this.EnterButton.Content = "update";
     this.IDTBox.IsReadOnly   = true;
     init(testerToUp);
     //set the schedule with the old values
     foreach (var item in SchedGrid.Children.OfType <CheckBox>())
     {
         int row    = Grid.GetRow(item);
         int column = Grid.GetColumn(item);
         item.IsChecked = tester.WeeklySchedule.weeklySchedule[column - 1][row - 1];
     }
 }
コード例 #17
0
 /// <summary>
 /// Update relevant properties of Tester
 /// </summary>
 /// <param name="tester"></param>
 public void UpdateTester(Tester tester)
 {
     BE.Tester ExistTester = IDAL.GetTesterCopy(tester.ID);
     if (ExistTester == null)
     {
         throw new KeyNotFoundException("לא נמצא בוחן שמספרו " + tester.ID);
     }
     if (ExistTester.FirstName != tester.FirstName || ExistTester.LastName != tester.LastName ||
         ExistTester.BirthDate != tester.BirthDate || ExistTester.Gender != tester.Gender ||
         ExistTester.Experience != tester.Experience)
     {
         throw new KeyNotFoundException("לא ניתן לשנות מידע בסיסי של בוחן");
     }
     IDAL.UpdateTester(tester);
 }
コード例 #18
0
        private void button_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                bl.addTester(tester);

                MessageBox.Show("the Tester \"" + tester.id + "\" added to the list", "");
                tester = new BE.Tester();
                this.gridAddTester.DataContext = tester;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
コード例 #19
0
 /// <summary>
 /// add Tester to the DataBase
 /// </summary>
 /// <param name="tester"></param>
 public void AddTester(BE.Tester tester)
 {
     if (tester.Address == null || tester.Address == "" || tester.BirthDate == default(DateTime) ||
         tester.FirstName == null || tester.FirstName == "" ||
         tester.ID == null || tester.ID == "" || tester.LastName == null || tester.LastName == "" ||
         tester.MailAddress == null || tester.MailAddress == "" ||
         tester.PhoneNumber == null || tester.PhoneNumber == "" || tester.WorkHours == null)
     {
         throw new Exception("חובה למלא את כל הפרטים");
     }
     if (DateTime.Now.Year - tester.BirthDate.Year < BE.Configuration.MinimumTesterAge)
     {
         throw new Exception("אין אפשרות להוסיף בוחן מתחת לגיל 40");
     }
     IDAL.AddTester(tester);
 }
コード例 #20
0
 private void AddTester_Click(object sender, RoutedEventArgs e)
 {
     winCondition = "Add";
     removeWarnings();
     //TesterComboBox.ItemsSource = bl.GetListOfTesters().Select(x => x.TesterId);
     TesterForPL = new Tester();
     openAll();
     TesterGrid.DataContext                 = TesterForPL;
     dateOfBirthDatePicker.SelectedDate     = DateTime.Now.AddYears(-1 * (int)BE.Configuration.MaxAgeOFTester);
     dateOfBirthDatePicker.DisplayDateEnd   = DateTime.Now.AddYears(-1 * (int)BE.Configuration.MinAgeOFTester);
     dateOfBirthDatePicker.DisplayDateStart = DateTime.Now.AddYears(-1 * (int)BE.Configuration.MaxAgeOFTester);
     IdErrors.Text = "";
     testerIdTextBox.Visibility = Visibility.Visible;
     TesterGrid.Visibility      = Visibility.Visible;
     TesterComboBox.Visibility  = Visibility.Hidden;
     TesterGrid.IsEnabled       = true;
     Save.Content = "Check";
 }
コード例 #21
0
        public void updateTester(BE.Tester tester)
        {
            testers = LoadFromXML <List <Tester> >(testerspath);
            Tester t = new Tester();

            foreach (BE.Tester item in testers)
            {
                if (item.id == tester.id)
                {
                    t = item;

                    break;
                }
            }
            testers.Remove(t);
            testers.Add(tester);
            SaveToXML(testers, testerspath);
        }
コード例 #22
0
 XElement convertTester(BE.Tester tester)
 {
     return(new XElement("tester", new XElement("ID", tester.ID),
                         new XElement("Name", new XElement("FirstName", tester.Name.FirstName)
                                      , new XElement("LastName", tester.Name.LastName)),
                         new XElement("DayOfBirth", tester.DayOfBirth.ToString()),
                         new XElement("Gender", tester.Gender.ToString()),
                         new XElement("Address", new XElement("City", tester.Address.City),
                                      new XElement("StreetName", tester.Address.StreetName),
                                      new XElement("Number", tester.Address.Number.ToString())),
                         new XElement("PhoneNumber", tester.phoneNumber),
                         new XElement("Experience", tester.Experience),
                         new XElement("MaxTestWeekly", tester.MaxTestWeekly),
                         new XElement("MaxDistance", tester.MaxDistance),
                         new XElement("Expertise", new XElement("carType", tester.Expertise.carType.ToString()),
                                      new XElement("gearType", tester.Expertise.gearType.ToString())),
                         new XElement(converterSchedule(tester.Luz))
                         ));
 }
コード例 #23
0
        public SortedSet <DateTime> AvalibleTimesInDay(Test test)
        {
            BE.Trainee trainee  = IDAL.GetTraineeCopy(test.TraineeID);
            var        result   = new SortedSet <DateTime>();
            DateTime   time     = test.Time;
            DateTime   timeFlag = test.Time;

            timeFlag = timeFlag.AddHours(-timeFlag.Hour);
            time     = time.AddMinutes(120 - time.Minute);
            while (time <= timeFlag + new TimeSpan(1, 0, 0))
            {
                try
                {
                    test.Time = time;
                    if (test.Time != NextWorkTime(test.Time))
                    {
                        throw new Exception("מועד הטסט מחוץ לשעות העבודה. \nשעות העבודה בימי השבוע הם: " + BE.Configuration.WorkStartHour + " עד " + BE.Configuration.WorkEndHour);
                    }

                    BE.Tester tester = (from item in GetAllTesters(test.Time)
                                        where item.Vehicle == trainee.Vehicle &&
                                        BE.Tools.Maps_DrivingDistance(item.Address, test.Address) < item.MaxDistanceInMeters &&
                                        (!trainee.OnlyMyGender || item.Gender == trainee.Gender) &&
                                        item.GearBoxType == trainee.GearBoxType &&
                                        NumOfTestsInWeek(item, test.Time) < item.MaxTestsInWeek
                                        select item).FirstOrDefault();
                    if (tester == null)
                    {
                        throw new Exception("הזמן המבוקש תפוס");
                    }
                    result.Add(time);
                }
                catch (Exception)
                { }
                time = time.AddMinutes(15);
                time = NextWorkTime(time);
            }
            return(result);
        }
コード例 #24
0
 private void UpdateTester_Click(object sender, RoutedEventArgs e)
 {
     winCondition = "Update";
     removeWarnings();
     try
     {
         TesterForPL = new Tester();
         TesterComboBox.SelectedItem = null;
         closeAlmostAll();
         TesterGrid.DataContext = TesterForPL;
         IdErrors.Text          = "First Select ID";
         IdErrors.Foreground    = Brushes.DarkBlue;
         TesterListForPL        = bl.GetListOfTesters();
         if (TesterListForPL == null)
         {
             throw new Exception("There are no Testers to update.");
         }
         if (TesterListForPL.Count == 0)
         {
             throw new Exception("There are no Testers to update.");
         }
         dateOfBirthDatePicker.DisplayDateEnd   = DateTime.Now.AddYears(-1 * (int)BE.Configuration.MinAgeOFTester);
         dateOfBirthDatePicker.DisplayDateStart = DateTime.Now.AddYears(-1 * (int)BE.Configuration.MaxAgeOFTester);
         TesterComboBox.ItemsSource             = bl.GetListOfTesters().Select(x => x.TesterId);
         TesterGrid.Visibility      = Visibility.Visible;
         TesterGrid.IsEnabled       = true;
         Save.Content               = "Check";
         TesterComboBox.Visibility  = Visibility.Visible;
         testerIdTextBox.Visibility = Visibility.Hidden;
     }
     catch (Exception exception)
     {
         if (exception.Message != "Object reference not set to an instance of an object.")
         {
             MessageBox.Show(exception.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
         }
     }
 }
コード例 #25
0
        private void TesterComboBox_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (TesterComboBox.SelectedIndex != -1)
            {
                IdErrors.Text = "";
                if (Save.Content == "Check")
                {
                    openAll();
                }
                string id = (string)TesterComboBox.SelectedItem;
                TesterForPL = bl.GetListOfTesters().FirstOrDefault(a => a.TesterId == id);
                this.TesterGrid.DataContext = TesterForPL;

                testerGenderComboBox.SelectedItem = TesterForPL.TesterGender;
                if (TesterForPL.TesterGender == Gender.Male)
                {
                    testerGenderComboBox.SelectedIndex = 0;
                }
                else if (TesterForPL.TesterGender == Gender.Female)
                {
                    testerGenderComboBox.SelectedIndex = 1;
                }
                else
                {
                    testerGenderComboBox.SelectedIndex = 2;
                }
                testercarComboBox.SelectedItem = TesterForPL.Testercar;
                City.Text          = TesterForPL.TesterAdress.City;
                Street.Text        = TesterForPL.TesterAdress.Street;
                BuidingNumber.Text = TesterForPL.TesterAdress.BuildingNumber;

                //schedual
                TesterForPL.getSchedual(SundayArr, MondayArr, TuesdayArr, WednesdayArr, ThursdayArr);
                showDailyHours(SundayArr);//working hours in sunday

//this.TesterGrid.DataContext = TesterForPL;
            }
        }
コード例 #26
0
        /// <summary>
        /// UpdateTester ctor
        /// </summary>
        public UpdateTester()
        {
            try
            {
                tester = ((MainWindow)Application.Current.MainWindow).selectedTesters[0];
            }
            catch (Exception)
            {
                MessageBox.Show("לא נבחר בוחן");
                this.Close();
            }
            InitializeComponent();
            this.gearBoxTypeComboBox.ItemsSource = Enum.GetValues(typeof(BE.GearBoxType));
            this.genderComboBox.ItemsSource      = Enum.GetValues(typeof(BE.Gender));
            this.vehicleComboBox.ItemsSource     = Enum.GetValues(typeof(BE.Vehicle));
            this.DataContext = tester;
            this.WorkHoursGrid.DataContext = this;
            this.DayComboBox.ItemsSource   = Enum.GetValues(typeof(BE.WeekDays));
            List <string> worsHours = (from item in tester.WorkHours select item.ToString()).ToList();

            this.WorkHoursDataGrid.ItemsSource = (from item in tester.WorkHours select new { OnetimePeriod = item.ToString() });
            this.addressPicker.Address         = tester.Address;
        }
コード例 #27
0
        private void init(BE.Tester tester)
        {
            this.TextBoxGrid.DataContext = tester;

            GenderCBox.ItemsSource     = Enum.GetValues(typeof(Gender));
            SpecialityCBox.ItemsSource = Enum.GetValues(typeof(Vehicle));
            CityCBox.ItemsSource       = Enum.GetValues(typeof(Cities));
            //tester experience
            for (int i = 0; i < Configuration.MaxTesterAge - Configuration.minTesterAge; i++)
            {
                ExpCBox.Items.Add(i);
            }
            //can take up to 30 tests; (5 days * 6 hours)
            for (int i = 0; i <= 30; i++)
            {
                MaxTestsCBox.Items.Add(i);
            }
            //distance
            for (int i = 0; i < 150; i++)
            {
                MaxDistanceCBox.Items.Add(i);
            }
        }
コード例 #28
0
        private void TesterComboBox_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            IdErrors.Text = "";
            if (Save.Content == "Check")
            {
                openAll();
            }

            string id = (string)TesterComboBox.SelectedItem;

            TesterForPL = bl.GetListOfTesters().FirstOrDefault(a => a.TesterId == id);
            {                               //schedual
                hoursFromSchedualArr = TesterForPL.getSchedual();
                for (int i = 0; i < 6; i++) //put selections hour for sunday
                {
                    if (hoursFromSchedualArr[i, 0])
                    {
                        schedualListBox.SelectedIndex = i;
                    }
                }
            }
            this.TesterGrid.DataContext = TesterForPL;
        }
コード例 #29
0
        public object findById(int num)//return the object(trianee/ tester/ test) according to id/code of test
        {
            BE.Tester tester = getTestersList().Find(x => x.ID == num);
            if (tester != null)
            {
                return(tester);
            }
            BE.Trainee trainee = getTraineeList().Find(x => x.ID == num);
            if (trainee != null)
            {
                return(trainee);
            }
            BE.Test test = getTestsList().Find(x => x.numOfTest == num);
            if (test != null)
            {
                return(test);
            }

            else
            {
                throw new Exception("No such Id in our database.");
            }
        }
コード例 #30
0
 private void OkButton_Click(object sender, RoutedEventArgs e)
 {
     try
     {
         BE.Tester tester = My_bl.GetAllTesters().Find(x => x.Id == TesterIDTextBox.Text);
         if (tester == null)
         {
             throw new Exception("Tester " + TesterIDTextBox.Text + "not found!!");
         }
         if (tester.Password == YourPasswordBox.Password)
         {
             List <Test> myTests = My_bl.GetAllTests().FindAll(x => x.TesterId == TesterIDTextBox.Text && x.TestDate <= DateTime.Now &&
                                                               x.ISUpdated == false);
             if (myTests.Any() == false)
             {
                 throw new Exception("You don't have any tests to update");
             }
             ListIndex        = 0;
             StudentIDTB.Text = myTests[0].TraineeId;
             Trainee trainee = My_bl.GetAllTrainees().Find(x => x.Id == StudentIDTB.Text);
             studentDetails.Content   = trainee.Name + " " + trainee.FamilyName;
             TestDateDP.SelectedDate  = myTests[ListIndex].TestDate;
             HourDispalyLabel.Content = "Hour:" + myTests[ListIndex].TestDate.Hour + ":00";
             TestsNumberTB.Text       = myTests[ListIndex].TestNumber;
             ActiveFildes();
         }
         else
         {
             throw new Exception("Worng password!!");
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message, "ERROR");
     }
 }