using Exam.Application; using Exam.Infrastructure.Data.Entity; using Exam.Insfrastructure.Service.Service; using Exam.Questions; using Exam.Share; using Hotline.Repository.SqlSugar; using Hotline.Repository.SqlSugar.Exam.Interfaces.Questions; using Hotline.Share.Dtos.Questions; using Hotline.Share.Requests.Question; using Mapster; using System.ComponentModel; using XF.Domain.Dependency; namespace Hotline.Application.Exam.Service.Questions { /// /// 关联课件服务 /// [Description("关联课件服务")] public class QuestionSourcewareService : ApiService,IQuestionSourcewareService, IScopeDependency { private readonly IQuestionSourcewareRepository _repository; public QuestionSourcewareService(IQuestionSourcewareRepository repository) : base(repository) { _repository = repository; } public async Task GetAsync(EntityQueryRequest entityQueryRequest) { var entity = await _repository.GetAsync(entityQueryRequest.Id); return entity.Adapt(); } public async Task<(int, List)> GetListAsync(QuestionSourcewarePagedRequest queryRequest) { var query = _repository.Queryable(); var result = await query.Select(m => new QuestionSourcewareViewResponse { QuestionId = m.QuestionId, SourcewareId = m.SourcewareId, Id = m.Id, }).ToListAsync(); var total = await query.CountAsync(); return (total,result); } public async Task> GetPagedListAsync(QuestionSourcewarePagedRequest queryRequest) { var expression = queryRequest.GetExpression(); var questionSourcewareTable = _repository.Queryable().Where(expression); var queryable = questionSourcewareTable.Select((m) => new QuestionSourcewareViewResponse { QuestionId = m.QuestionId, SourcewareId = m.SourcewareId, Id = m.Id, }); var list = await queryable.ToPageListAsync(queryRequest.PageIndex, queryRequest.PageSize); var total = await queryable.CountAsync(); var result = new PageViewResponse { Items = list, Pagination = new Pagination(queryRequest.PageIndex, queryRequest.PageSize, total) }; return result; } } }