Beispiel #1
0
        public static ScheduleSchema Create(EntityId id, CinemaId cinemaId, ScheduleSchemaTimes times)
        {
            var schema = new ScheduleSchema(id, cinemaId);

            schema.ChangeTimes(times);
            schema.ClearEvents();
            schema.AddDomainEvent(new ScheduleSchemaAdded(schema));
            schema.Version = 1;
            return(schema);
        }
Beispiel #2
0
        public void ChangeTimes(ScheduleSchemaTimes times)
        {
            var duplicatedTimes = times
                                  .GroupBy(h => h.ageRestriction)
                                  .Where(g => g.Count() > 1)
                                  .Select(g => g.Key)
                                  .ToList();

            if (duplicatedTimes.Any())
            {
                throw new DuplicatedScheduleTimeException(duplicatedTimes);
            }

            Times = times;
            AddDomainEvent(new ScheduleSchemaTimesChanged(this, times));
        }
 public ScheduleSchemaTimesChanged(ScheduleSchema schema, ScheduleSchemaTimes times)
 {
     Schema = schema;
     Times  = times;
 }
Beispiel #4
0
 public ScheduleSchema(EntityId id, CinemaId cinemaId, ScheduleSchemaTimes times, int?version = null)
     : this(id, cinemaId)
 {
     Times   = times;
     Version = version ?? 1;
 }