refactor: 增加 QueryPageBase 基类

This commit is contained in:
Argo Zhang 2020-01-09 12:51:18 +08:00
parent 1e3fabc46f
commit aee783baea
No known key found for this signature in database
GPG Key ID: 152E398953DDF19F
2 changed files with 51 additions and 18 deletions

View File

@ -8,13 +8,8 @@ namespace Bootstrap.Pages.Admin.Components
/// <summary>
/// 字典表维护组件
/// </summary>
public class DictsBase : PageBase
public class DictsBase : QueryPageBase<BootstrapDict>
{
/// <summary>
/// 获得/设置 BootstrapDict 实例
/// </summary>
protected BootstrapDict QueryModel { get; set; } = new BootstrapDict() { Define = -1 };
/// <summary>
/// 获得/设置 字典类别集合
/// </summary>
@ -25,12 +20,20 @@ namespace Bootstrap.Pages.Admin.Components
/// </summary>
protected List<SelectedItem> QueryDefine { get; set; } = new List<SelectedItem>(new SelectedItem[] { new SelectedItem() { Text = "全部", Value = "-1", Active = true }, new SelectedItem() { Text = "系统使用", Value = "0" }, new SelectedItem() { Text = "自定义", Value = "1" } });
/// <summary>
/// 获得/设置 查询条件集合
/// </summary>
protected override void OnInitialized()
{
QueryModel.Define = -1;
}
/// <summary>
/// 查询方法
/// </summary>
/// <param name="pageIndex">页码</param>
/// <param name="pageItems">每页显示数据条目数量</param>
protected QueryData<BootstrapDict> Query(int pageIndex, int pageItems)
protected override QueryData<BootstrapDict> Query(int pageIndex, int pageItems)
{
var data = DataAccess.DictHelper.RetrieveDicts();
if (QueryModel.Define != -1) data = data.Where(d => d.Define == QueryModel.Define);
@ -41,23 +44,14 @@ namespace Bootstrap.Pages.Admin.Components
return new QueryData<BootstrapDict>() { Items = items, TotalCount = totalCount, PageIndex = pageIndex, PageItems = pageItems };
}
/// <summary>
/// 新建方法
/// </summary>
/// <returns></returns>
protected BootstrapDict Add()
{
return new BootstrapDict();
}
/// <summary>
/// 保存方法
/// </summary>
protected bool Save(BootstrapDict dict) => DataAccess.DictHelper.Save(dict);
protected override bool Save(BootstrapDict dict) => DataAccess.DictHelper.Save(dict);
/// <summary>
/// 删除方法
/// </summary>
protected bool Delete(IEnumerable<BootstrapDict> items) => DataAccess.DictHelper.Delete(items.Select(item => item.Id ?? ""));
protected override bool Delete(IEnumerable<BootstrapDict> items) => DataAccess.DictHelper.Delete(items.Select(item => item.Id ?? ""));
}
}

View File

@ -0,0 +1,39 @@
using System.Collections.Generic;
using Bootstrap.Admin.Components;
namespace Bootstrap.Pages.Admin.Components
{
/// <summary>
/// 页面组件基类
/// </summary>
public abstract class QueryPageBase<TItem> : PageBase where TItem : class, new()
{
/// <summary>
/// 获得/设置 TItem 实例
/// </summary>
protected TItem QueryModel { get; set; } = new TItem();
/// <summary>
/// 查询方法
/// </summary>
/// <param name="pageIndex">页码</param>
/// <param name="pageItems">每页显示数据条目数量</param>
protected abstract QueryData<TItem> Query(int pageIndex, int pageItems);
/// <summary>
/// 新建方法
/// </summary>
/// <returns></returns>
protected TItem Add() => new TItem();
/// <summary>
/// 保存方法
/// </summary>
protected abstract bool Save(TItem dict);
/// <summary>
/// 删除方法
/// </summary>
protected abstract bool Delete(IEnumerable<TItem> items);
}
}