//--------------------------------------------------------------------
// 此代码由liquid模板自动生成 byzhouhang 20240909
// 生成时间 2025-02-21 07:47:30Z
// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
//--------------------------------------------------------------------
using IRaCIS.Core.Domain.Models;
using Microsoft.AspNetCore.Mvc;
using IRaCIS.Core.Application.Interfaces;
using IRaCIS.Core.Application.ViewModel;
using IRaCIS.Core.Infrastructure.Extention;
using System.Threading.Tasks;
using IRaCIS.Core.Infra.EFCore;
namespace IRaCIS.Core.Application.Service;
///
/// 项目定稿记录
///
///
///
///
///
[ApiExplorerSettings(GroupName = "FileRecord")]
public class TrialFinalRecordService(IRepository _trialFinalRecordRepository,
IMapper _mapper, IUserInfo _userInfo, IStringLocalizer _localizer) : BaseService, ITrialFinalRecordService
{
[HttpPost]
public async Task> GetTrialFinalRecordList(TrialFinalRecordQuery inDto)
{
var trialFinalRecordQueryable = _trialFinalRecordRepository
.Where(x=>x.TrialFileTypeId==inDto.TrialFileTypeId)
.WhereIf(inDto.Name.IsNotNullOrEmpty(),x=>x.Name.Contains(inDto.Name))
.WhereIf(inDto.Version.IsNotNullOrEmpty(), x => x.Version.Contains(inDto.Version))
.WhereIf(inDto.IsAuthorizedView!=null, x => x.IsAuthorizedView==inDto.IsAuthorizedView)
.ProjectTo(_mapper.ConfigurationProvider);
var pageList = await trialFinalRecordQueryable.ToPagedListAsync(inDto);
return pageList;
}
public async Task AddOrUpdateTrialFinalRecord(TrialFinalRecordAddOrEdit addOrEditTrialFinalRecord)
{
// 在此处拷贝automapper 映射
var verifyExp = new EntityVerifyExp()
{
VerifyExp = u => u.Name == addOrEditTrialFinalRecord.Name,
// "当前类型启用的文件类型名称重复"
VerifyMsg = _localizer["TrialFileType_NameRepeat"],
};
var entity = await _trialFinalRecordRepository.InsertOrUpdateAsync(addOrEditTrialFinalRecord, true);
return ResponseOutput.Ok(entity.Id.ToString());
}
[HttpDelete("{trialFinalRecordId:guid}")]
public async Task DeleteTrialFinalRecord(Guid trialFinalRecordId)
{
var success = await _trialFinalRecordRepository.DeleteFromQueryAsync(t => t.Id == trialFinalRecordId, true);
return ResponseOutput.Ok();
}
}