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
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
}
 |