public override void Book(BookingContext context, string name)
 {
     throw new InvalidOperationException("Invalid action for state: Booked");
 }
 public override void EnterState(BookingContext context)
 {
     Console.WriteLine($"Booking ID: {context.BookingId} created for {context.Name}");
 }
 public override void Cancel(BookingContext context)
 {
     context.TransitionToState(new ClosedBookingState());
 }
        public override void Book(BookingContext context, string name)
        {
            context.Name = name;

            context.TransitionToState(new BookedBookingState());
        }
        public override void EnterState(BookingContext context)
        {
            context.BookingId = Guid.NewGuid();

            Console.WriteLine($"Created new booking ID: {context.BookingId}");
        }
 public override void Cancel(BookingContext context)
 {
     throw new InvalidOperationException("Invalid action for state: Closed");
 }