예제 #1
0
        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());
            }
        }
예제 #2
0
        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);
        }