public List <Company> GetOrderedListOfCompaniesUsingTheHallTheMost()
        {
            SingleBookingsHandler  singleBookingsHandler  = new SingleBookingsHandler();
            OngoingBookingsHandler ongoingBookingsHandler = new OngoingBookingsHandler();
            CompanyHandler         companyHandler         = new CompanyHandler();
            var datTimeTho = Model.OngoingBookings.Where(oB => oB.IsConfirmed == true).GroupJoin(Model.SingleBookings.Where(sB => sB.IsConfirmed == true),
                                                                                                 b => b.CompanyId,
                                                                                                 sB => sB.CompanyId,
                                                                                                 (b, sB) => new
            {
                SingleBookings      = sB,
                OngoingBookingsTime = ongoingBookingsHandler.GetAmountOfTimeForOngoingBooking(b.Id)
            });
            var            result    = datTimeTho.OrderByDescending(b => b.SingleBookings.Select(sB => singleBookingsHandler.GetTimeForSingleBooking(sB.Id) + b.OngoingBookingsTime));
            var            resultIds = result.Select(r => r.SingleBookings.Select(s => s.CompanyId)).ToList();
            List <Company> companyListMostToLeastUsage = new List <Company>();

            foreach (var id in resultIds)
            {
                companyListMostToLeastUsage.Add(Model.Companies.Find(id));
            }
            return(companyListMostToLeastUsage);
        }
        /// <summary>
        /// This is the method that extracts the hall time in use on a given day.
        /// </summary>
        /// <param name="date">This is the date that the percentage is calculated from.</param>
        /// <returns></returns>
        public double GetHallTimeUseForDay(DateTime date)
        {
            /// THIS ONLY WORKS AS LONG AS THERE IS NO MULTIPLE BOOKINGS AT THE SAME TIME
            SingleBookingsHandler  singleBookingsHandler  = new SingleBookingsHandler();
            OngoingBookingsHandler ongoingBookingsHandler = new OngoingBookingsHandler();
            var hallTimeUseForTimeSpanSingles             = Model.SingleBookings.Where(s => s.IsConfirmed == true && s.StartTime.Date == date.Date).Select(sTime => singleBookingsHandler.GetTimeForSingleBooking(sTime.Id)).Sum();
            var hallTimeUseFoTimeSpanOngoings             = Model.OngoingBookings.Where(o => o.IsConfirmed == true && o.StartDay.DayOfWeek == date.DayOfWeek && o.StartDay.Day <= date.Day && o.EndDay.Day >= date.Day).Select(oTime => (oTime.EndTime - oTime.StartTime).TotalHours).Sum();

            return((hallTimeUseForTimeSpanSingles + hallTimeUseFoTimeSpanOngoings) / GetAmountOfHoursOpenOnDay(date) * 100);
        }