Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 12 additions & 3 deletions src/BootstrapBlazor/Extensions/DrawerExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,18 @@ public static class DrawerExtensions
/// <para lang="zh">弹出编辑抽屉</para>
/// <para lang="en">Show edit drawer</para>
/// </summary>
/// <param name="service"><para lang="zh"><see cref="DrawerService"/> 服务实例</para><para lang="en"><see cref="DrawerService"/> instance</para></param>
/// <param name="editDialogOption"><para lang="zh"><see cref="ITableEditDialogOption{TModel}"/> 配置类实例</para><para lang="en"><see cref="ITableEditDialogOption{TModel}"/> option instance</para></param>
/// <param name="option"><para lang="zh"><see cref="DrawerOption"/> 配置类实例</para><para lang="en"><see cref="DrawerOption"/> option instance</para></param>
/// <param name="service">
/// <para lang="zh"><see cref="DrawerService"/> 服务实例</para>
/// <para lang="en"><see cref="DrawerService"/> instance</para>
/// </param>
/// <param name="editDialogOption">
/// <para lang="zh"><see cref="ITableEditDialogOption{TModel}"/> 配置类实例</para>
/// <para lang="en"><see cref="ITableEditDialogOption{TModel}"/> option instance</para>
/// </param>
/// <param name="option">
/// <para lang="zh"><see cref="DrawerOption"/> 配置类实例</para>
/// <para lang="en"><see cref="DrawerOption"/> option instance</para>
/// </param>
public static async Task ShowEditDrawer<TModel>(this DrawerService service, TableEditDrawerOption<TModel> editDialogOption, DrawerOption option)
{
var parameters = editDialogOption.ToParameter();
Expand Down
5 changes: 4 additions & 1 deletion src/BootstrapBlazor/Extensions/DrawerOptionExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,9 @@ public static class DrawerOptionExtensions
/// <para lang="zh">获得 组件渲染块</para>
/// <para lang="en">Get component render fragment</para>
/// </summary>
/// <param name="drawerOption"></param>
/// <param name="drawerOption">
/// <para lang="zh"><see cref="DrawerOption"/> 实例</para>
/// <para lang="en"><see cref="DrawerOption"/> instance</para>
/// </param>
public static RenderFragment? GetContent(this DrawerOption drawerOption) => drawerOption.ChildContent ?? drawerOption.Component?.Render();
}
35 changes: 28 additions & 7 deletions src/BootstrapBlazor/Extensions/DrawerServiceExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,18 @@ public static class DrawerServiceExtensions
/// <para lang="zh">弹出搜索对话框</para>
/// <para lang="en">Show search dialog</para>
/// </summary>
/// <param name="service"><para lang="zh">DrawerService 服务实例</para><para lang="en">DrawerService instance</para></param>
/// <param name="parameters"></param>
/// <param name="option"><para lang="zh">DrawerOption 配置类实例</para><para lang="en">DrawerOption instance</para></param>
/// <param name="service">
/// <para lang="zh">DrawerService 服务实例</para>
/// <para lang="en">DrawerService instance</para>
/// </param>
/// <param name="parameters">
/// <para lang="zh">组件参数字典</para>
/// <para lang="en">Component parameters dictionary</para>
/// </param>
/// <param name="option">
/// <para lang="zh">DrawerOption 配置类实例</para>
/// <para lang="en">DrawerOption instance</para>
/// </param>
public static async Task Show<TComponent>(this DrawerService service, DrawerOption? option = null, IDictionary<string, object?>? parameters = null) where TComponent : IComponent
{
option ??= new DrawerOption();
Expand All @@ -29,10 +38,22 @@ public static async Task Show<TComponent>(this DrawerService service, DrawerOpti
/// <para lang="zh">弹出搜索对话框</para>
/// <para lang="en">Show search dialog</para>
/// </summary>
/// <param name="service"><para lang="zh">DrawerService 服务实例</para><para lang="en">DrawerService instance</para></param>
/// <param name="type"></param>
/// <param name="parameters"></param>
/// <param name="option"><para lang="zh">DrawerOption 配置类实例</para><para lang="en">DrawerOption instance</para></param>
/// <param name="service">
/// <para lang="zh">DrawerService 服务实例</para>
/// <para lang="en">DrawerService instance</para>
/// </param>
/// <param name="type">
/// <para lang="zh">组件类型</para>
/// <para lang="en">Component type</para>
/// </param>
/// <param name="parameters">
/// <para lang="zh">组件参数字典</para>
/// <para lang="en">Component parameters dictionary</para>
/// </param>
/// <param name="option">
/// <para lang="zh">DrawerOption 配置类实例</para>
/// <para lang="en">DrawerOption instance</para>
/// </param>
public static async Task Show(this DrawerService service, Type type, DrawerOption? option = null, IDictionary<string, object?>? parameters = null)
{
option ??= new DrawerOption();
Expand Down
135 changes: 108 additions & 27 deletions src/BootstrapBlazor/Extensions/DynamicObjectContextExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,22 @@ public static class DynamicObjectContextExtensions
/// <para lang="zh">增加 RequiredAttribute 扩展方法</para>
/// <para lang="en">Add RequiredAttribute Extension</para>
/// </summary>
/// <param name="context"></param>
/// <param name="columnName"></param>
/// <param name="errorMessage"></param>
/// <param name="allowEmptyStrings"></param>
/// <param name="context">
/// <para lang="zh">DynamicObjectContext 实例</para>
/// <para lang="en">DynamicObjectContext instance</para>
/// </param>
/// <param name="columnName">
/// <para lang="zh">列名</para>
/// <para lang="en">Column name</para>
/// </param>
/// <param name="errorMessage">
/// <para lang="zh">错误信息</para>
/// <para lang="en">Error message</para>
/// </param>
/// <param name="allowEmptyStrings">
/// <para lang="zh">是否允许空字符串</para>
/// <para lang="en">Whether to allow empty strings</para>
/// </param>
public static void AddRequiredAttribute(this DynamicObjectContext context, string columnName, string? errorMessage = null, bool allowEmptyStrings = false)
{
var parameters = new KeyValuePair<string, object?>[]
Expand All @@ -36,28 +48,55 @@ public static void AddRequiredAttribute(this DynamicObjectContext context, strin
/// <para lang="zh">增加 AutoGenerateColumnAttribute 扩展方法</para>
/// <para lang="en">Add AutoGenerateColumnAttribute Extension</para>
/// </summary>
/// <param name="context"></param>
/// <param name="columnName"></param>
/// <param name="parameters"></param>
/// <param name="context">
/// <para lang="zh">DynamicObjectContext 实例</para>
/// <para lang="en">DynamicObjectContext instance</para>
/// </param>
/// <param name="columnName">
/// <para lang="zh">列名</para>
/// <para lang="en">Column name</para>
/// </param>
/// <param name="parameters">
/// <para lang="zh">参数字典</para>
/// <para lang="en">Parameters dictionary</para>
/// </param>
public static void AddAutoGenerateColumnAttribute(this DynamicObjectContext context, string columnName, IEnumerable<KeyValuePair<string, object?>> parameters) => context.AddMultipleParameterAttribute<AutoGenerateColumnAttribute>(columnName, parameters);

/// <summary>
/// <para lang="zh">增加 DisplayAttribute 扩展方法</para>
/// <para lang="en">Add DisplayAttribute Extension</para>
/// </summary>
/// <param name="context"></param>
/// <param name="columnName"></param>
/// <param name="parameters"></param>
/// <param name="context">
/// <para lang="zh">DynamicObjectContext 实例</para>
/// <para lang="en">DynamicObjectContext instance</para>
/// </param>
/// <param name="columnName">
/// <para lang="zh">列名</para>
/// <para lang="en">Column name</para>
/// </param>
/// <param name="parameters">
/// <para lang="zh">参数字典</para>
/// <para lang="en">Parameters dictionary</para>
/// </param>
public static void AddDisplayAttribute(this DynamicObjectContext context, string columnName, IEnumerable<KeyValuePair<string, object?>> parameters) => context.AddMultipleParameterAttribute<DisplayAttribute>(columnName, parameters);

/// <summary>
/// <para lang="zh">增加多参数自定义标签泛型方法</para>
/// <para lang="en">Add multiple reference custom labels common method</para>
/// </summary>
/// <typeparam name="TAttribute"></typeparam>
/// <param name="context"></param>
/// <param name="columnName"></param>
/// <param name="parameters"></param>
/// <param name="context">
/// <para lang="zh">DynamicObjectContext 实例</para>
/// <para lang="en">DynamicObjectContext instance</para>
/// </param>
/// <param name="columnName">
/// <para lang="zh">列名</para>
/// <para lang="en">Column name</para>
/// </param>
/// <param name="parameters">
/// <para lang="zh">参数字典</para>
/// <para lang="en">Parameters dictionary</para>
/// </param>
public static void AddMultipleParameterAttribute<TAttribute>(this DynamicObjectContext context, string columnName, IEnumerable<KeyValuePair<string, object?>> parameters) where TAttribute : Attribute
{
var type = typeof(TAttribute);
Expand All @@ -79,31 +118,67 @@ public static void AddMultipleParameterAttribute<TAttribute>(this DynamicObjectC
/// <para lang="zh">增加 DisplayNameAttribute 扩展方法</para>
/// <para lang="en">Add DisplayNameAttribute Extension</para>
/// </summary>
/// <param name="context"></param>
/// <param name="columnName"></param>
/// <param name="displayName"></param>
/// <param name="context">
/// <para lang="zh">DynamicObjectContext 实例</para>
/// <para lang="en">DynamicObjectContext instance</para>
/// </param>
/// <param name="columnName">
/// <para lang="zh">列名</para>
/// <para lang="en">Column name</para>
/// </param>
/// <param name="displayName">
/// <para lang="zh">显示名称</para>
/// <para lang="en">Display name</para>
/// </param>
public static void AddDisplayNameAttribute(this DynamicObjectContext context, string columnName, string displayName) => context.AddAttribute<DisplayNameAttribute>(columnName, [typeof(string)], [displayName]);

/// <summary>
/// <para lang="zh">增加 DescriptionAttribute 扩展方法</para>
/// <para lang="en">Add DescriptionAttribute Extension</para>
/// </summary>
/// <param name="context"></param>
/// <param name="columnName"></param>
/// <param name="description"></param>
/// <param name="context">
/// <para lang="zh">DynamicObjectContext 实例</para>
/// <para lang="en">DynamicObjectContext instance</para>
/// </param>
/// <param name="columnName">
/// <para lang="zh">列名</para>
/// <para lang="en">Column name</para>
/// </param>
/// <param name="description">
/// <para lang="zh">描述</para>
/// <para lang="en">Description</para>
/// </param>
public static void AddDescriptionAttribute(this DynamicObjectContext context, string columnName, string description) => context.AddAttribute<DescriptionAttribute>(columnName, [typeof(string)], [description]);

/// <summary>
/// <para lang="zh">增加自定义标签泛型方法</para>
/// <para lang="en">Add Custom Attribute Generic Method</para>
/// </summary>
/// <typeparam name="TAttribute"></typeparam>
/// <param name="context"></param>
/// <param name="columnName"></param>
/// <param name="types"></param>
/// <param name="constructorArgs"></param>
/// <param name="propertyInfos"></param>
/// <param name="propertyValues"></param>
/// <param name="context">
/// <para lang="zh">DynamicObjectContext 实例</para>
/// <para lang="en">DynamicObjectContext instance</para>
/// </param>
/// <param name="columnName">
/// <para lang="zh">列名</para>
/// <para lang="en">Column name</para>
/// </param>
/// <param name="types">
/// <para lang="zh">构造函数参数类型数组</para>
/// <para lang="en">Array of constructor parameter types</para>
/// </param>
/// <param name="constructorArgs">
/// <para lang="zh">构造函数参数值数组</para>
/// <para lang="en">Array of constructor parameter values</para>
/// </param>
/// <param name="propertyInfos">
/// <para lang="zh">属性信息数组</para>
/// <para lang="en">Array of property information</para>
/// </param>
/// <param name="propertyValues">
/// <para lang="zh">属性值数组</para>
/// <para lang="en">Array of property values</para>
/// </param>
public static void AddAttribute<TAttribute>(this DynamicObjectContext context, string columnName, Type[] types, object?[] constructorArgs, PropertyInfo[]? propertyInfos = null, object?[]? propertyValues = null) where TAttribute : Attribute
{
var type = typeof(TAttribute);
Expand All @@ -114,8 +189,14 @@ public static void AddAttribute<TAttribute>(this DynamicObjectContext context, s
/// <para lang="zh">扩展方法将指定模型赋值给 context 实例</para>
/// <para lang="en">Extension method allows assigning a specified model to a context instance</para>
/// </summary>
/// <param name="context"><para lang="zh">DynamicObjectContext 实例</para><para lang="en">DynamicObjectContext instance</para></param>
/// <param name="model"><para lang="zh">模型实例</para><para lang="en">Model instance</para></param>
/// <param name="context">
/// <para lang="zh">DynamicObjectContext 实例</para>
/// <para lang="en">DynamicObjectContext instance</para>
/// </param>
/// <param name="model">
/// <para lang="zh">模型实例</para>
/// <para lang="en">Model instance</para>
/// </param>
public static async Task SetValue(this IDynamicObjectContext context, object model)
{
if (model is IDynamicObject v)
Expand Down
Loading