コード例 #1
0
    public void Cancel()
    {
        IsCancelledOrArchived();
        IsNotScheduled();

        foreach (var bookedSlot in _slots.GetBookedSlots())
        {
            Raise(new SlotBookingCancelled(Id, bookedSlot.Id, null));
        }

        var events = _slots
                     .All()
                     .Select(slot => new SlotScheduleCancelled(Id, slot.Id))
                     .ToList();

        events.ForEach(Raise);

        Raise(new DayScheduleCancelled(Id));
    }