public async Task <GenericResult> Delete(int id) { GenericResult result = new GenericResult(); try { using (TransactionScope scope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled)) { if (!await StudentRepository.DeleteStudyAbroadDestinations(id)) { result.Message = "Error deleting study abroad destinations"; } else if (!await StudentNoteRepository.Delete(id)) { result.Message = "Error deleting student notes"; } else if (!await EventLogRepository.DeleteStudent(id)) { result.Message = "Error deleting student event logs"; } else if (!await StudentPromoRepository.Delete(id)) { result.Message = "Error deleting details from promo"; } else if (!await StudyAbroadRepository.DeleteStudent(id)) { result.Message = "Error deleting experiences"; } else if (!await StudentRepository.DeleteMatriculations(id)) { result.Message = "Error deleting matriculations"; } else if (!await StudentRepository.DeleteLanguages(id)) { result.Message = "Error deleting fluent/desired/studied languages"; } else if (!await StudentRepository.Delete(id)) { result.Message = "Error deleting student record"; } else { result.Result = true; scope.Complete(); } } } catch (Exception e) { result.Result = false; result.Message = "Error completing transaction scope: " + e.Message; } return(result); }