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<Sys_Dictionary>, ISys_DictionaryRepository 
 | 
    { 
 | 
        public Sys_DictionaryRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage) 
 | 
        { 
 | 
        } 
 | 
  
 | 
        /// <summary> 
 | 
        ///  
 | 
        /// </summary> 
 | 
        /// <param name="dicNos"></param> 
 | 
        /// <param name="executeSql">是否执行自定义sql</param> 
 | 
        /// <returns></returns> 
 | 
        public IEnumerable<Sys_Dictionary> GetDictionaries(IEnumerable<string> dicNos, bool executeSql = true) 
 | 
        { 
 | 
            List<Sys_Dictionary> 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<Sys_DictionaryList> 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<Sys_Dictionary> GetAllDictionary() 
 | 
        { 
 | 
            //base.QueryData().ToList(); 
 | 
            List<Sys_Dictionary> _dictionaries = Db.Queryable<Sys_Dictionary>().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; } 
 | 
    } 
 | 
} 
 |