文件内容 IPasteDefaultAppService.cs 6 KB 6034 字符
using PasteApeart.Application.Contracts;
using PasteApeart.Helper;

namespace PasteApeart.Application
{
    /// <summary>
    /// 
    /// </summary>
    public interface IPasteDefaultAppService
    {
        //Func<(string entityName, string id), Task> FuncAfterRemove { get; set; }
        //Func<(string entityName, InputQueryUpdateState input), Task> FuncAfterUpdateState { get; set; }
        //Func<(string actionName, Type dtoType, object dtoObject), Task<VoloModelInfo>> FuncBuildProperty { get; set; }
        //Func<(string actionName, Type entityType, object entityObject), Task> FuncDataSet { get; set; }
        //Func<(string actionName, Type entityType, object entityObject), Task> FuncFilterData { get; set; }
        //Func<string, string> FuncMapperEntityName { get; set; }

        /// <summary>
        /// 
        /// </summary>
        /// <param name="entityName"></param>
        /// <param name="inputString"></param>
        /// <returns></returns>
        Task<dynamic> CreateItemAsync(string entityName, string inputString);

        /// <summary>
        /// 状态变更后 绑定后
        /// </summary>
        /// <param name="entityName"></param>
        /// <param name="input"></param>
        /// <returns></returns>
        Task DefaultAfterUpdateStateAsync(string entityName, InputQueryUpdateState input);

        /// <summary>
        /// 基于对象信息 构建元数据
        /// </summary>
        /// <param name="action"></param>
        /// <param name="dto"></param>
        /// <param name="dtoType"></param>
        /// <param name="listModel"></param>
        /// <returns></returns>
        Task<VoloModelInfo> DefaultBuildPropertyInfo(string action, object dto, Type dtoType, bool listModel = false);

        /// <summary>
        /// 一些默认值的填充 比如填充当前用户等 其实比较适合二次数据加工
        /// </summary>
        /// <param name="entityType"></param>
        /// <param name="obj"></param>
        /// <param name="action"></param>
        /// <returns></returns>
        Task DefaultDataSetExtendAsync(Type entityType, object obj, string action);

        /// <summary>
        /// 
        /// </summary>
        /// <param name="entityType"></param>
        /// <param name="obj"></param>
        /// <param name="action"></param>
        /// <returns></returns>
        Task DefaultFilterDataAsync(Type entityType, object obj, string action);

        /// <summary>
        /// 数据更新后 比如更新后 比如新增后
        /// </summary>
        /// <param name="entityType"></param>
        /// <param name="entityObject"></param>
        /// <param name="inputObject"></param>
        /// <param name="action"></param>
        /// <returns></returns>
        Task DefaultAfterSaveAsync(Type entityType, object entityObject, object inputObject, string action);

        /// <summary>
        /// 
        /// </summary>
        /// <param name="entityName"></param>
        /// <returns></returns>
        string DefaultMapperEntityName(string entityName);
        /// <summary>
        /// 
        /// </summary>
        /// <param name="entityName"></param>
        /// <param name="id"></param>
        /// <returns></returns>
        Task DefaultAfterRemoveAsync(string entityName, string id);
        /// <summary>
        /// 
        /// </summary>
        /// <param name="entityName"></param>
        /// <param name="queryString"></param>
        /// <param name="searchName"></param>
        /// <returns></returns>
        Task<dynamic> Page(string entityName, string queryString, string searchName = "");

        /// <summary>
        /// 复用 按页查询
        /// </summary>
        /// <param name="searchObject"></param>
        /// <param name="entityType"></param>
        /// <param name="searchType"></param>
        /// <param name="page">当前页码,第1页要读取totalCount</param>
        /// <param name="listDtoType"></param>
        /// <returns></returns>
        Task<dynamic> DirectPageAsync(object searchObject, Type entityType, Type searchType, int page, Type listDtoType);

        /// <summary>
        /// 获取新增 元数据
        /// </summary>
        /// <param name="entityName"></param>
        /// <returns></returns>
        Task<VoloModelInfo> ReadAddModel(string entityName);

        /// <summary>
        /// 获取对象详细的元数据
        /// </summary>
        /// <param name="entityName"></param>
        /// <param name="id"></param>
        /// <returns></returns>
        Task<VoloModelInfo> ReadDetailModel(string entityName, string id);

        /// <summary>
        /// 获取对象详细
        /// </summary>
        /// <param name="entityType"></param>
        /// <param name="dtoType"></param>
        /// <param name="id"></param>
        /// <returns></returns>
        Task<object> ReadDetailObjectAsync(Type entityType, Type dtoType, string id);

        /// <summary>
        /// 
        /// </summary>
        /// <param name="entityName"></param>
        /// <param name="searchName"></param>
        /// <returns></returns>
        Task<VoloModelInfo> ReadListModel(string entityName, string searchName = "");
        /// <summary>
        /// 
        /// </summary>
        /// <param name="entityName"></param>
        /// <param name="id"></param>
        /// <returns></returns>
        Task<VoloModelInfo> ReadUpdateModel(string entityName, string id);
        /// <summary>
        /// 
        /// </summary>
        /// <param name="entityName"></param>
        /// <param name="id"></param>
        /// <returns></returns>
        Task<string> Remove(string entityName, string id);
        /// <summary>
        /// 
        /// </summary>
        /// <param name="entityName"></param>
        /// <param name="inputString"></param>
        /// <returns></returns>
        Task<object> UpdateItemAsync(string entityName, string inputString);
        /// <summary>
        /// 
        /// </summary>
        /// <param name="entityName"></param>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<string> UpdateState(string entityName, InputQueryUpdateState input);
    }
}
​ ​