using DD.Persistence.Database.Entity; using DD.Persistence.Models; using DD.Persistence.Repositories; using Mapster; using Microsoft.EntityFrameworkCore; namespace DD.Persistence.Repository.Repositories; public class DataSourceSystemRepository : IDataSourceSystemRepository { protected DbContext db; public DataSourceSystemRepository(DbContext db) { this.db = db; } protected virtual IQueryable<DataSourceSystem> GetQueryReadOnly() => db.Set<DataSourceSystem>(); public virtual async Task Add(DataSourceSystemDto dataSourceSystemDto, CancellationToken token) { var entity = dataSourceSystemDto.Adapt<DataSourceSystem>(); await db.Set<DataSourceSystem>().AddAsync(entity, token); await db.SaveChangesAsync(token); } public virtual async Task<IEnumerable<DataSourceSystemDto>> Get(CancellationToken token) { var query = GetQueryReadOnly(); var entities = await query.ToArrayAsync(token); var dtos = entities.Select(e => e.Adapt<DataSourceSystemDto>()); return dtos; } }