public async Task DeleteAllClassesByTimetableIdAsync(Timetable timetable, CancellationToken cancellationToken = default) { var classesList = await _dbContext .Classes .Where(m => m.TimetableId == timetable.TimetableId) .ToListAsync(cancellationToken); foreach (var calendarClass in classesList) { await DeleteReservationsAsync(calendarClass, cancellationToken); _dbContext.Remove(calendarClass); } _ = await _dbContext.SaveChangesAsync(cancellationToken); }
public async Task <CalendarClassDto> Handle(DeleteClassByIdCommand request, CancellationToken cancellationToken) { var classEntity = await _dbContext .Classes .SingleOrDefaultAsync(m => m.ClassId == request.ClassId, cancellationToken); _dbContext.Remove(classEntity); _ = await _dbContext.SaveChangesAsync(cancellationToken); var deletedReservationsForClass = await _dbContext.Reservations .Where(x => x.ClassId == request.ClassId) .ToListAsync(cancellationToken); foreach (var reservation in deletedReservationsForClass) { _ = _dbContext.Remove(reservation); } _ = _dbContext.SaveChangesAsync(cancellationToken); var classDto = classEntity.Adapt <CalendarClassDto>(); return(classDto); }
public async Task <ReservationDtoSetter> Handle(SignOutOfClassCommand request, CancellationToken cancellationToken) { var reservationEntity = await _dbContext .Reservations .SingleOrDefaultAsync(m => m.ReservationId == request.ReservationId, cancellationToken); _ = _dbContext.Remove(reservationEntity); _ = await _dbContext.SaveChangesAsync(cancellationToken); _signOutOfClassSender.DeleteReservation(reservationEntity.ReservationId); var reservationDto = reservationEntity.Adapt <ReservationDtoSetter>(); return(reservationDto); }
public async Task <TimetableDto> Handle(DeleteTimetableByIdCommand request, CancellationToken cancellationToken) { var timetableEntity = await _dbContext .Timetables .SingleOrDefaultAsync(m => m.TimetableId == request.TimetableId, cancellationToken); var classGenerator = new ClassGenerator(_dbContext); await classGenerator.DeleteAllClassesByTimetableIdAsync(timetableEntity, cancellationToken); _dbContext.Remove(timetableEntity); _ = await _dbContext.SaveChangesAsync(cancellationToken); var timetableDto = timetableEntity.Adapt <TimetableDto>(); return(timetableDto); }
public async Task RemoveEntrieAsync(CalendarEntrie entrie) { _dbContext.Remove(entrie); await _dbContext.SaveChangesAsync(); }