ModelBuilder.LastNameValueGenerator.GenerateValue C# (CSharp) Method

GenerateValue() protected method

protected GenerateValue ( Type type, string referenceName, LinkedList buildChain ) : object
type System.Type
referenceName string
buildChain LinkedList
return object
        protected override object GenerateValue(Type type, string referenceName, LinkedList<object> buildChain)
        {
            if (buildChain == null)
            {
                throw new ArgumentNullException(nameof(buildChain));
            }
            
            var context = buildChain.Last?.Value;
            var gender = GetValue<string>(PropertyExpression.Gender, context);

            if (string.Equals(gender, "male", StringComparison.OrdinalIgnoreCase))
            {
                // Use a male first name
                var male = TestData.NextMale();

                return male.LastName;
            }

            // Use a female name
            var female = TestData.NextFemale();

            return female.LastName;
        }