private void CreateNewDoorGroupButton_Click(object sender, EventArgs e)
 {
     EditDoorGroupBox.Visible = true;
     DoorGroup newGroup = new DoorGroup("New Group", "");
     dac.DoorGroups.Add(newGroup);
     UpdateSources();
     DoorMembersListBox.DataSource = dac.FindDoorsByGroup(newGroup);
     ExistDoorGroupsList.SelectedIndex = dac.DoorGroups.IndexOf(newGroup);
 }
 public bool AccessPermissionsValidationRequest(DateTime date, int accessHour, List<PersonGroup> personGroups, DoorGroup doorGroup)
 {
     foreach (PersonGroup pg in personGroups) {
         if (GetCalendar(pg, doorGroup).ValidateAccess(date, accessHour)) {
             return true;
         }
     }
     return false;
 }
 public Calendar RetrieveCalendar(PersonGroup personGroup, DoorGroup doorGroup)
 {
     try {
         return calendars[new Tuple<PersonGroup, DoorGroup>(personGroup, doorGroup)];
     } catch (KeyNotFoundException e) {
         Calendar c = new Calendar(DateTime.Now.Year);
         calendars[new Tuple<PersonGroup, DoorGroup>(personGroup, doorGroup)] = c;
         return c;
     }
 }
 public void SaveCalendar(PersonGroup personGroup, DoorGroup doorGroup, Calendar cal)
 {
     calendars[new Tuple<PersonGroup, DoorGroup>(personGroup, doorGroup)] = cal;
 }
 public List<Door> FindDoorsByGroup(DoorGroup dg)
 {
     List<Door> list = new List<Door>();
     foreach (Door d in doors) {
         if (d.DoorGroup != null && d.DoorGroup.Equals(dg)) {
             list.Add(d);
         }
     }
     return list;
 }
 public void CreateDoor(DoorGroup dg)
 {
     doors.Add(new Door(dg));
 }
 internal void SaveCalendar(PersonGroup personGroup, DoorGroup doorGroup, Calendar cal)
 {
     DBCalendarInterface.Instance.SaveCalendar(personGroup, doorGroup, cal);
 }
 public Calendar GetCalendar(PersonGroup personGroup, DoorGroup doorGroup)
 {
     return DBCalendarInterface.Instance.RetrieveCalendar(personGroup, doorGroup);
 }