Example #1
0
        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}号选手已抢答";
                }
            }
        }
Example #2
0
        /// <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;
        }