using AutoMapper; using LinqKit; using Ropin.Inspection.Common; using Ropin.Inspection.Common.Accessor.Interface; using Ropin.Inspection.Model; using Ropin.Inspection.Model.Entities; using Ropin.Inspection.Model.ViewModel; using Ropin.Inspection.Repository; using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using System.Text; using System.Threading.Tasks; namespace Ropin.Inspection.Service { public class TpntStoreOrgService : ITpntStoreOrgService { private readonly ITpntStoreOrgRepository _repository; private readonly IMapper _mapper; private readonly IClaimsAccessor _claims; public TpntStoreOrgService(IClaimsAccessor claims, ITpntStoreOrgRepository repository, IMapper mapper) { _repository = repository; _mapper = mapper; _claims = claims; } public async Task CreateOneAsync(TpntStoreOrgViewModel viewModel) { var content = _mapper.Map(viewModel); content.D_CreateOn = DateTime.Now; content.C_CreateBy = _claims.ApiUserId; _repository.Create(content); var result = await _repository.SaveAsync(); if (!result) { throw new Exception("创建失败"); } } public async Task DeleteByOrgStoreCodeAsync(Guid orgCode, string storeCode) { var content = await _repository.DeleteByOrgStoreCodeAsync(orgCode, storeCode); return content; } public async Task CreateOrgStoresAsync(Guid orgCode, IEnumerable storeCodes) { foreach (var item in storeCodes) { _repository.Create(new TPNT_StoreOrg {C_OrgCode= orgCode,C_StoreCode = item,C_CreateBy = _claims.ApiUserId,D_CreateOn = DateTime.Now }); } var result = await _repository.SaveAsync(); if (!result) { throw new Exception("创建失败"); } } public async Task> GetStoresByOrgCodeAsync(TpntStoreSearchModel searchModel) { //return await _repository.GetStoresByOrgCodeAsync(orgCode); //if (_claims.LicenseTypeCode == TsysLicenseType.SYSTEM) //{ // return await _repository.GetAllStoresAsync(); //} //else //{ return await _repository.GetStoresByOrgCodeAsync(searchModel); //} } public async Task> GetStoresOnlyByOrgCodeAsync(Guid orgCode) { //if (!string.IsNullOrEmpty(_claims.OrgTypeCode) && "PARTY_TYPE_005" == _claims.OrgTypeCode) if (_claims.LicenseTypeCode == TsysLicenseType.SYSTEM) { return await _repository.GetAllStoresAsync(); } else { TpntStoreSearchModel searchModel =new TpntStoreSearchModel(); searchModel.orgCode = orgCode; return await _repository.GetStoresByOrgCodeAsync(searchModel); } } public async Task> GetOrgsByStoreCodeAsync(string storeCode) { var content = await _repository.GetOrgsByStoreCodeAsync(storeCode); return content; } public async Task> GetAllAsync() { var pagedList = await _repository.GetAllAsync(); var contentDtoList = _mapper.Map>(pagedList.ToList()); return contentDtoList.ToList(); } //public async Task> GetConditionAsync(TpntStoreOrgSearchModel searchModel) //{ // var predicate = PredicateBuilder.New(true);//查询条件,推荐后台使用这种方式灵活筛选 // #region 添加条件查询 // predicate = predicate.And(i => i.C_Status.Equals("1")); // if (!string.IsNullOrEmpty(searchModel.C_Name)) // { // predicate = predicate.And(i => i.C_Name.Contains(searchModel.C_Name)); // } // #endregion // var list = await _repository.GetPageAsync(predicate, "C_Name,-D_CreateOn", searchModel.IsPagination, searchModel.PageIndex, searchModel.PageSize); // searchModel.TotalCount = list.Totals; // var dtoList = _mapper.Map, List>(list.Rows); // return dtoList; //} public async Task GetByIdAsync(Guid id) { var content = await _repository.GetByIdAsync(id); var contentDto = _mapper.Map(content); return contentDto; } public Task UpdateOneAsync(TpntStoreOrgViewModel viewModel, params string[] fields) { throw new NotImplementedException(); } public Task IsExistAsync(Guid id) { throw new NotImplementedException(); } public Task> GetByConditionAsync(Expression> expression) { throw new NotImplementedException(); } public Task DeleteAsync(Guid id) { throw new NotImplementedException(); } } }