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