예제 #1
0
        private static Nomination LoadSuperStarAwardsNominationFromSurveyExport(Row row, int rowNumber)
        {
            var isAnonymousNominator            = row[10] != @"Display My Name (Recommended)";
            var nominatorName                   = PersonName.CreateForNominator(row[9], isAnonymousNominator);
            var nomineeName                     = PersonName.Create(row[12]);
            var awardType                       = AwardType.SuperStar;
            var nomineeOfficeLocation           = OfficeLocation.FindByName(row[14]);
            var hasContinuouslyImproving        = !string.IsNullOrWhiteSpace(row[15]);
            var hasDrivingInnovation            = !string.IsNullOrWhiteSpace(row[16]);
            var hasDelightingCustomers          = !string.IsNullOrWhiteSpace(row[17]);
            var hasBehavingWithIntegrity        = !string.IsNullOrWhiteSpace(row[18]);
            var hasDeliveringMeaningfulOutcomes = !string.IsNullOrWhiteSpace(row[19]);
            var hasStreamingGood                = !string.IsNullOrWhiteSpace(row[20]);
            var writeUp        = NominationWriteUp.Create(nomineeName, row[21]);
            var writeUpSummary = NominationWriteUpSummary.NotApplicable;

            var companyValues = GetCompanyValues(hasContinuouslyImproving, hasDrivingInnovation, hasDelightingCustomers,
                                                 hasBehavingWithIntegrity, hasDeliveringMeaningfulOutcomes, hasStreamingGood);

            var nominee = Person.Create(nomineeName, nomineeOfficeLocation, nomineeName.DerivedEmailAddress);

            var nomination = new Nomination(rowNumber, NomineeVotingIdentifier.Unknown, nominee, awardType,
                                            nominatorName, companyValues, writeUp, writeUpSummary);

            return(nomination);
        }
예제 #2
0
        public WriteUpActionParameter(PersonName nomineeName, NominationWriteUp writeUp)
        {
            _nomineeName = nomineeName ?? throw new ArgumentNullException(nameof(nomineeName));
            _writeUp     = writeUp ?? throw new ArgumentNullException(nameof(writeUp));

            RegisterAbortInput(@"stop");
            RegisterValidInput(@"edit", Action.Edit);
            RegisterValidInput(@"c", Action.Continue);
        }
예제 #3
0
 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;
 }
예제 #4
0
        internal Nomination ToNomination()
        {
            var nominee = Person.Create(PersonName.Create(NomineeName),
                                        OfficeLocation.FindByName(NomineeOfficeLocation),
                                        EmailAddress.Create(NomineeEmailAddress));

            var companyValues = (CompanyValues ?? Enumerable.Empty <string>())
                                .Select(CompanyValue.FindByValue)
                                .ToList();

            return(new Nomination(Id,
                                  NomineeVotingIdentifier.Unknown,
                                  nominee,
                                  ValueObjects.AwardType.FindByAwardName(AwardType),
                                  PersonName.CreateForNominator(NominatorName, IsNominatorAnonymous),
                                  companyValues,
                                  NominationWriteUp.Create(nominee.Name, WriteUp),
                                  NominationWriteUpSummary.Create(WriteUpSummary)));
        }
예제 #5
0
        public void UpdateNominationWriteUp(int nominationId, NominationWriteUp newWriteUp)
        {
            if (newWriteUp == null)
            {
                throw new ArgumentNullException(nameof(newWriteUp));
            }
            if (!newWriteUp.IsValid)
            {
                throw new ArgumentException(nameof(newWriteUp));
            }

            var nomination = Nominations.FirstOrDefault(n => n.Id == nominationId);

            if (nomination == null)
            {
                throw new ArgumentException(nameof(nominationId));
            }

            nomination.UpdateWriteUp(newWriteUp);
            MarkAsDirty($@"Updated a nomination write-up for {nomination.NomineeName}");
        }
예제 #6
0
        private static bool TryGetNewNominationWriteUp(Nomination nomination, out NominationWriteUp newWriteUp)
        {
            var parameter = new NewWriteUpParameter(nomination.NomineeName, nomination.WriteUp);

            return(TryGetArgumentValue(parameter, out newWriteUp));
        }
예제 #7
0
 internal void UpdateWriteUp(NominationWriteUp newWriteUp)
 {
     WriteUp = newWriteUp;
 }