/// <summary> /// Person registriert sich für Veranstaltung. /// Eine Person kann sich zu einer Veranstaltung nur einmal registrieren. /// </summary> /// <param name="person"></param> /// <param name="ev">Veranstaltung</param> /// <returns>War die Registrierung erfolgreich?</returns> public bool RegisterPersonForEvent(Person person, Event ev) { bool register = false; if (ev == null) { throw new ArgumentNullException("event"); } if (person == null) { throw new ArgumentNullException("person"); } if (ev.GetType().Equals(typeof(EventWithLimit))) { EventWithLimit tmp = ev as EventWithLimit; if (tmp.Participators.Count < tmp.MaxParticipators) { if (GetEvent(ev.Title).Equals(ev)) { if (ev.AddParticipatorToEvent(person) == true) { person.AddEventToPerson(ev); register = true; } else { throw new InvalidOperationException("The person is already registered"); } } } else { throw new InvalidOperationException("The maximum number of registrations has been reached!"); } } else { if (GetEvent(ev.Title).Equals(ev)) { if (ev.AddParticipatorToEvent(person) == true) { person.AddEventToPerson(ev); register = true; } else { throw new InvalidOperationException("The person is already registered"); } } } return(register); }
/// <summary> /// Ein Event mit dem angegebenen Titel und dem Termin wird für den Einlader angelegt. /// Der Titel muss innerhalb der Veranstaltungen eindeutig sein und das Datum darf nicht /// in der Vergangenheit liegen. /// Mit dem optionalen Parameter maxParticipators kann eine Obergrenze für die Teilnehmer festgelegt /// werden. /// </summary> /// <param name="invitor"></param> /// <param name="title"></param> /// <param name="dateTime"></param> /// <param name="maxParticipators"></param> /// <returns>Wurde die Veranstaltung angelegt</returns> public bool CreateEvent(Person invitor, string title, DateTime dateTime, int maxParticipators = 0) { bool eventCreated = false; if (invitor == null) { throw new ArgumentNullException(nameof(invitor)); } if (title == null || title.Length < 1) //string.isNullOrEmpty(string) für(null, "") string.IsNullOrWhitespace(string) für(null, "", " ") { throw new ArgumentNullException(nameof(title)); } if (dateTime < DateTime.Now) { throw new ArgumentException("The 'dateTime' parameter has to be in the future!"); } if (!UniqueTitle(title)) { throw new ArgumentException("The 'title' parameter has to be unique!"); } Event myEvent; if (UniqueTitle(title)) { if (maxParticipators == 0) { myEvent = new Event(invitor, title, dateTime); } else { myEvent = new EventWithLimit(invitor, title, dateTime, maxParticipators); } eventCreated = true; _events.Add(myEvent); } return(eventCreated); }