using Microsoft.AspNetCore.DataProtection.KeyManagement;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WIDESEAWCS_Core.BaseRepository;
using WIDESEAWCS_ISystemRepository;
using WIDESEAWCS_Model.Models;
namespace WIDESEAWCS_SystemRepository
{
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; }
}
}