using System.Diagnostics.CodeAnalysis; namespace Diligent.WebAPI.Business.Services { [ExcludeFromCodeCoverage] public class InsuranceCompaniesService : IInsuranceCompaniesService { private readonly DatabaseContext _context; private readonly IMapper _mapper; public InsuranceCompaniesService(DatabaseContext context, IMapper mapper) { _context = context; _mapper = mapper; } public async Task> GetInsuranceCompanies() { var insuranceCompanies = await _context.InsuranceCompanies.ToListAsync(); var insuranceCompaniesDto = _mapper.Map>(insuranceCompanies); return insuranceCompaniesDto; } public async Task GetInsuranceCompany(long id) { var insuranceCompany = await _context.InsuranceCompanies.FindAsync(id); if (insuranceCompany == null) throw new EntityNotFoundException("Insurance company not found"); var insuranceCompanyDto = _mapper.Map(insuranceCompany); return insuranceCompanyDto; } public async Task CreateInsuranceCompany(InsuranceCompanyCreateDto insuranceCompanyCreateDto) { var insuranceCompany = _mapper.Map(insuranceCompanyCreateDto); insuranceCompany.CreatedAtUtc = DateTime.Now; await _context.InsuranceCompanies.AddAsync(insuranceCompany); await _context.SaveChangesAsync(); } public async Task UpdateInsuranceCompany(long insuranceCompanyId, InsuranceCompanyUpdateDto insuranceCompanyUpdateDto) { var insuranceCompany = _context.InsuranceCompanies.Find(insuranceCompanyId); if (insuranceCompany == null) throw new EntityNotFoundException($"Insurance company not found"); _mapper.Map(insuranceCompanyUpdateDto, insuranceCompany); insuranceCompany.UpdatedAtUtc = DateTime.Now; _context.Entry(insuranceCompany).State = EntityState.Modified; await _context.SaveChangesAsync(); } public async Task DeleteInsuranceCompany(long insuranceCompanyId) { var insuranceCompany = _context.InsuranceCompanies.Find(insuranceCompanyId); if (insuranceCompany == null) throw new EntityNotFoundException("Insurance company not found"); _context.Remove(insuranceCompany); await _context.SaveChangesAsync(); } } }