|
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using AutoMapper;
- using Microsoft.EntityFrameworkCore;
- using Permission.Entity.DbContext;
- using Permission.Entity.System;
- using Permission.Infrastructure.Repositories;
- using Permission.Infrastructure.WebControls;
- using Permission.Service.DTO.ApiModels;
- using Permission.Service.IServices;
- using Permission.Utils.Validate;
-
- namespace Permission.Service.Services
- {
- public class SysDictDetailService : ISysDictDetailService
- {
- private readonly IMapper _mapper;
- private readonly PermissionContext _dbContext;
- private readonly IBaseRepository<SysDict> _sysDictRepository;
- private readonly IBaseRepository<SysDictDetail> _sysDictDetailRepository;
-
- public SysDictDetailService(IMapper mapper,PermissionContext dbContext, IBaseRepository<SysDict> sysDictRepository, IBaseRepository<SysDictDetail> sysDictDetailRepository)
- {
- this._mapper = mapper;
- this._dbContext = dbContext;
- this._sysDictRepository = sysDictRepository;
- this._sysDictDetailRepository = sysDictDetailRepository;
- }
-
- public bool AddModel(SysDictDetail model)
- {
- try
- {
- model.GuidId = Guid.NewGuid().ToString();
- model.IsEnabled = model.IsEnabled != null;
- model.DeleteMark = false;
- model.CreateTime = DateTime.Now;
- var res = _sysDictDetailRepository.Save(model);
- return res;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
-
- public bool ModifyModel(SysDictDetail model)
- {
- throw new System.NotImplementedException();
- }
-
- public SysDictDetail GetDictDetailByKey(int key)
- {
- throw new System.NotImplementedException();
- }
-
- public Page<SysDictDetail> PageList(int code, string keyword, int pagesize, int pageindex)
- {
- try
- {
- int total = 0;
- if (keyword.IsEmpty())
- {
- var data = _sysDictDetailRepository.PageList(pageindex, pagesize, us => us.OrderBy(ur => ur.SortCode),
- u => u,
- out total,
- u => u.SysDictId == code && u.DeleteMark == false);
-
- return data;
- }
- else
- {
- var data = _sysDictDetailRepository.PageList(pageindex, pagesize, us => us.OrderBy(ur => ur.SortCode),
- u => u,
- out total,
- u => (u.ItemCode.Contains(keyword) || u.ItemName.Contains(keyword)) && u.SysDictId == code && u.DeleteMark == false);
- return data;
- }
- }
- catch (Exception e)
- {
- throw e;
- }
- }
-
- #region 私有方法
-
- private static Func<PermissionContext, int, SysDict> _customerDictById =
- EF.CompileQuery((PermissionContext db, int id) => db.SysDicts
- .Include(u => u.SysDictDetails)
- .FirstOrDefault(c => c.Id == id));
-
- #endregion
-
- #region api
-
- public DictDataModel GetDictDetailListByCodeApi(string code)
- {
- try
- {
- if (!code.IsEmpty())
- {
- var dictModel= _sysDictRepository.Get(m=>m.DictCode==code);
- if (dictModel != null)
- {
- var dictId = dictModel.Id;
- var dictName = dictModel.DictName;
- var dict = _customerDictById(_dbContext, dictId);
- var res = _mapper.Map<List<SysDictDetailApiViewModel>>(dict.SysDictDetails);
- var resultMode = new DictDataModel
- {
- DictTypeId = dictId.ToString(),
- DictTypeName = dictName,
- Items = res.OrderByDescending(s => s.SortCode).ToList()
- };
- return resultMode;
- }
- else
- {
- return null;
- }
- }
- else
- {
- return null;
- }
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
-
- #endregion
-
- }
- }
|