private void LoadRoomCalendar(Room room)
        {
            if (room != null)
            {
                string roomKey = String.Format("{0}|{1}", room.Area.area_name, room.room_name);

                if (!roomCalendars.ContainsKey(roomKey))
                {
                    CalendarRoom r       = new CalendarRoom();
                    List <Entry> entries = Database.GetFutureAppointments(room);

                    r.StartTime = CalendarStart;
                    r.EndTime   = CalendarEnd;
                    r.Name      = room.room_name;

                    foreach (Entry e in entries)
                    {
                        CalendarAppointment appt = new CalendarAppointment();

                        appt.BeverageService = e.coffee != "";
                        appt.Description     = e.name;
                        appt.Finish          = Database.UnixTimeStampToDateTime(e.end_time);
                        appt.FoodService     = e.food_needed.HasValue ? e.food_needed.Value : false;
                        appt.Location        = e.Room.room_name;
                        appt.Requestor       = e.requestor;
                        appt.Start           = Database.UnixTimeStampToDateTime(e.start_time);
                        r.Appointments.Add(appt);
                    }

                    roomCalendars.Add(roomKey, r);
                }
            }
        }
        private void ShowRoomCalendar()
        {
            if (SelectedRoom != null)
            {
                if (SelectedRoom.id == -1)
                {
                    //Selected All
                    CalendarRooms.Clear();
                    for (int i = 1; i < rooms.Count; i++)
                    {
                        Room         r       = rooms[i];
                        String       roomKey = String.Format("{0}|{1}", r.Area.area_name, r.room_name);
                        CalendarRoom cal     = null;

                        if (!roomCalendars.ContainsKey(roomKey))
                        {
                            LoadRoomCalendar(r);
                        }

                        if (roomCalendars.ContainsKey(roomKey))
                        {
                            cal = roomCalendars[roomKey];
                        }

                        if (cal != null)
                        {
                            cal.StartTime = CalendarStart;
                            cal.EndTime   = CalendarEnd;
                            CalendarRooms.Add(cal);
                        }
                    }
                }
                else
                {
                    String       roomKey = String.Format("{0}|{1}", SelectedRoom.Area.area_name, SelectedRoom.room_name);
                    CalendarRoom cal     = null;

                    CalendarRooms.Clear();
                    if (!roomCalendars.ContainsKey(roomKey))
                    {
                        LoadRoomCalendar(SelectedRoom);
                    }

                    if (roomCalendars.ContainsKey(roomKey))
                    {
                        cal = roomCalendars[roomKey];
                    }

                    if (cal != null)
                    {
                        cal.StartTime = CalendarStart;
                        cal.EndTime   = CalendarEnd;
                        CalendarRooms.Add(cal);
                    }
                }
            }
        }