public static void FillFakeDgvBooking(DateTime start, DateTime end)
        {
            switch (InfoPasserStatic.rbtBookingCurrentState)
            {
            case "Future":
                using (var context = new Entities())
                {
                    DateTime today   = DateTime.Today;
                    var      alldata = from j in context.BookingRoomJoins.Where(j => j.Booking.BookingFrom > today && j.Booking.BookingFrom >= start && j.Booking.BookingTo <= end)

                                       select new
                    {
                        j.Booking.BookingID,
                        Guest_Name  = j.Booking.Guest.GuestName,
                        From        = j.Booking.BookingFrom,
                        To          = j.Booking.BookingTo,
                        Checked_In  = j.Booking.BookingCheckedIn,
                        Checked_Out = j.Booking.BookingCheckedOut,
                        Notes       = j.Booking.BookingNotes,
                        Status      = j.Booking.BookingStatus,
                        Rooms       = j.Room.RoomID
                    };
                    FakeDgvBooking.DataSource = alldata.ToList();
                }
                break;

            case "All":
                using (var context = new Entities())
                {
                    var alldata = from j in context.BookingRoomJoins.Where(j => j.Booking.BookingFrom >= start && j.Booking.BookingTo <= end)

                                  select new
                    {
                        j.Booking.BookingID,
                        Guest_Name  = j.Booking.Guest.GuestName,
                        From        = j.Booking.BookingFrom,
                        To          = j.Booking.BookingTo,
                        Checked_In  = j.Booking.BookingCheckedIn,
                        Checked_Out = j.Booking.BookingCheckedOut,
                        Notes       = j.Booking.BookingNotes,
                        Status      = j.Booking.BookingStatus,
                        Rooms       = j.Room.RoomID
                    };
                    FakeDgvBooking.DataSource = alldata.ToList();
                }
                break;

            //ignores supplied datetines and returns the same info as dateless method
            case "Current":
                using (var context = new Entities())
                {
                    var alldata =
                        from j in
                        context.BookingRoomJoins.Where(
                            j =>
                            j.Booking.BookingFrom <= DateTime.Today && j.Booking.BookingTo >= DateTime.Today)

                        select new
                    {
                        j.Booking.BookingID,
                        Guest_Name  = j.Booking.Guest.GuestName,
                        From        = j.Booking.BookingFrom,
                        To          = j.Booking.BookingTo,
                        Checked_In  = j.Booking.BookingCheckedIn,
                        Checked_Out = j.Booking.BookingCheckedOut,
                        Notes       = j.Booking.BookingNotes,
                        Status      = j.Booking.BookingStatus,
                        Rooms       = j.Room.RoomID
                    };
                    FakeDgvBooking.DataSource = alldata.ToList();
                }
                break;
            }
        }
        public static void FillFakeDgvBooking()
        {
            switch (InfoPasserStatic.rbtBookingCurrentState)
            {
            //Shows bookings with a start date later than today
            case "Future":
                using (var context = new Entities())
                {
                    DateTime today   = DateTime.Today;
                    var      alldata = from j in context.BookingRoomJoins.Where(j => j.Booking.BookingFrom > today)

                                       select new
                    {
                        j.Booking.BookingID,
                        Guest_Name  = j.Booking.Guest.GuestName,
                        From        = j.Booking.BookingFrom,
                        To          = j.Booking.BookingTo,
                        Checked_In  = j.Booking.BookingCheckedIn,
                        Checked_Out = j.Booking.BookingCheckedOut,
                        Notes       = j.Booking.BookingNotes,
                        Status      = j.Booking.BookingStatus,
                        Rooms       = j.Room.RoomID
                    };
                    FakeDgvBooking.DataSource = alldata.ToList();
                }
                break;

            case "All":
                using (var context = new Entities())
                {
                    var alldata = from j in context.BookingRoomJoins

                                  select new
                    {
                        j.Booking.BookingID,
                        Guest_Name  = j.Booking.Guest.GuestName,
                        From        = j.Booking.BookingFrom,
                        To          = j.Booking.BookingTo,
                        Checked_In  = j.Booking.BookingCheckedIn,
                        Checked_Out = j.Booking.BookingCheckedOut,
                        Notes       = j.Booking.BookingNotes,
                        Status      = j.Booking.BookingStatus,
                        Rooms       = j.Room.RoomID
                    };
                    FakeDgvBooking.DataSource = alldata.ToList();
                }
                break;

            //Shows bookings that have a start date of today or earlier and an end date of today or later
            case "Current":
                using (var context = new Entities())
                {
                    var alldata =
                        from j in
                        context.BookingRoomJoins.Where(
                            j =>
                            j.Booking.BookingFrom <= DateTime.Today && j.Booking.BookingTo >= DateTime.Today)

                        select new
                    {
                        j.Booking.BookingID,
                        Guest_Name  = j.Booking.Guest.GuestName,
                        From        = j.Booking.BookingFrom,
                        To          = j.Booking.BookingTo,
                        Checked_In  = j.Booking.BookingCheckedIn,
                        Checked_Out = j.Booking.BookingCheckedOut,
                        Notes       = j.Booking.BookingNotes,
                        Status      = j.Booking.BookingStatus,
                        Rooms       = j.Room.RoomID
                    };
                    FakeDgvBooking.DataSource = alldata.ToList();
                }
                break;
            }
        }
        public static void FillFakeDgvBilling(DateTime start, DateTime end)
        {
            switch (InfoPasserStatic.rbtBillingCurrentState)
            {
            case "All":
                using (var context = new Entities())
                {
                    var alldata =
                        from b in
                        context.Billings.Where(
                            b =>
                            b.BookingRoomJoin.Booking.BookingFrom >= start &&
                            b.BookingRoomJoin.Booking.BookingTo <= end)
                        select new
                    {
                        Invoice_No = b.BillingID,
                        b.BookingRoomJoin.Room.RoomID,
                        Bar_Charge   = b.BarCharge,
                        Phone_Charge = b.PhoneCharge,
                        Room_Charge  = b.RoomCharge,
                        WiFi_Charge  = b.WiFiCharge,
                        Paid         = b.BillingPaid
                    };
                    FakeDgvBilling.DataSource = alldata.ToList();
                }
                break;

            case "Open":
                using (var context = new Entities())
                {
                    var alldata = from b in context.Billings.Where(b => !b.BillingPaid)
                                  select new
                    {
                        Invoice_No = b.BillingID,
                        b.BookingRoomJoin.Room.RoomID,
                        Bar_Charge   = b.BarCharge,
                        Phone_Charge = b.PhoneCharge,
                        Room_Charge  = b.RoomCharge,
                        WiFi_Charge  = b.WiFiCharge,
                        Paid         = b.BillingPaid
                    };
                    FakeDgvBilling.DataSource = alldata.ToList();
                }
                break;

            case "Pay":
                using (var context = new Entities())
                {
                    var alldata = from b in context.Billings.Where(b => !b.BillingPaid)
                                  select new
                    {
                        Invoice_No = b.BillingID,
                        b.BookingRoomJoin.Room.RoomID,
                        Bar_Charge   = b.BarCharge,
                        Phone_Charge = b.PhoneCharge,
                        Room_Charge  = b.RoomCharge,
                        WiFi_Charge  = b.WiFiCharge,
                        Paid         = b.BillingPaid
                    };
                    FakeDgvBilling.DataSource = alldata.ToList();
                }
                break;
            }
        }
        public static void FillFakeDgvBilling()
        {
            switch (InfoPasserStatic.rbtBillingCurrentState)
            {
            case "All":
                using (var context = new Entities())
                {
                    var alldata = from b in context.Billings
                                  select new
                    {
                        Invoice_No = b.BillingID,
                        b.BookingRoomJoin.Room.RoomID,
                        Bar_Charge   = b.BarCharge,
                        Phone_Charge = b.PhoneCharge,
                        Room_Charge  = b.RoomCharge,
                        WiFi_Charge  = b.WiFiCharge,
                        Paid         = b.BillingPaid
                    };
                    FakeDgvBilling.DataSource = alldata.ToList();
                }
                break;

            //Shows bills that have not been paid.
            case "Open":
                using (var context = new Entities())
                {
                    var alldata = from b in context.Billings.Where(b => !b.BillingPaid)
                                  select new
                    {
                        Invoice_No = b.BillingID,
                        b.BookingRoomJoin.Room.RoomID,
                        Bar_Charge   = b.BarCharge,
                        Phone_Charge = b.PhoneCharge,
                        Room_Charge  = b.RoomCharge,
                        WiFi_Charge  = b.WiFiCharge,
                        Paid         = b.BillingPaid
                    };
                    FakeDgvBilling.DataSource = alldata.ToList();
                }
                break;

            //Identical to above, legacy from earlier ideas now scrapped. Kept for radio button symetry on form.
            case "Pay":
                using (var context = new Entities())
                {
                    var alldata = from b in context.Billings.Where(b => !b.BillingPaid)
                                  select new
                    {
                        Invoice_No = b.BillingID,
                        b.BookingRoomJoin.Room.RoomID,
                        Bar_Charge   = b.BarCharge,
                        Phone_Charge = b.PhoneCharge,
                        Room_Charge  = b.RoomCharge,
                        WiFi_Charge  = b.WiFiCharge,
                        Paid         = b.BillingPaid
                    };
                    FakeDgvBilling.DataSource = alldata.ToList();
                }
                break;
            }
        }
        //Fills FakeDGVRooms with data between dates supplied
        public static void FillFakeDgvRooms(DateTime start, DateTime end)
        {
            switch (InfoPasserStatic.rbtRoomCurrentState)
            {
            case "All":
                using (var context = new Entities())
                {
                    var alldata = from r in context.Rooms
                                  select new
                    {
                        Room_Number       = r.RoomID,
                        Single_Beds       = r.RoomNumSingleBeds,
                        Double_Beds       = r.RoomNumDoubleBeds,
                        Room_Tarrif       = r.RoomBaseTariff,
                        Extra_Person_Rate = r.RoomExtraPersonRate,
                        Extra_Features    = r.RoomExtraFeatures
                    };

                    FakeDgvRooms.DataSource = alldata.ToList();
                }
                break;

            case "Free":
                using (var context = new Entities())
                {
                    var roomsOccupied = FindOccupiedRooms(start, end);
                    var alldata       = from r in context.Rooms
                                        where (!roomsOccupied.Contains(r.RoomID))
                                        select new
                    {
                        Room_Number       = r.RoomID,
                        Single_Beds       = r.RoomNumSingleBeds,
                        Double_Beds       = r.RoomNumDoubleBeds,
                        Room_Tarrif       = r.RoomBaseTariff,
                        Extra_Person_Rate = r.RoomExtraPersonRate,
                        Extra_Features    = r.RoomExtraFeatures
                    };

                    FakeDgvRooms.DataSource = alldata.ToList();
                }
                break;

            case "Occupied":
                using (var context = new Entities())
                {
                    var roomsOccupied = FindOccupiedRooms(start, end);
                    var alldata       = from r in context.Rooms
                                        where (roomsOccupied.Contains(r.RoomID))
                                        select new
                    {
                        Room_Number       = r.RoomID,
                        Single_Beds       = r.RoomNumSingleBeds,
                        Double_Beds       = r.RoomNumDoubleBeds,
                        Room_Tarrif       = r.RoomBaseTariff,
                        Extra_Person_Rate = r.RoomExtraPersonRate,
                        Extra_Features    = r.RoomExtraFeatures
                    };

                    FakeDgvRooms.DataSource = alldata.ToList();
                }
                break;
            }
        }
        //Updates FakeDGVRooms based on radiobutton selection
        public static void FillFakeDgvRooms()
        {
            //Switched based on which radiobutton is selected
            switch (InfoPasserStatic.rbtRoomCurrentState)
            {
            case "All":
                using (var context = new Entities())
                {
                    var alldata = from r in context.Rooms
                                  select new
                    {
                        Room_Number       = r.RoomID,
                        Single_Beds       = r.RoomNumSingleBeds,
                        Double_Beds       = r.RoomNumDoubleBeds,
                        Room_Tarrif       = r.RoomBaseTariff,
                        Extra_Person_Rate = r.RoomExtraPersonRate,
                        Extra_Features    = r.RoomExtraFeatures
                    };

                    FakeDgvRooms.DataSource = alldata.ToList();
                }
                break;

            case "Free":
                using (var context = new Entities())
                {
                    //find occupied rooms
                    var roomsOccupied = FindOccupiedRooms();

                    var alldata = from r in context.Rooms
                                  where (!roomsOccupied.Contains(r.RoomID))//Ignore data entries that match the occupied room list
                                  select new
                    {
                        Room_Number       = r.RoomID,
                        Single_Beds       = r.RoomNumSingleBeds,
                        Double_Beds       = r.RoomNumDoubleBeds,
                        Room_Tarrif       = r.RoomBaseTariff,
                        Extra_Person_Rate = r.RoomExtraPersonRate,
                        Extra_Features    = r.RoomExtraFeatures
                    };

                    FakeDgvRooms.DataSource = alldata.ToList();
                }
                break;

            case "Occupied":
                using (var context = new Entities())
                {
                    var roomsOccupied = FindOccupiedRooms();
                    var alldata       = from r in context.Rooms
                                        where (roomsOccupied.Contains(r.RoomID))//Select only entries that match occupied room list
                                        select new
                    {
                        Room_Number       = r.RoomID,
                        Single_Beds       = r.RoomNumSingleBeds,
                        Double_Beds       = r.RoomNumDoubleBeds,
                        Room_Tarrif       = r.RoomBaseTariff,
                        Extra_Person_Rate = r.RoomExtraPersonRate,
                        Extra_Features    = r.RoomExtraFeatures
                    };

                    FakeDgvRooms.DataSource = alldata.ToList();
                }
                break;
            }
        }