public void OnParticipantKeyDown(object sender, ParticipantKey key) { if (_answers.ContainsKey(key.ParticipantNo) && _answers[key.ParticipantNo].QuestionChoice == null) { if (_question.Choices.Count >= key.AnswerNo) { var answer = _answers[key.ParticipantNo]; var choice = _question.Choices[key.AnswerNo - 1]; answer.QuestionChoice = choice; answer.CompetitionParticipant.Unanswered -= 1; if (choice.IsAnswer) { answer.Score = choice.Question.Score; answer.CompetitionParticipant.Score += answer.Score; answer.CompetitionParticipant.AnsweredCorrect += 1; } else { answer.CompetitionParticipant.AnsweredIncorrect += 1; } answer.TimeTaken = (DateTime.Now - _startTime).TotalSeconds; Answered?.Invoke(answer); ParticipantAnswer.Text += _answers.Values.Count(t => t.QuestionChoice != null) > 1 ? $" {key.ParticipantNo}号选手已回答" : $"{key.ParticipantNo}号选手已抢答"; } } }
/// <summary> /// Serves as the default hash function. /// </summary> /// <returns>A hash code for the current object.</returns> public override int GetHashCode() { var hashCode = 1476352029; hashCode = (hashCode * -1521134295) + Key.GetHashCode(); hashCode = (hashCode * -1521134295) + ParticipantKey.GetHashCode(); hashCode = (hashCode * -1521134295) + EqualityComparer <string> .Default.GetHashCode(TopicName); hashCode = (hashCode * -1521134295) + EqualityComparer <string> .Default.GetHashCode(TypeName); hashCode = (hashCode * -1521134295) + EqualityComparer <DurabilityQosPolicy> .Default.GetHashCode(Durability); hashCode = (hashCode * -1521134295) + EqualityComparer <DurabilityServiceQosPolicy> .Default.GetHashCode(DurabilityService); hashCode = (hashCode * -1521134295) + EqualityComparer <DeadlineQosPolicy> .Default.GetHashCode(Deadline); hashCode = (hashCode * -1521134295) + EqualityComparer <LatencyBudgetQosPolicy> .Default.GetHashCode(LatencyBudget); hashCode = (hashCode * -1521134295) + EqualityComparer <LivelinessQosPolicy> .Default.GetHashCode(Liveliness); hashCode = (hashCode * -1521134295) + EqualityComparer <ReliabilityQosPolicy> .Default.GetHashCode(Reliability); hashCode = (hashCode * -1521134295) + EqualityComparer <LifespanQosPolicy> .Default.GetHashCode(Lifespan); hashCode = (hashCode * -1521134295) + EqualityComparer <UserDataQosPolicy> .Default.GetHashCode(UserData); hashCode = (hashCode * -1521134295) + EqualityComparer <OwnershipQosPolicy> .Default.GetHashCode(Ownership); hashCode = (hashCode * -1521134295) + EqualityComparer <OwnershipStrengthQosPolicy> .Default.GetHashCode(OwnershipStrength); hashCode = (hashCode * -1521134295) + EqualityComparer <DestinationOrderQosPolicy> .Default.GetHashCode(DestinationOrder); hashCode = (hashCode * -1521134295) + EqualityComparer <PresentationQosPolicy> .Default.GetHashCode(Presentation); hashCode = (hashCode * -1521134295) + EqualityComparer <PartitionQosPolicy> .Default.GetHashCode(Partition); hashCode = (hashCode * -1521134295) + EqualityComparer <TopicDataQosPolicy> .Default.GetHashCode(TopicData); hashCode = (hashCode * -1521134295) + EqualityComparer <GroupDataQosPolicy> .Default.GetHashCode(GroupData); return(hashCode); }
public void OnParticipantKeyDown(object sender, ParticipantKey key) { ParticipantJoin?.Invoke(key.ParticipantNo); _participantTextBlocks[key.ParticipantNo - 1].Visibility = Visibility.Visible; }