159 lines
5.5 KiB
C#
159 lines
5.5 KiB
C#
using Microsoft.Extensions.Localization;
|
||
using Newtonsoft.Json.Linq;
|
||
using System;
|
||
using System.Collections.Generic;
|
||
using System.Linq;
|
||
using System.Text;
|
||
using System.Threading.Tasks;
|
||
using static RoadFlow.Data.Dictionary;
|
||
|
||
namespace RoadFlow.Data
|
||
{
|
||
public interface IDictionary:IRoadFlowRepository<RoadFlow.Model.rf_dictionary>
|
||
{
|
||
/// <summary>
|
||
/// 得到所有下级ID
|
||
/// </summary>
|
||
/// <param name="id"></param>
|
||
/// <param name="isMe">是包含自己</param>
|
||
/// <returns></returns>
|
||
List<string> GetAllChildsId(string id, bool isMe = true);
|
||
|
||
/// <summary>
|
||
/// 根据ID得到所有下级
|
||
/// </summary>
|
||
/// <param name="id"></param>
|
||
/// <param name="isMe">是否包含自己</param>
|
||
/// <returns></returns>
|
||
List<RoadFlow.Model.rf_dictionary> GetAllChilds(string id, bool isMe = false);
|
||
|
||
|
||
|
||
/// <summary>
|
||
/// 根据ID得到下级
|
||
/// </summary>
|
||
/// <param name="id"></param>
|
||
/// <returns></returns>
|
||
List<RoadFlow.Model.rf_dictionary> GetChilds(string id);
|
||
|
||
/// <summary>
|
||
/// 根据唯一代码得到ID
|
||
/// </summary>
|
||
/// <param name="code"></param>
|
||
/// <returns></returns>
|
||
string GetIdByCode(string code);
|
||
|
||
/// <summary>
|
||
/// 得到字典根
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
RoadFlow.Model.rf_dictionary GetRoot();
|
||
|
||
/// <summary>
|
||
/// 判断一个字典是否有下级字典
|
||
/// </summary>
|
||
/// <param name="id"></param>
|
||
/// <returns></returns>
|
||
bool HasChilds(string id);
|
||
|
||
|
||
|
||
/// <summary>
|
||
/// 得到多语言标题
|
||
/// </summary>
|
||
/// <param name="dictionary">字典实体</param>
|
||
/// <param name="language">语言</param>
|
||
/// <returns></returns>
|
||
string GetLanguageTitle(RoadFlow.Model.rf_dictionary dictionary, string language = "");
|
||
|
||
|
||
/// <summary>
|
||
/// 根据ID查询字典标题
|
||
/// </summary>
|
||
/// <param name="id"></param>
|
||
/// <param name="language">语言</param>
|
||
/// <returns></returns>
|
||
string GetTitle(string id, string language = "");
|
||
|
||
|
||
/// <summary>
|
||
/// 按code获取字典项
|
||
/// </summary>
|
||
/// <param name="code"></param>
|
||
/// <returns></returns>
|
||
RoadFlow.Model.rf_dictionary GetOneByCode(string code);
|
||
/// <summary>
|
||
/// 根据字符串得到ValueField
|
||
/// </summary>
|
||
/// <param name="valueField"></param>
|
||
/// <returns></returns>
|
||
public ValueField GetValueField(string valueField);
|
||
|
||
/// <summary>
|
||
/// 根据ID得到选项(返回jarray,vue项目用)
|
||
/// </summary>
|
||
/// <param name="id"></param>
|
||
/// <param name="valueField">值字段,默认id</param>
|
||
/// <param name="value">默认值</param>
|
||
/// <param name="isAllChild">是否显示所有下级</param>
|
||
/// <param name="isSelectParent">是否可以选择上级</param>
|
||
/// <returns></returns>
|
||
public JArray GetArrayOptionsByID(string id, ValueField valueField = ValueField.Id, string value = "", bool isAllChild = true, bool isSelectParent = true);
|
||
|
||
/// <summary>
|
||
/// 根据ID得到所有下级(控件选项)
|
||
/// </summary>
|
||
/// <param name="id">根节点字典id</param>
|
||
/// <param name="valueField">值字段</param>
|
||
/// <param name="isRoot">是否显示根节点</param>
|
||
/// <param name="lang">标题语言</param>
|
||
/// <returns></returns>
|
||
public JArray GetAllChildsArray(string id, ValueField valueField, bool isRoot = false, string lang = "");
|
||
/// <summary>
|
||
/// 根据ID得到选项(返回jarray,vue项目用)
|
||
/// </summary>
|
||
/// <param name="id"></param>
|
||
/// <param name="valueField">值字段,默认id</param>
|
||
/// <param name="value">默认值</param>
|
||
/// <param name="isAllChild">是否显示所有下级</param>
|
||
/// <param name="isSelectParent">是否可以选择上级</param>
|
||
/// <returns></returns>
|
||
public JArray GetArrayComboxsByID(string id, ValueField valueField = ValueField.Id, string value = "", bool isAllChild = true, bool isSelectParent = true);
|
||
|
||
/// <summary>
|
||
/// 得到单选或复选按钮组选项
|
||
/// </summary>
|
||
/// <param name="id"></param>
|
||
/// <param name="valueField">值字段</param>
|
||
/// <returns></returns>
|
||
public JArray GetRadioOrCheckboxItems(string id, ValueField valueField = ValueField.Id);
|
||
|
||
/// <summary>
|
||
/// 得到一个字典下级的最大排序号
|
||
/// </summary>
|
||
/// <param name="id"></param>
|
||
/// <returns></returns>
|
||
public int GetMaxSort(string id);
|
||
|
||
/// <summary>
|
||
/// 检查唯一代码是否重复
|
||
/// </summary>
|
||
/// <param name="id"></param>
|
||
/// <param name="code"></param>
|
||
/// <returns>true 没有重复 false 重复</returns>
|
||
public bool CheckCode(string id, string code);
|
||
/// <summary>
|
||
/// 得到字典根ID
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
public string GetRootId();
|
||
|
||
/// <summary>
|
||
/// 导入数据字典
|
||
/// </summary>
|
||
/// <param name="json"></param>
|
||
/// <param name="localizer">语言包</param>
|
||
public string Import(string json, IStringLocalizer localizer = null);
|
||
}
|
||
}
|