private void findButton_Click(object sender, EventArgs e)
        {
            if (this.ValidateChildren())
            {
                SlotFinder slotFinder     = new SlotFinder();
                var        findSlotParams = new FindSlotParams
                {
                    Email    = emailAddressTextBox.Text,
                    Password = passwordTextBox.Text,
                    Dates    = selectedDatesListBox.Items.Cast <DateTime>().ToList()
                };

                var result     = slotFinder.FindSlot(findSlotParams);
                var resultText = result.Succeeded
                    ? $"Slot was successfully booked for { result.DateBooked.Value.ToString("d") }"
                    : "Slot was not booked";
                resultLabel.Text = resultText;
            }
        }
Example #2
0
        public FindSlotResult FindSlot(FindSlotParams findSlotParams)
        {
            var dateFormatters = findSlotParams.Dates.Select(d => new DateFormatter(d)).ToList();

            using (var driver = CreateUndetectableDriver())
            {
                PrepareLoginPage(driver, findSlotParams.Email, findSlotParams.Password);
                WaitForUserToLogin(driver);
                NavigateToManageFamilyRegistrationPage(driver);
                NavigateToHoldYourAccommodationPage(driver);
                var dateBooked = RetryUntilSlotBooked(driver, dateFormatters);
                WaitForConfirmation(driver);

                Thread.Sleep(waitUntilClosingDelay);
                return(new FindSlotResult {
                    Succeeded = true, DateBooked = dateBooked
                });
            }
        }