public ActionResult DeleteEvent(int id, [FromBody] DeleteBody body, [FromQuery] bool finished = false) { var @event = _eventRepository.GetEvent(id); if (!ValidateType(@event)) { return(Ok(new InvalidOperationException())); } var validatedEvent = (Event)@event; foreach (var comment in validatedEvent.Comments) { _commentRepository.ArchiveComment(comment, id); } foreach (var feedback in validatedEvent.Feedback) { _feedbackRepository.ArchiveFeedback(feedback, id); } // foreach (var actionlog in validatedEvent.ActionLogs) _actionLogRepository.ArchiveActionLog(actionlog, id); foreach (var info in validatedEvent.AdditionalInfo) { _additionalInfoRepository.ArchiveAdditionalInfo(info, id); } var result = _eventRepository.DeleteEvent(validatedEvent, body.Conclusion, finished); return(Ok(new { result })); }