Add select menu IsRequired property and fix usage of DefaultValues (#3199)
This commit is contained in:
@@ -121,6 +121,11 @@ public class SelectMenuBuilder : IInteractableComponentBuilder
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets whether the current menu is required to answer in a modal (defaults to <see langword="true"/>).
|
||||||
|
/// </summary>
|
||||||
|
public bool IsRequired { get ; set; } = true;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets whether the current menu is disabled.
|
/// Gets or sets whether the current menu is disabled.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -168,11 +173,13 @@ public class SelectMenuBuilder : IInteractableComponentBuilder
|
|||||||
CustomId = selectMenu.CustomId;
|
CustomId = selectMenu.CustomId;
|
||||||
MaxValues = selectMenu.MaxValues;
|
MaxValues = selectMenu.MaxValues;
|
||||||
MinValues = selectMenu.MinValues;
|
MinValues = selectMenu.MinValues;
|
||||||
|
IsRequired = selectMenu.IsRequired;
|
||||||
IsDisabled = selectMenu.IsDisabled;
|
IsDisabled = selectMenu.IsDisabled;
|
||||||
Type = selectMenu.Type;
|
Type = selectMenu.Type;
|
||||||
Options = selectMenu.Options?
|
Options = selectMenu.Options?
|
||||||
.Select(x => new SelectMenuOptionBuilder(x.Label, x.Value, x.Description, x.Emote, x.IsDefault))
|
.Select(x => new SelectMenuOptionBuilder(x.Label, x.Value, x.Description, x.Emote, x.IsDefault))
|
||||||
.ToList();
|
.ToList();
|
||||||
|
ChannelTypes = selectMenu.ChannelTypes?.ToList();
|
||||||
DefaultValues = selectMenu.DefaultValues?.ToList();
|
DefaultValues = selectMenu.DefaultValues?.ToList();
|
||||||
Id = selectMenu.Id;
|
Id = selectMenu.Id;
|
||||||
}
|
}
|
||||||
@@ -188,12 +195,16 @@ public class SelectMenuBuilder : IInteractableComponentBuilder
|
|||||||
/// <param name="isDisabled">Disabled this select menu or not.</param>
|
/// <param name="isDisabled">Disabled this select menu or not.</param>
|
||||||
/// <param name="type">The <see cref="ComponentType"/> of this select menu.</param>
|
/// <param name="type">The <see cref="ComponentType"/> of this select menu.</param>
|
||||||
/// <param name="channelTypes">The types of channels this menu can select (only valid on <see cref="ComponentType.ChannelSelect"/>s)</param>
|
/// <param name="channelTypes">The types of channels this menu can select (only valid on <see cref="ComponentType.ChannelSelect"/>s)</param>
|
||||||
public SelectMenuBuilder(string customId, List<SelectMenuOptionBuilder> options = null, string placeholder = null, int maxValues = 1, int minValues = 1,
|
/// <param name="defaultValues">The list of default values.</param>
|
||||||
bool isDisabled = false, ComponentType type = ComponentType.SelectMenu, List<ChannelType> channelTypes = null, List<SelectMenuDefaultValue> defaultValues = null, int? id = null)
|
/// <param name="id">An optional id for the component.</param>
|
||||||
|
/// <param name="isRequired">Whether the current menu is required to answer in a modal.</param>
|
||||||
|
public SelectMenuBuilder(string customId, List<SelectMenuOptionBuilder> options = null, string placeholder = null, int maxValues = 1, int minValues = 1, bool isDisabled = false,
|
||||||
|
ComponentType type = ComponentType.SelectMenu, List<ChannelType> channelTypes = null, List<SelectMenuDefaultValue> defaultValues = null, int? id = null, bool isRequired = true)
|
||||||
{
|
{
|
||||||
CustomId = customId;
|
CustomId = customId;
|
||||||
Options = options;
|
Options = options;
|
||||||
Placeholder = placeholder;
|
Placeholder = placeholder;
|
||||||
|
IsRequired = isRequired;
|
||||||
IsDisabled = isDisabled;
|
IsDisabled = isDisabled;
|
||||||
MaxValues = maxValues;
|
MaxValues = maxValues;
|
||||||
MinValues = minValues;
|
MinValues = minValues;
|
||||||
@@ -352,6 +363,19 @@ public class SelectMenuBuilder : IInteractableComponentBuilder
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Sets whether the current menu is required to answer in a modal.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="isRequired">Whether the current menu is required to answer in a modal.</param>
|
||||||
|
/// <returns>
|
||||||
|
/// The current builder.
|
||||||
|
/// </returns>
|
||||||
|
public SelectMenuBuilder WithRequired(bool isRequired)
|
||||||
|
{
|
||||||
|
IsRequired = isRequired;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Sets whether the current menu is disabled.
|
/// Sets whether the current menu is disabled.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -414,7 +438,7 @@ public class SelectMenuBuilder : IInteractableComponentBuilder
|
|||||||
{
|
{
|
||||||
var options = Options?.Select(x => x.Build()).ToList();
|
var options = Options?.Select(x => x.Build()).ToList();
|
||||||
|
|
||||||
return new SelectMenuComponent(CustomId, options, Placeholder, MinValues, MaxValues, IsDisabled, Type, Id, ChannelTypes, DefaultValues);
|
return new SelectMenuComponent(CustomId, options, Placeholder, MinValues, MaxValues, IsRequired, IsDisabled, Type, Id, ChannelTypes, DefaultValues);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <inheritdoc/>
|
/// <inheritdoc/>
|
||||||
|
|||||||
@@ -37,6 +37,11 @@ public class SelectMenuComponent : IInteractableComponent
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public int MaxValues { get; }
|
public int MaxValues { get; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets whether this menu is required to answer in a modal.
|
||||||
|
/// </summary>
|
||||||
|
public bool IsRequired { get;}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets whether this menu is disabled or not.
|
/// Gets whether this menu is disabled or not.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -58,7 +63,7 @@ public class SelectMenuComponent : IInteractableComponent
|
|||||||
public SelectMenuBuilder ToBuilder()
|
public SelectMenuBuilder ToBuilder()
|
||||||
=> new(this);
|
=> new(this);
|
||||||
|
|
||||||
internal SelectMenuComponent(string customId, List<SelectMenuOption> options, string placeholder, int minValues, int maxValues,
|
internal SelectMenuComponent(string customId, List<SelectMenuOption> options, string placeholder, int minValues, int maxValues, bool required,
|
||||||
bool disabled, ComponentType type, int? id, IEnumerable<ChannelType> channelTypes = null, IEnumerable<SelectMenuDefaultValue> defaultValues = null)
|
bool disabled, ComponentType type, int? id, IEnumerable<ChannelType> channelTypes = null, IEnumerable<SelectMenuDefaultValue> defaultValues = null)
|
||||||
{
|
{
|
||||||
CustomId = customId;
|
CustomId = customId;
|
||||||
@@ -66,6 +71,7 @@ public class SelectMenuComponent : IInteractableComponent
|
|||||||
Placeholder = placeholder;
|
Placeholder = placeholder;
|
||||||
MinValues = minValues;
|
MinValues = minValues;
|
||||||
MaxValues = maxValues;
|
MaxValues = maxValues;
|
||||||
|
IsRequired = required;
|
||||||
IsDisabled = disabled;
|
IsDisabled = disabled;
|
||||||
Type = type;
|
Type = type;
|
||||||
Id = id;
|
Id = id;
|
||||||
|
|||||||
@@ -165,7 +165,7 @@ namespace Discord
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <inheritdoc cref="ModalComponentBuilder.WithSelectMenu(string, string, List{SelectMenuOptionBuilder}, string, int, int, bool, ComponentType, ChannelType[], int?, string, int?)"/>
|
/// <inheritdoc cref="ModalComponentBuilder.WithSelectMenu(string, string, List{SelectMenuOptionBuilder}, string, int, int, bool, bool, ComponentType, ChannelType[], SelectMenuDefaultValue[], int?, string, int?)"/>
|
||||||
/// <returns>The current <see cref="ModalBuilder"/>.</returns>
|
/// <returns>The current <see cref="ModalBuilder"/>.</returns>
|
||||||
public ModalBuilder AddSelectMenu(
|
public ModalBuilder AddSelectMenu(
|
||||||
string label,
|
string label,
|
||||||
@@ -174,9 +174,11 @@ namespace Discord
|
|||||||
string placeholder = null,
|
string placeholder = null,
|
||||||
int minValues = 1,
|
int minValues = 1,
|
||||||
int maxValues = 1,
|
int maxValues = 1,
|
||||||
|
bool required = true,
|
||||||
bool disabled = false,
|
bool disabled = false,
|
||||||
ComponentType type = ComponentType.SelectMenu,
|
ComponentType type = ComponentType.SelectMenu,
|
||||||
ChannelType[] channelTypes = null,
|
ChannelType[] channelTypes = null,
|
||||||
|
SelectMenuDefaultValue[] defaultValues = null,
|
||||||
int? id = null,
|
int? id = null,
|
||||||
string description = null,
|
string description = null,
|
||||||
int? labelId = null
|
int? labelId = null
|
||||||
@@ -189,9 +191,11 @@ namespace Discord
|
|||||||
placeholder,
|
placeholder,
|
||||||
minValues,
|
minValues,
|
||||||
maxValues,
|
maxValues,
|
||||||
|
required,
|
||||||
disabled,
|
disabled,
|
||||||
type,
|
type,
|
||||||
channelTypes,
|
channelTypes,
|
||||||
|
defaultValues,
|
||||||
id,
|
id,
|
||||||
description,
|
description,
|
||||||
labelId
|
labelId
|
||||||
@@ -624,9 +628,11 @@ namespace Discord
|
|||||||
/// <param name="placeholder">The placeholder of the <see cref="SelectMenuBuilder"/>.</param>
|
/// <param name="placeholder">The placeholder of the <see cref="SelectMenuBuilder"/>.</param>
|
||||||
/// <param name="minValues">The min values of the <see cref="SelectMenuBuilder"/>.</param>
|
/// <param name="minValues">The min values of the <see cref="SelectMenuBuilder"/>.</param>
|
||||||
/// <param name="maxValues">The max values of the <see cref="SelectMenuBuilder"/>.</param>
|
/// <param name="maxValues">The max values of the <see cref="SelectMenuBuilder"/>.</param>
|
||||||
|
/// <param name="required">Whether the <see cref="SelectMenuBuilder"/> is required to be answered.</param>
|
||||||
/// <param name="disabled">Whether the <see cref="SelectMenuBuilder"/> is disabled.</param>
|
/// <param name="disabled">Whether the <see cref="SelectMenuBuilder"/> is disabled.</param>
|
||||||
/// <param name="type">The type of the <see cref="SelectMenuBuilder"/>.</param>
|
/// <param name="type">The type of the <see cref="SelectMenuBuilder"/>.</param>
|
||||||
/// <param name="channelTypes">The channel types of the <see cref="SelectMenuBuilder"/>.</param>
|
/// <param name="channelTypes">The channel types of the <see cref="SelectMenuBuilder"/>.</param>
|
||||||
|
/// <param name="defaultValues">The default values of the <see cref="SelectMenuBuilder"/>.</param>
|
||||||
/// <param name="id">The id of the <see cref="SelectMenuBuilder"/>.</param>
|
/// <param name="id">The id of the <see cref="SelectMenuBuilder"/>.</param>
|
||||||
/// <param name="description">The description around the <see cref="SelectMenuBuilder"/>.</param>
|
/// <param name="description">The description around the <see cref="SelectMenuBuilder"/>.</param>
|
||||||
/// <param name="labelId">
|
/// <param name="labelId">
|
||||||
@@ -640,9 +646,11 @@ namespace Discord
|
|||||||
string placeholder = null,
|
string placeholder = null,
|
||||||
int minValues = 1,
|
int minValues = 1,
|
||||||
int maxValues = 1,
|
int maxValues = 1,
|
||||||
|
bool required = true,
|
||||||
bool disabled = false,
|
bool disabled = false,
|
||||||
ComponentType type = ComponentType.SelectMenu,
|
ComponentType type = ComponentType.SelectMenu,
|
||||||
ChannelType[] channelTypes = null,
|
ChannelType[] channelTypes = null,
|
||||||
|
SelectMenuDefaultValue[] defaultValues = null,
|
||||||
int? id = null,
|
int? id = null,
|
||||||
string description = null,
|
string description = null,
|
||||||
int? labelId = null
|
int? labelId = null
|
||||||
@@ -655,9 +663,11 @@ namespace Discord
|
|||||||
.WithPlaceholder(placeholder)
|
.WithPlaceholder(placeholder)
|
||||||
.WithMaxValues(maxValues)
|
.WithMaxValues(maxValues)
|
||||||
.WithMinValues(minValues)
|
.WithMinValues(minValues)
|
||||||
|
.WithRequired(required)
|
||||||
.WithDisabled(disabled)
|
.WithDisabled(disabled)
|
||||||
.WithType(type)
|
.WithType(type)
|
||||||
.WithChannelTypes(channelTypes),
|
.WithChannelTypes(channelTypes)
|
||||||
|
.WithDefaultValues(defaultValues),
|
||||||
description,
|
description,
|
||||||
labelId
|
labelId
|
||||||
);
|
);
|
||||||
@@ -695,11 +705,11 @@ namespace Discord
|
|||||||
/// Constructs and adds a <see cref="LabelBuilder"/> with the provided
|
/// Constructs and adds a <see cref="LabelBuilder"/> with the provided
|
||||||
/// <see cref="FileUploadComponentBuilder"/> to the current <see cref="ModalComponentBuilder"/>.
|
/// <see cref="FileUploadComponentBuilder"/> to the current <see cref="ModalComponentBuilder"/>.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="label">The label around the <see cref="SelectMenuBuilder"/>.</param>
|
/// <param name="label">The label around the <see cref="FileUploadComponentBuilder"/>.</param>
|
||||||
/// <param name="fileUpload">The file upload to add.</param>
|
/// <param name="fileUpload">The file upload to add.</param>
|
||||||
/// <param name="description">The description around the <see cref="SelectMenuBuilder"/>.</param>
|
/// <param name="description">The description around the <see cref="FileUploadComponentBuilder"/>.</param>
|
||||||
/// <param name="labelId">
|
/// <param name="labelId">
|
||||||
/// The id of the <see cref="LabelBuilder"/> wrapping the <see cref="SelectMenuBuilder"/>.
|
/// The id of the <see cref="LabelBuilder"/> wrapping the <see cref="FileUploadComponentBuilder"/>.
|
||||||
/// </param>
|
/// </param>
|
||||||
/// <returns>The current <see cref="ModalComponentBuilder"/>.</returns>
|
/// <returns>The current <see cref="ModalComponentBuilder"/>.</returns>
|
||||||
public ModalComponentBuilder WithFileUpload(
|
public ModalComponentBuilder WithFileUpload(
|
||||||
@@ -713,15 +723,15 @@ namespace Discord
|
|||||||
/// Constructs and adds a <see cref="LabelBuilder"/> with a <see cref="FileUploadComponentBuilder"/>
|
/// Constructs and adds a <see cref="LabelBuilder"/> with a <see cref="FileUploadComponentBuilder"/>
|
||||||
/// to the current <see cref="ModalComponentBuilder"/>.
|
/// to the current <see cref="ModalComponentBuilder"/>.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="label">The label around the <see cref="SelectMenuBuilder"/>.</param>
|
/// <param name="label">The label around the <see cref="FileUploadComponentBuilder"/>.</param>
|
||||||
/// <param name="customId">The custom id of the <see cref="FileUploadComponentBuilder"/>.</param>
|
/// <param name="customId">The custom id of the <see cref="FileUploadComponentBuilder"/>.</param>
|
||||||
/// <param name="minValues">The min values of the <see cref="FileUploadComponentBuilder"/>.</param>
|
/// <param name="minValues">The min values of the <see cref="FileUploadComponentBuilder"/>.</param>
|
||||||
/// <param name="maxValues">The max values of the <see cref="FileUploadComponentBuilder"/>.</param>
|
/// <param name="maxValues">The max values of the <see cref="FileUploadComponentBuilder"/>.</param>
|
||||||
/// <param name="isRequired">Whether the <see cref="FileUploadComponentBuilder"/> is required.</param>
|
/// <param name="isRequired">Whether the <see cref="FileUploadComponentBuilder"/> is required.</param>
|
||||||
/// <param name="id">The id of the <see cref="FileUploadComponentBuilder"/>.</param>
|
/// <param name="id">The id of the <see cref="FileUploadComponentBuilder"/>.</param>
|
||||||
/// <param name="description">The description around the <see cref="SelectMenuBuilder"/>.</param>
|
/// <param name="description">The description around the <see cref="FileUploadComponentBuilder"/>.</param>
|
||||||
/// <param name="labelId">
|
/// <param name="labelId">
|
||||||
/// The id of the <see cref="LabelBuilder"/> wrapping the <see cref="SelectMenuBuilder"/>.
|
/// The id of the <see cref="LabelBuilder"/> wrapping the <see cref="FileUploadComponentBuilder"/>.
|
||||||
/// </param>
|
/// </param>
|
||||||
/// <returns>The current <see cref="ModalComponentBuilder"/>.</returns>
|
/// <returns>The current <see cref="ModalComponentBuilder"/>.</returns>
|
||||||
public ModalComponentBuilder WithFileUpload(
|
public ModalComponentBuilder WithFileUpload(
|
||||||
@@ -767,11 +777,11 @@ namespace Discord
|
|||||||
/// Constructs and adds a <see cref="LabelBuilder"/> with the provided <see cref="TextInputBuilder"/> to
|
/// Constructs and adds a <see cref="LabelBuilder"/> with the provided <see cref="TextInputBuilder"/> to
|
||||||
/// the current <see cref="ModalComponentBuilder"/>.
|
/// the current <see cref="ModalComponentBuilder"/>.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="label">The label around the <see cref="SelectMenuBuilder"/>.</param>
|
/// <param name="label">The label around the <see cref="TextInputBuilder"/>.</param>
|
||||||
/// <param name="textInput">The text input to add.</param>
|
/// <param name="textInput">The text input to add.</param>
|
||||||
/// <param name="description">The description around the <see cref="SelectMenuBuilder"/>.</param>
|
/// <param name="description">The description around the <see cref="TextInputBuilder"/>.</param>
|
||||||
/// <param name="labelId">
|
/// <param name="labelId">
|
||||||
/// The id of the <see cref="LabelBuilder"/> wrapping the <see cref="SelectMenuBuilder"/>.
|
/// The id of the <see cref="LabelBuilder"/> wrapping the <see cref="TextInputBuilder"/>.
|
||||||
/// </param>
|
/// </param>
|
||||||
/// <returns>The current <see cref="ModalComponentBuilder"/>.</returns>
|
/// <returns>The current <see cref="ModalComponentBuilder"/>.</returns>
|
||||||
public ModalComponentBuilder WithTextInput(
|
public ModalComponentBuilder WithTextInput(
|
||||||
@@ -823,7 +833,7 @@ namespace Discord
|
|||||||
/// Constructs and adds a <see cref="LabelBuilder"/> with a <see cref="TextInputBuilder"/>
|
/// Constructs and adds a <see cref="LabelBuilder"/> with a <see cref="TextInputBuilder"/>
|
||||||
/// to the current <see cref="ModalComponentBuilder"/>.
|
/// to the current <see cref="ModalComponentBuilder"/>.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="label">The label around the <see cref="SelectMenuBuilder"/>.</param>
|
/// <param name="label">The label around the <see cref="TextInputBuilder"/>.</param>
|
||||||
/// <param name="customId">The custom id of the <see cref="TextInputBuilder"/>.</param>
|
/// <param name="customId">The custom id of the <see cref="TextInputBuilder"/>.</param>
|
||||||
/// <param name="style">The style of the <see cref="TextInputBuilder"/>.</param>
|
/// <param name="style">The style of the <see cref="TextInputBuilder"/>.</param>
|
||||||
/// <param name="placeholder">The placeholder of the <see cref="TextInputBuilder"/>.</param>
|
/// <param name="placeholder">The placeholder of the <see cref="TextInputBuilder"/>.</param>
|
||||||
@@ -833,9 +843,9 @@ namespace Discord
|
|||||||
/// <param name="required">Whether the <see cref="TextInputBuilder"/> is required.</param>
|
/// <param name="required">Whether the <see cref="TextInputBuilder"/> is required.</param>
|
||||||
/// <param name="value">The value of the <see cref="TextInputBuilder"/>.</param>
|
/// <param name="value">The value of the <see cref="TextInputBuilder"/>.</param>
|
||||||
/// <param name="id">The id of the <see cref="TextInputBuilder"/>.</param>
|
/// <param name="id">The id of the <see cref="TextInputBuilder"/>.</param>
|
||||||
/// <param name="description">The description around the <see cref="SelectMenuBuilder"/>.</param>
|
/// <param name="description">The description around the <see cref="TextInputBuilder"/>.</param>
|
||||||
/// <param name="labelId">
|
/// <param name="labelId">
|
||||||
/// The id of the <see cref="LabelBuilder"/> wrapping the <see cref="SelectMenuBuilder"/>.
|
/// The id of the <see cref="LabelBuilder"/> wrapping the <see cref="TextInputBuilder"/>.
|
||||||
/// </param>
|
/// </param>
|
||||||
/// <returns>The current <see cref="ModalComponentBuilder"/>.</returns>
|
/// <returns>The current <see cref="ModalComponentBuilder"/>.</returns>
|
||||||
public ModalComponentBuilder WithTextInput(
|
public ModalComponentBuilder WithTextInput(
|
||||||
|
|||||||
@@ -26,6 +26,9 @@ namespace Discord.API
|
|||||||
[JsonProperty("max_values")]
|
[JsonProperty("max_values")]
|
||||||
public int MaxValues { get; set; }
|
public int MaxValues { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty("required")]
|
||||||
|
public bool Required { get; set; }
|
||||||
|
|
||||||
[JsonProperty("disabled")]
|
[JsonProperty("disabled")]
|
||||||
public bool Disabled { get; set; }
|
public bool Disabled { get; set; }
|
||||||
|
|
||||||
@@ -51,6 +54,7 @@ namespace Discord.API
|
|||||||
Placeholder = component.Placeholder;
|
Placeholder = component.Placeholder;
|
||||||
MinValues = component.MinValues;
|
MinValues = component.MinValues;
|
||||||
MaxValues = component.MaxValues;
|
MaxValues = component.MaxValues;
|
||||||
|
Required = component.IsRequired;
|
||||||
Disabled = component.IsDisabled;
|
Disabled = component.IsDisabled;
|
||||||
ChannelTypes = component.ChannelTypes.ToArray();
|
ChannelTypes = component.ChannelTypes.ToArray();
|
||||||
DefaultValues = component.DefaultValues.Select(x => new SelectMenuDefaultValue {Id = x.Id, Type = x.Type}).ToArray();
|
DefaultValues = component.DefaultValues.Select(x => new SelectMenuDefaultValue {Id = x.Id, Type = x.Type}).ToArray();
|
||||||
|
|||||||
@@ -102,6 +102,7 @@ internal static class MessageComponentExtension
|
|||||||
parsed.Placeholder.GetValueOrDefault(),
|
parsed.Placeholder.GetValueOrDefault(),
|
||||||
parsed.MinValues,
|
parsed.MinValues,
|
||||||
parsed.MaxValues,
|
parsed.MaxValues,
|
||||||
|
parsed.Required,
|
||||||
parsed.Disabled,
|
parsed.Disabled,
|
||||||
parsed.Type,
|
parsed.Type,
|
||||||
parsed.Id.ToNullable(),
|
parsed.Id.ToNullable(),
|
||||||
|
|||||||
Reference in New Issue
Block a user