Ejemplo n.º 1
0
        public async Task <Firstname> GenerateAsync(Gender gender, Country country)
        {
            List <string> languages = country.Languages
                                      .Select(l => l.Value.ToLower())
                                      .ToList();
            Maybe <List <FirstnameRecord> > recordsMaybe = await _firstnameRecordsLoader.GetRecordsAsync();

            List <FirstnameRecord> records = recordsMaybe
                                             .ValueOrThrow(new ApplicationException("No records were loaded. Cannot generate Firstname."));

            // filter records
            List <FirstnameRecord> firstnamesRecords = records
                                                       .Where(r => r.Genders.Contains(gender) &&
                                                              r.Frequency > 0d &&
                                                              languages.Any(l => r.Languages.Contains(l)))
                                                       .ToList();

            if (firstnamesRecords == null)
            {
                throw new ApplicationException("Cannot find any firstname record.");
            }

            FirstnameRecord record = _listRandomiser.GetRandomisedItem(firstnamesRecords);

            return(new Firstname(record.Firstname));
        }
Ejemplo n.º 2
0
        public Firstname Generate(Gender gender, Country country)
        {
            List <string> languages = country.Languages
                                      .Select(l => l.Value.ToLower())
                                      .ToList();

            List <FirstnameRecord> firstnamesRecords = _firstnameRecordsLoader.GetRecords().Value
                                                       .Where(r => r.Genders.Contains(gender) &&
                                                              r.Frequency > 0d &&
                                                              languages.Any(l => r.Languages.Contains(l)))
                                                       .ToList();

            if (firstnamesRecords == null)
            {
                throw new ApplicationException("Cannot find any firstname record.");
            }

            FirstnameRecord record = _listRandomiser.GetRandomisedItem(firstnamesRecords);

            return(new Firstname(record.Firstname));
        }