using System.Diagnostics; using AutoMapper; using DMS.Core.Helper; using DMS.Core.Interfaces.Repositories; using DMS.Core.Models; using DMS.Infrastructure.Data; using DMS.Infrastructure.Entities; namespace DMS.Infrastructure.Repositories; public class DeviceRepository : BaseRepository, IDeviceRepository { private readonly IMapper _mapper; public DeviceRepository(IMapper mapper, SqlSugarDbContext dbContext) : base(dbContext) { _mapper = mapper; } public async Task> GetAllAsync() { var dbList = await base.GetAllAsync(); return _mapper.Map>(dbList); } public async Task GetByIdAsync(int id) { var dbDevice = await base.GetByIdAsync(id); return _mapper.Map(dbDevice); } public async Task AddAsync(Device model) { var dbDevice = await base.AddAsync(_mapper.Map(model)); return _mapper.Map(dbDevice, model); } public async Task UpdateAsync(Device model) => await base.UpdateAsync(_mapper.Map(model)); public async Task DeleteAsync(Device model) => await base.DeleteAsync(_mapper.Map(model)); public async Task DeleteAsync(int id) { var stopwatch = new Stopwatch(); stopwatch.Start(); var result = await Db.Deleteable(new DbDevice() { Id = id }) .ExecuteCommandAsync(); stopwatch.Stop(); NlogHelper.Info($"Delete {typeof(DbDevice)},ID={id},耗时:{stopwatch.ElapsedMilliseconds}ms"); return result; } }