Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

InsurancePoliciesService.cs 2.9KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. namespace Diligent.WebAPI.Business.Services
  2. {
  3. [ExcludeFromCodeCoverage]
  4. public class InsurancePoliciesService : IInsurancePoliciesService
  5. {
  6. private readonly DatabaseContext _context;
  7. private readonly IWebhookPublisherService _webhookPublisher;
  8. private readonly IMapper _mapper;
  9. public InsurancePoliciesService(DatabaseContext context, IWebhookPublisherService webhookPublisher, IMapper mapper)
  10. {
  11. _context = context;
  12. _webhookPublisher = webhookPublisher;
  13. _mapper = mapper;
  14. }
  15. public async Task<List<InsurancePolicyViewDto>> GetInsurancePolicies()
  16. {
  17. var insurancePolicies = await _context.InsurancePolicies
  18. .Include(i => i.Insurer)
  19. .ThenInclude(k => k.InsuranceCompany)
  20. .ToListAsync();
  21. var insurancePoliciesDto = _mapper.Map<List<InsurancePolicyViewDto>>(insurancePolicies);
  22. return insurancePoliciesDto;
  23. }
  24. public async Task<InsurancePolicyViewDto?> GetInsurancePolicy(long id)
  25. {
  26. var insurancePolicy = await _context.InsurancePolicies
  27. .Include(i => i.Insurer)
  28. .ThenInclude(k => k.InsuranceCompany)
  29. .FirstOrDefaultAsync(i => i.Id == id);
  30. if (insurancePolicy == null)
  31. throw new EntityNotFoundException("Insurance policy not found");
  32. var insurancePolicyDto = _mapper.Map<InsurancePolicyViewDto>(insurancePolicy);
  33. return insurancePolicyDto;
  34. }
  35. public async Task CreateInsurancePolicy(InsurancePolicyCreateDto insurancePolicyCreateDto)
  36. {
  37. var insurancePolicy = _mapper.Map<InsurancePolicy>(insurancePolicyCreateDto);
  38. var result = await _context.InsurancePolicies.AddAsync(insurancePolicy);
  39. await _webhookPublisher.PublishAsync("insurancePolicy.created", result);
  40. await _context.SaveChangesAsync();
  41. }
  42. public async Task UpdateInsurancePolicy(long insurancePolicyId, InsurancePolicyUpdateDto insurancePolicyUpdateDto)
  43. {
  44. var insurancePolicy = _context.InsurancePolicies.Find(insurancePolicyId);
  45. if (insurancePolicy == null)
  46. throw new EntityNotFoundException("Insurance policy not found");
  47. _mapper.Map(insurancePolicyUpdateDto, insurancePolicy);
  48. insurancePolicy.UpdatedAtUtc = DateTime.Now;
  49. _context.Entry(insurancePolicy).State = EntityState.Modified;
  50. await _context.SaveChangesAsync();
  51. }
  52. public async Task DeleteInsurancePolicy(long insurancePolicyId)
  53. {
  54. var insurancePolicy = _context.InsurancePolicies.Find(insurancePolicyId);
  55. if (insurancePolicy == null)
  56. throw new EntityNotFoundException("Insurance policy not found");
  57. _context.Remove(insurancePolicy);
  58. await _context.SaveChangesAsync();
  59. }
  60. }
  61. }