/// <summary> /// Delete a category /// </summary> /// <param name="category"></param> public void Delete(Category category) { // Check if anyone else if using this role var okToDelete = !category.Topics.Any(); if (okToDelete) { // Get any categorypermissionforoles and delete these first var rolesToDelete = _categoryPermissionForRoleRepository.GetByCategory(category.Id); foreach (var categoryPermissionForRole in rolesToDelete) { _categoryPermissionForRoleRepository.Delete(categoryPermissionForRole); } var categoryNotificationsToDelete = new List <CategoryNotification>(); categoryNotificationsToDelete.AddRange(category.CategoryNotifications); foreach (var categoryNotification in categoryNotificationsToDelete) { _categoryNotificationService.Delete(categoryNotification); } _categoryRepository.Delete(category); } else { var inUseBy = new List <Entity>(); inUseBy.AddRange(category.Topics); throw new InUseUnableToDeleteException(inUseBy); } }
/// <summary> /// Get all category permissions by category /// </summary> /// <param name="categoryId"></param> /// <returns></returns> public IEnumerable <CategoryPermissionForRole> GetByCategory(Guid categoryId) { return(_categoryPermissionForRoleService.GetByCategory(categoryId)); }