private void SetNomineeIdentifiers(AwardType awardType) { var nominationsByNominee = Nominations .Where(n => n.AwardType == awardType) .Select((n, i) => new { Index = i, Nomination = n }) .GroupBy(x => x.Nomination.Nominee); foreach (var group in nominationsByNominee) { var nomineeIndexes = group.Select(x => x.Index).ToList(); var votingIdentifier = NomineeVotingIdentifier.Create(nomineeIndexes); foreach (var item in group) { var nomination = item.Nomination; if (nomination.VotingIdentifier == votingIdentifier) { continue; } nomination.SetVotingIdentifier(votingIdentifier); } } }
internal Nomination(int id, NomineeVotingIdentifier votingIdentifier, Person nominee, AwardType nomineeAwardType, PersonName nominatorName, IEnumerable <CompanyValue> companyValues, NominationWriteUp writeUp, NominationWriteUpSummary writeUpSummary) : base(id) { VotingIdentifier = votingIdentifier; Nominee = nominee ?? throw new ArgumentNullException(nameof(nominee)); AwardType = nomineeAwardType ?? throw new ArgumentNullException(nameof(nomineeAwardType)); NominatorName = nominatorName ?? throw new ArgumentNullException(nameof(nominatorName)); CompanyValues = companyValues?.ToList() ?? new List <CompanyValue>(); WriteUp = writeUp; WriteUpSummary = writeUpSummary; }
internal void SetVotingIdentifier(NomineeVotingIdentifier votingIdentifier) { VotingIdentifier = votingIdentifier ?? throw new ArgumentNullException(nameof(votingIdentifier)); }