public IActionResult Delete(int id) { User _userDb = _userRepository.GetSingle(id); if (_userDb == null) { return(new NotFoundResult()); } else { IEnumerable <Attendee> _attendees = _attendeeRepository.FindBy(a => a.UserId == id); IEnumerable <Schedule> _schedules = _scheduleRepository.FindBy(s => s.CreatorId == id); foreach (var attendee in _attendees) { _attendeeRepository.Delete(attendee); } foreach (var schedule in _schedules) { _attendeeRepository.DeleteWhere(a => a.ScheduleId == schedule.Id); _scheduleRepository.Delete(schedule); } _userRepository.Delete(_userDb); _userRepository.Commit(); return(new NoContentResult()); } }
public Task <Unit> Handle(ScheduleDeleteAttendeeCommand request, CancellationToken cancellationToken) { if (_attendeeRepository.FindBy(a => a.UserId == request.UserId && a.ScheduleId == request.ScheduleId) == null) { throw new KeyNotFoundException($"User {request.UserId} is not associated with schedule {request.ScheduleId}"); } _attendeeRepository.DeleteWhere(a => a.UserId == request.UserId && a.ScheduleId == request.ScheduleId); _attendeeRepository.Commit(); return(Unit.Task); }