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); }