namespace Diligent.WebAPI.Business.Services { 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.UtcNow; 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.UtcNow; _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(); } } }