/// <summary> /// Creates a new instance of a <typeparamref name="Event"/> object, and initializes it with the specified properties. /// </summary> /// <param name="calendar"></param> /// <param name="name"></param> /// <param name="start"></param> /// <param name="end"></param> /// <param name="state"></param> /// <param name="criteriaRule"></param> public Event(Calendar calendar, string name, DateTime start, DateTime end, EventState state = EventState.Published, CriteriaRule criteriaRule = CriteriaRule.Participate) { if (String.IsNullOrWhiteSpace(name)) { throw new ArgumentNullException(nameof(name)); } this.CalendarId = calendar?.Id ?? throw new ArgumentNullException(nameof(calendar)); this.Calendar = calendar; this.Name = name; this.Key = Guid.NewGuid(); this.StartOn = start; this.EndOn = end; this.State = state; this.CriteriaRule = CriteriaRule; }
/// <summary> /// Creates a new instance of a Opening object, and initializes it with the specified property values. /// </summary> /// <param name="activity"></param> /// <param name="name"></param> /// <param name="minParticipants"></param> /// <param name="maxParticipants"></param> /// <param name="type"></param> /// <param name="process"></param> public Opening(Activity activity, string name, int minParticipants, int maxParticipants, OpeningType type, ApplicationProcess process, CriteriaRule criteriaRule = CriteriaRule.Participate, OpeningState state = OpeningState.Published) { if (String.IsNullOrWhiteSpace(name)) { throw new ArgumentException($"Argument 'name' cannot be null, empty or whitespace."); } if (minParticipants <= 0) { throw new ArgumentException($"Argument 'minParticipants' must be greater than 0."); } if (maxParticipants < minParticipants) { throw new ArgumentException($"Argument 'maxParticipants' must be greater than or equal to 'minParticipants'."); } this.ActivityId = activity?.Id ?? throw new ArgumentNullException(nameof(activity)); this.Activity = activity; this.Name = name; this.MinParticipants = minParticipants; this.MaxParticipants = maxParticipants; this.OpeningType = type; this.ApplicationProcess = process; this.Key = Guid.NewGuid(); this.State = state; this.CriteriaRule = criteriaRule; }