示例#1
0
        private string GenerateName(string category, int recursionCount)
        {
            if (recursionCount >= MAX_RECURSION_COUNT)
            {
                throw new StackOverflowException("No name can be generated. Choosing another category may help");
            }

            Adjectives = _.List.Shuffle(Adjectives);
            var adjective = Adjectives.First();

            // Take only animals that the first letter is the same as the first letter of the adjective
            var filteredAnimals = Animals[category].Where(a => a.ToUpper()[0] == adjective.ToUpper()[0]).ToList();

            // If we didn't find any matching animals - try again
            if (!filteredAnimals.Any())
            {
                return(GenerateName(category, ++recursionCount));
            }

            filteredAnimals = _.List.Shuffle(filteredAnimals).ToList();

            var name = CultureInfo.CurrentCulture.TextInfo.ToTitleCase($"{adjective} {filteredAnimals.First()}");

            // If the name was already given - try again
            if (PreviousNames.Contains(name))
            {
                return(GenerateName(category, ++recursionCount));
            }

            UpdatePreviousNames(name);
            return(name);
        }
        public ClientNamesSummaryViewModel(DebtorDetailsResponse debtorDetails)
        {
            CurrentName.FirstName  = debtorDetails.FirstName;
            CurrentName.MiddleName = debtorDetails.MiddleName;
            CurrentName.LastName   = debtorDetails.LastName;
            CurrentNameDisplay     = CurrentName.GetFullName();

            if (debtorDetails.PreviousNames != null && debtorDetails.PreviousNames.Any())
            {
                PreviousNames = debtorDetails.PreviousNames.Select(x => new ClientName
                {
                    FirstName  = x.FirstName,
                    MiddleName = x.MiddleName,
                    LastName   = x.LastName,
                    NameId     = x.Id
                });

                PreviousNamesDisplay = PreviousNames.Select(x => x.GetFullName());
            }
        }
示例#3
0
 private void UpdatePreviousNames(string name)
 {
     PreviousNames.Add(name);
 }