in src/YouTrackSharp/Projects/CustomField.cs [45:96]
internal BundleProjectCustomField ToApiEntity(ICollection<Generated.CustomField> allFields)
{
var field = allFields.FirstOrDefault(f => f.Name.Equals(Name, StringComparison.InvariantCultureIgnoreCase));
if (field == null)
{
throw new YouTrackErrorException(Strings.Exception_BadRequest, (int)HttpStatusCode.BadRequest,
$"Custom field prototype [ {Name} ] not found", null, null);
}
var fieldTypeId = field.FieldType.Id;
var pos = fieldTypeId.IndexOf('[');
if (pos >= 0)
{
fieldTypeId = fieldTypeId.Substring(0, pos);
}
BundleProjectCustomField bundleField;
switch (fieldTypeId)
{
case "enum":
bundleField = new EnumProjectCustomField();
break;
case "build":
bundleField = new BuildProjectCustomField();
break;
case "ownedField":
bundleField = new OwnedProjectCustomField();
break;
case "version":
bundleField = new VersionProjectCustomField();
break;
case "state":
bundleField = new StateProjectCustomField();
break;
case "user":
bundleField = new UserProjectCustomField();
break;
case "group":
bundleField = new GroupProjectCustomField();
break;
default:
bundleField = new SimpleProjectCustomField();
break;
}
bundleField.Field = field;
bundleField.CanBeEmpty = CanBeEmpty;
bundleField.EmptyFieldText = EmptyText;
return bundleField;
}