Shaolinq.Persistence.DefaultStringSqlDataType.GetSqlName C# (CSharp) Method

GetSqlName() public method

public GetSqlName ( PropertyDescriptor propertyDescriptor, ConstraintDefaultsConfiguration constraintDefaults ) : string
propertyDescriptor PropertyDescriptor
constraintDefaults ConstraintDefaultsConfiguration
return string
		public override string GetSqlName(PropertyDescriptor propertyDescriptor, ConstraintDefaultsConfiguration constraintDefaults)
		{
			var sizeConstraintAttribute = propertyDescriptor?.PropertyInfo.GetFirstCustomAttribute<SizeConstraintAttribute>(true);
			
			if (sizeConstraintAttribute != null || constraintDefaults?.StringSizeFlexibility != null)
			{
				switch ((constraintDefaults?.StringSizeFlexibility ?? sizeConstraintAttribute.SizeFlexibility))
				{
				case SizeFlexibility.Fixed:
					return CreateFixedTypeName(sizeConstraintAttribute.MaximumLength);
				case SizeFlexibility.Variable:
					return CreateVariableName(sizeConstraintAttribute.MaximumLength);
				case SizeFlexibility.LargeVariable:
					return CreateTextName();
				default:
					throw new NotSupportedException("SizeFlexibility: " + sizeConstraintAttribute.SizeFlexibility);
				}
			}
			else
			{
				if (propertyDescriptor != null && (propertyDescriptor.IsPrimaryKey || propertyDescriptor.HasUniqueAttribute || propertyDescriptor.IndexAttributes.Count > 0))
				{
					return this.CreateVariableName(this.constraintDefaultsConfiguration.IndexedStringMaximumLength);
				}
				else
				{
					return this.CreateVariableName((constraintDefaults ?? this.constraintDefaultsConfiguration).StringMaximumLength);
				}
			}
		}