protected override object GenerateCore(Project project, Column column)
        {
            var gender = Gender;

            if (gender == Gender.Unknown)
            {
                var columnGender = project.CurrentRow.GetValue(WellKnownDataType.Gender) as string;
                if (columnGender != null)
                {
                    if (string.Equals(columnGender, "Mr", StringComparison.OrdinalIgnoreCase) ||
                        string.Equals(columnGender, "M", StringComparison.OrdinalIgnoreCase) ||
                        string.Equals(columnGender, "M.", StringComparison.OrdinalIgnoreCase))
                    {
                        gender = Gender.Male;
                    }
                    else
                    {
                        gender = Gender.Female;
                    }
                }
            }

            switch (gender)
            {
            case Gender.Male:
                return(StringGenerator.CoerceValue(Random.NextFromList(ReferentialData.MaleFirstNames), column));

            case Gender.Female:
                return(StringGenerator.CoerceValue(Random.NextFromList(ReferentialData.FemaleFirstNames), column));

            default:
                return(StringGenerator.CoerceValue(Random.NextFromList(ReferentialData.FirstNames), column));
            }
        }
        protected override object GenerateCore(Project project, Column column)
        {
            var           words       = new[] { "lorem", "ipsum", "dolor", "sit", "amet", "consectetuer", "adipiscing", "elit", "sed", "diam", "nonummy", "nibh", "euismod", "tincidunt", "ut", "laoreet", "dolore", "magna", "aliquam", "erat" };
            var           ponctuation = new[] { ". ", "! ", "? " };
            StringBuilder sb          = new StringBuilder();

            int numParagraphs = Random.NextInt32(MinimumParagraphs, MaximumParagraphs);

            for (int p = 0; p < numParagraphs; p++)
            {
                int numSentences = Random.NextInt32(MinimumSentences, MaximumSentences) + 1;
                for (int s = 0; s < numSentences; s++)
                {
                    int numWords = Random.NextInt32(MinimumWords, MaximumWords);
                    for (int w = 0; w < numWords; w++)
                    {
                        if (w > 0)
                        {
                            sb.Append(" ");
                        }

                        sb.Append(Random.NextFromArray(words));
                    }

                    sb.Append(Random.NextFromArray(ponctuation));
                }

                sb.AppendLine();
            }

            return(StringGenerator.CoerceValue(sb.ToString(), column));
        }
        protected override object GenerateCore(Project project, Column column)
        {
            var           phoneFormat = Random.NextFromList(Formats);
            StringBuilder sb          = new StringBuilder();

            foreach (var c in phoneFormat.Format)
            {
                if (c == '0')
                {
                    sb.Append(Random.NextInt32(0, 10));
                }
                else
                {
                    sb.Append(c);
                }
            }

            return(StringGenerator.CoerceValue(sb.ToString(), column));
        }
 protected override object GenerateCore(Project project, Column column)
 {
     return(StringGenerator.CoerceValue(base.GenerateCore(project, column) as string, column));
 }