Создайте новое имя класса как Quiz.class
@Entity
public class Quiz{
@Id
private int id;
private String quizName;
private String quizDescription;
private int passingScore;
private int totalScore;
// Getter and setters
}
Question.class будет выглядеть следующим образом
@Entity(name = "question")
public class Question extends DateAudit {
@Id
@Column(name = "question_id")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "question_seq")
@SequenceGenerator(name = "question_seq", allocationSize = 1)
private Long id;
@Column(name = "name")
@NotBlank(message = "Question name can not be blank")
private String name;
@Column(name = "is_exam_question", nullable = false)
private Boolean is_exam_question;
@OneToMany(fetch = FetchType.EAGER, cascade = { CascadeType.PERSIST, CascadeType.MERGE },mappedBy="question")
private Set<Answer> answers = new HashSet<>();
@ManyToOne
private Quiz quiz;
}
Tests.class будет выглядеть так
@Entity
public class Tests{
private int id;
@ManyToOne
private Quiz quiz;
@ManyToOne
private User user;
private int score;
private String status; // failed or passed
}
Я думаю, это поможет тебе. Не стесняйтесь задавать мне больше вопросов.
Что ж, чтобы добавить MenuItem, вам понадобится что-то вроде этих строк:
var menuItem = new MenuItem() { Header = "Menu Name", Name = "Identifier", IsCheckable = true, IsChecked = visible };
menuItem.Click += new RoutedEventHandler(contextMenu_onClick);
int position = contextMenu.Items.Add(menuItem);
(но у вас, вероятно, уже есть это).
Вам понадобится способ привязки пункт меню свойства - но, не видя вашего приложения, я не могу предложить лучший способ. Есть свойство Tag, в котором хранится объект; свойство Uid, в котором хранится строка; свойство Name, которое также хранит строку.
While:
menuItem.Visibility = Visibility.Visible;
и
menuItem.Visibility = Visibility.Collapsed;
должны переключать видимость элемента.
EDIT: Использование Collapsed скроет элемент меню и не зарезервирует место в меню - вам действительно не нужны пустые места в контекстном меню. (спасибо Botz3000 за это)
Затем в вашем коде, где значение свойства изменено, вы найдете пункт меню, который вы хотите показать / скрыть, используя связь, которую я описал выше.