using Syc.Basic.Web.WMS.Entitys; using Syc.Basic.Web.WMS.IServices; using Syc.Core.Tools; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Volo.Abp.DependencyInjection; using Volo.Abp.Domain.Repositories; using Volo.Abp.Domain.Services; namespace Syc.Basic.Web.ServicesImpl { public class DictionaryService : IDictionaryService, ITransientDependency { private readonly IRepository dictRepository; public DictionaryService(IRepository dictRepository) { this.dictRepository = dictRepository; } public async Task GetAsync(string dictCode, string key) { var dict = (await dictRepository.WithDetailsAsync(e => e.DictionaryItems)).FirstOrDefault(e => e.Key == dictCode && e.Status); if(dict is null) return default(T); var item = dict.DictionaryItems.FirstOrDefault(e => e.Key == key); if(item is null) return default(T); return Newtonsoft.Json.JsonConvert.DeserializeObject(item.Value); } public async Task GetDictAsync(string dictCode) { var dict = await dictRepository.WithDetailsAsync(e => e.DictionaryItems); return dict.FirstOrDefault(e => e.Key == dictCode); } public async Task> GetAsync(string dictCode) { var dict = (await dictRepository.WithDetailsAsync(e => e.DictionaryItems)).FirstOrDefault(e => e.Key == dictCode && e.Status); if (dict is null) return default; return dict.DictionaryItems.Select(e => Newtonsoft.Json.JsonConvert.DeserializeObject(e.Value)).ToList(); } public async Task> GetToKVAsync(string dictCode) { var dict = (await dictRepository.WithDetailsAsync(e => e.DictionaryItems)).FirstOrDefault(e => e.Key == dictCode && e.Status); if (dict is null) return default; return dict.DictionaryItems .Select(e => new KeyValuePair(e.Key, Newtonsoft.Json.JsonConvert.DeserializeObject(e.Value))) .ToDictionary(e => e.Key,e => e.Value); } public Task> GetToKVAsync(string dictCode) => GetToKVAsync(dictCode); } }