using Microsoft.AspNetCore.DataProtection.KeyManagement; using SqlSugar; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using WIDESEA_Core.BaseRepository; using WIDESEA_IRepository; using WIDESEA_Model.Models; namespace WIDESEA_Repository { public class Sys_DictionaryRepository : RepositoryBase, ISys_DictionaryRepository { public Sys_DictionaryRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage) { } /// /// /// /// /// 是否执行自定义sql /// public IEnumerable GetDictionaries(IEnumerable dicNos, bool executeSql = true) { List Dictionaries = GetAllDictionary(); foreach (var item in Dictionaries.Where(x => dicNos.Contains(x.DicNo))) { if (executeSql) { // 2020.05.01增加根据用户信息加载字典数据源sql string sql = item.DBSql; if (!string.IsNullOrEmpty(sql)) { item.DicList = Query(sql); } } } return Dictionaries; } List Query(string sql) { try { return base.QueryDynamicDataBySql(sql, null).Select(s => new Sys_DictionaryList() { DicName = s.Value, DicValue = s.Key.ToString() }).ToList(); } catch (Exception ex) { throw ex; } } private List GetAllDictionary() { //base.QueryData().ToList(); List _dictionaries = Db.Queryable().Includes(x => x.DicList).Where(x => x.Enable == 1).ToList(); return _dictionaries; } } public class SourceKeyVaule { public object Key { get; set; } public string Value { get; set; } } }