117 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			C#
		
	
	
			
		
		
	
	
			117 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			C#
		
	
	
| using AutoMapper;
 | |
| using IRaCIS.Application.Services.BusinessFilter;
 | |
| using IRaCIS.Core.Infra.EFCore;
 | |
| using Microsoft.AspNetCore.Authorization;
 | |
| using Microsoft.AspNetCore.Hosting;
 | |
| using Microsoft.Extensions.Localization;
 | |
| using Panda.DynamicWebApi;
 | |
| using Panda.DynamicWebApi.Attributes;
 | |
| using System.Diagnostics.CodeAnalysis;
 | |
| using IRaCIS.Core.Domain.Share;
 | |
| 
 | |
| namespace IRaCIS.Core.Application
 | |
| {
 | |
| 
 | |
| #pragma warning disable CS8618
 | |
| 
 | |
| 
 | |
|     #region 非泛型版本
 | |
| 
 | |
|     [Authorize, DynamicWebApi, UnifiedApiResultFilter]
 | |
|     public class BaseService : IBaseService, IDynamicWebApi
 | |
|     {
 | |
|         public IMapper _mapper { get; set; }
 | |
| 
 | |
|         public IUserInfo _userInfo { get; set; }
 | |
| 
 | |
|         public IRepository _repository { get; set; }
 | |
| 
 | |
|         public IStringLocalizer _localizer { get; set; }
 | |
| 
 | |
|         public IWebHostEnvironment _hostEnvironment { get; set; }
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
|         public static IResponseOutput Null404NotFound<TEntity>(TEntity? businessObject) where TEntity : class
 | |
|         {
 | |
|             return new ResponseOutput<string>()
 | |
|             .NotOk($"The query object {typeof(TEntity).Name} does not exist , or was deleted by someone else, or an incorrect parameter query caused", code: ApiResponseCodeEnum.DataNotExist);
 | |
|         }
 | |
|     }
 | |
| 
 | |
| 
 | |
|     public interface IBaseService
 | |
|     {
 | |
|         [MemberNotNull(nameof(_mapper))]
 | |
|         public IMapper _mapper { get; set; }
 | |
| 
 | |
|         [MemberNotNull(nameof(_userInfo))]
 | |
|         public IUserInfo _userInfo { get; set; }
 | |
| 
 | |
|         [MemberNotNull(nameof(_repository))]
 | |
|         public IRepository _repository { get; set; }
 | |
| 
 | |
|         [MemberNotNull(nameof(_localizer))]
 | |
|         public IStringLocalizer _localizer { get; set; }
 | |
| 
 | |
|         [MemberNotNull(nameof(_hostEnvironment))]
 | |
|         public IWebHostEnvironment _hostEnvironment { get; set; }
 | |
| 
 | |
|     }
 | |
|     #endregion
 | |
| 
 | |
| 
 | |
|     #region 泛型版本测试
 | |
| 
 | |
| 
 | |
|     public interface IBaseServiceTest<T> where T : Entity
 | |
|     {
 | |
|         [MemberNotNull(nameof(_mapper))]
 | |
|         public IMapper _mapper { get; set; }
 | |
| 
 | |
|         [MemberNotNull(nameof(_userInfo))]
 | |
|         public IUserInfo _userInfo { get; set; }
 | |
| 
 | |
|         [MemberNotNull(nameof(_repository))]
 | |
|         public IRepository _repository { get; set; }
 | |
| 
 | |
|         [MemberNotNull(nameof(_localizer))]
 | |
|         public IStringLocalizer _localizer { get; set; }
 | |
| 
 | |
| 
 | |
|       
 | |
|     }
 | |
| 
 | |
| 
 | |
|     [Authorize, DynamicWebApi, UnifiedApiResultFilter]
 | |
|     public class BaseServiceTest<T> : IBaseServiceTest<T>, IDynamicWebApi where T : Entity
 | |
|     {
 | |
|         public IMapper _mapper { get; set; }
 | |
| 
 | |
|         public IUserInfo _userInfo { get; set; }
 | |
| 
 | |
|         public IRepository _repository { get; set; }
 | |
| 
 | |
|         public IStringLocalizer _localizer { get; set; }
 | |
| 
 | |
|         public static IResponseOutput Null404NotFound<TEntity>(TEntity? businessObject) where TEntity : class
 | |
|         {
 | |
|             return new ResponseOutput<string>()
 | |
|             .NotOk($"The query object {typeof(TEntity).Name} does not exist , or was deleted by someone else, or an incorrect parameter query caused", code: ApiResponseCodeEnum.DataNotExist);
 | |
|         }
 | |
| 
 | |
| 
 | |
|     }
 | |
| 
 | |
| 
 | |
|     #endregion
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| }
 |