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 GetQueryReadOnly() => db.Set(); public virtual async Task Add(DataSourceSystemDto dataSourceSystemDto, CancellationToken token) { var entity = dataSourceSystemDto.Adapt(); await db.Set().AddAsync(entity, token); await db.SaveChangesAsync(token); } public virtual async Task> Get(CancellationToken token) { var query = GetQueryReadOnly(); var entities = await query.ToArrayAsync(token); var dtos = entities.Select(e => e.Adapt()); return dtos; } }