|
@@ -1,122 +0,0 @@
|
|
-using Exam.Infrastructure.Data.Entity;
|
|
|
|
-using Exam.Insfrastructure.Service.Entitys;
|
|
|
|
-using Exam.Insfrastructure.Service.Extensions;
|
|
|
|
-using Exam.Insfrastructure.Service.Interface;
|
|
|
|
-using FluentValidation;
|
|
|
|
-using Mapster;
|
|
|
|
-
|
|
|
|
-namespace Exam.Insfrastructure.Service.Service
|
|
|
|
-{
|
|
|
|
- public class ApiService<T, TActionRequest, TDBContext> : IApiService<TActionRequest,T> where TActionRequest : ActionRequest
|
|
|
|
- where T : class, IEntity<string>, IHasCreationTime, IDataPermission, new()
|
|
|
|
- where TDBContext : SugarUnitOfWork, new()
|
|
|
|
- {
|
|
|
|
- #region ctor
|
|
|
|
- private readonly IExamRepository<T, TDBContext> _repository;
|
|
|
|
-
|
|
|
|
- private AbstractValidator<T> _validator;
|
|
|
|
- public ApiService(IExamRepository<T, TDBContext> repository)
|
|
|
|
- {
|
|
|
|
- _repository = repository;
|
|
|
|
- _validator = _repository.Validator;
|
|
|
|
- }
|
|
|
|
- #endregion
|
|
|
|
-
|
|
|
|
- #region public method
|
|
|
|
- /// <summary>
|
|
|
|
- /// 单表新增
|
|
|
|
- /// </summary>
|
|
|
|
- /// <param name="actionRequest"></param>
|
|
|
|
- /// <param name="cancellationToken"></param>
|
|
|
|
- /// <returns></returns>
|
|
|
|
- public virtual async Task AddAsync(TActionRequest actionRequest, CancellationToken cancellationToken)
|
|
|
|
- {
|
|
|
|
- var entity = actionRequest.Adapt<T>();
|
|
|
|
-
|
|
|
|
- entity.ToInsert(actionRequest);
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- await _repository.AddWithValidateAsync(entity, cancellationToken);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- /// <summary>
|
|
|
|
- /// 单表批量新增
|
|
|
|
- /// </summary>
|
|
|
|
- /// <param name="actionRequests"></param>
|
|
|
|
- /// <param name="cancellationToken"></param>
|
|
|
|
- /// <returns></returns>
|
|
|
|
- public virtual async Task AddAsync(List<TActionRequest> actionRequests, CancellationToken cancellationToken)
|
|
|
|
- {
|
|
|
|
- var entities = actionRequests.Adapt<List<T>>();
|
|
|
|
-
|
|
|
|
- entities.ToInsert(actionRequests);
|
|
|
|
-
|
|
|
|
- await _repository.AddWithValidateAsync(entities, cancellationToken);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- /// <summary>
|
|
|
|
- /// 单表删除
|
|
|
|
- /// </summary>
|
|
|
|
- /// <param name="entityQueryRequest"></param>
|
|
|
|
- /// <param name="cancellationToken"></param>
|
|
|
|
- /// <returns></returns>
|
|
|
|
- public virtual async Task DeleteAsync(EntityQueryRequest entityQueryRequest, CancellationToken cancellationToken)
|
|
|
|
- {
|
|
|
|
- await _repository.DeleteWithValidateAsync(entityQueryRequest,cancellationToken);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- /// <summary>
|
|
|
|
- /// 单表修改
|
|
|
|
- /// </summary>
|
|
|
|
- /// <param name="actionRequest"></param>
|
|
|
|
- /// <param name="cancellationToken"></param>
|
|
|
|
- /// <returns></returns>
|
|
|
|
- public virtual async Task UpdateAsync(TActionRequest actionRequest, CancellationToken cancellationToken)
|
|
|
|
- {
|
|
|
|
- var entity = await _repository.GetAsync(actionRequest.Id);
|
|
|
|
-
|
|
|
|
- entity = actionRequest.Adapt<TActionRequest, T>(entity);
|
|
|
|
-
|
|
|
|
- entity.ToUpdate(actionRequest);
|
|
|
|
-
|
|
|
|
- await _repository.UpdateWithValidateAsync(entity, cancellationToken);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- /// <summary>
|
|
|
|
- /// 单表修改
|
|
|
|
- /// </summary>
|
|
|
|
- /// <param name="actionRequests"></param>
|
|
|
|
- /// <param name="cancellationToken"></param>
|
|
|
|
- /// <returns></returns>
|
|
|
|
- public virtual async Task UpdateAsync(List<TActionRequest> actionRequests, CancellationToken cancellationToken)
|
|
|
|
- {
|
|
|
|
- var ids = actionRequests.Select(x => x.Id).ToList();
|
|
|
|
- var entities = await _repository.QueryAsync(x => ids.Contains(x.Id));
|
|
|
|
-
|
|
|
|
- entities = actionRequests.Adapt<List<TActionRequest>, List<T>>(entities);
|
|
|
|
-
|
|
|
|
- entities.ToUpdate(actionRequests);
|
|
|
|
-
|
|
|
|
- await _repository.UpdateWithValidateAsync(entities, cancellationToken);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- /// <summary>
|
|
|
|
- /// 修改状态
|
|
|
|
- /// </summary>
|
|
|
|
- /// <param name="statusActionRequests"></param>
|
|
|
|
- /// <param name="cancellationToken"></param>
|
|
|
|
- /// <returns></returns>
|
|
|
|
- public async Task UpdateStatus(List<StatusActionRequest> statusActionRequests, CancellationToken cancellationToken)
|
|
|
|
- {
|
|
|
|
- var ids = statusActionRequests.Select(x => x.Id).ToList();
|
|
|
|
- var entities = await _repository.QueryAsync(x => ids.Contains(x.Id));
|
|
|
|
-
|
|
|
|
- entities = statusActionRequests.Adapt<List<StatusActionRequest>, List<T>>(entities);
|
|
|
|
-
|
|
|
|
- entities.ToUpdate(statusActionRequests);
|
|
|
|
-
|
|
|
|
- await _repository.UpdateWithValidateAsync(entities, cancellationToken);
|
|
|
|
- }
|
|
|
|
- #endregion
|
|
|
|
- }
|
|
|
|
-}
|
|
|