public string GetToBindingModelConversionText(AttributeDefinition attributeDefinition)
        {
            switch (attributeDefinition.Type)
            {
            case AttributeTypeCode.Customer:
            case AttributeTypeCode.Owner:
            case AttributeTypeCode.Lookup:
                if (Symbol.Type.IsTypeOrNullableOf("System.Guid"))
                {
                    var result = $"model.{Name} = record.GetAttributeValue<EntityReference>({attributeDefinition.FullName})?.Id";

                    if (Symbol.Type.Name == "Guid")
                    {
                        result += " ?? Guid.Empty";
                    }

                    result += ";\r\n";

                    return(result);
                }

                break;

            case AttributeTypeCode.Money:
                if (Symbol.Type.IsTypeOrNullableOf(SpecialType.System_Decimal))
                {
                    var result = $"model.{Name} = record.GetAttributeValue<Money>({attributeDefinition.FullName})?.Value";

                    if (Symbol.Type.SpecialType == SpecialType.System_Decimal)
                    {
                        result += " ?? default(decimal)";
                    }

                    result += ";\r\n";

                    return(result);
                }

                break;

            case AttributeTypeCode.Picklist:
            case AttributeTypeCode.State:
            case AttributeTypeCode.Status:
                if (Symbol.Type.IsTypeOrNullableOf(SpecialType.System_Int32))
                {
                    var result = $"model.{Name} = record.GetAttributeValue<OptionSetValue>({attributeDefinition.FullName})?.Value";

                    if (Symbol.Type.SpecialType == SpecialType.System_Int32)
                    {
                        result += " ?? default(int)";
                    }

                    result += ";\r\n";

                    return(result);
                }

                if (Symbol.Type.IsTypeOrNullableOf(TypeKind.Enum))
                {
                    var content = $"model.{Name} = record.GetOptionSetValue<{Symbol.Type.ToDisplayString(SymbolDisplayFormat.MinimallyQualifiedFormat)}>({attributeDefinition.FullName});\r\n";

                    if (Symbol.Type.TypeKind != TypeKind.Enum)
                    {
                        content = $"if (record.Contains({attributeDefinition.FullName})) \r\n{{\r\n {content} }}\n\n";
                    }

                    return(content);
                }

                break;
            }

            return(null);
        }
 public abstract bool GetSubSyntax(AttributeDefinition attributeDefinition, out StatementSyntax syntax, out string subRecordName);