public async Task HandleChildScheduleUpdatedEvent(ScheduleItemDeletedEvent e)
        {
            var child = await _repository.FindByUUID <ScheduleItem>(e.ItemUuid)
                        .Include(x => x.Schedule)
                        .Include(x => x.Html)
                        .FirstOrDefaultAsync();

            if (child == null)
            {
                return;
            }

            var recipient = await _uCenter.GetUser(x => x.UserId, child.Schedule.UserId);

            if (recipient == null)
            {
                return;
            }

            var msg = new Notification
            {
                RecipientId = recipient.SpaceUserId,
                Title       = $"您借鉴的学习计划「{child.Schedule.Title}」中有学习任务被删除了",
                Content     = $@"<p>亲爱的 {recipient.DisplayName} 同学:</p>
                        <p>您借鉴的学习计划「{child.Schedule.Title}」中有学习任务被删除了</p>
                        <h5>
                            <del>
                                <b>{child.GenerateDescription()}</b>
                            </del>
                        </h5>
                        <h5>
                            <span>学习计划: </span>
                            <a href='{AppConst.DomainAddress}/schedules/u/{recipient.Alias}/{child.ScheduleId}'>
                                <b>{child.Schedule.Title}</b>
                            </a>
                        </h5>"
            };
            await _msgSvc.NotifyAsync(msg);
        }
        public async Task HandleScheduleItemDeletedEvent(ScheduleItemDeletedEvent e)
        {
            var itemId = await _repository.FindByUUID <ScheduleItem>(e.ItemUuid)
                         .IgnoreQueryFilters()
                         .Select(x => x.Id)
                         .FirstOrDefaultAsync();

            if (itemId < 1)
            {
                return;
            }

            int page = 0, count = 10;

            do
            {
                var followingItems = await _repository.ScheduleItems
                                     .Include(x => x.Schedule)
                                     .Include(x => x.Html)
                                     .Where(x => x.ParentId == itemId)
                                     .OrderBy(x => x.Id)
                                     .Skip(page * count)
                                     .Take(count)
                                     .ToListAsync();

                count = followingItems.Count;
                page++;

                foreach (var child in followingItems)
                {
                    child.Schedule.DeleteItem(child.Id);
                }

                await _repository.UnitOfWork.SaveEntitiesAsync();
            } while (count >= 10);
        }