You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

InsuranceCompanyController.cs 2.8KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. using Microsoft.AspNetCore.Mvc;
  2. using Diligent.WebAPI.Business.MongoServices;
  3. using Diligent.WebAPI.Data.Entities;
  4. using AutoMapper;
  5. using Diligent.WebAPI.Host.Exceptions;
  6. using Diligent.WebAPI.Host.MongoDTOs.InsuranceCompanyMongo;
  7. namespace Diligent.WebAPI.Host.MongoControllers
  8. {
  9. [ApiVersion("1.0")]
  10. [ApiController]
  11. [Route("v{version:apiVersion}/[controller]")]
  12. public class InsuranceCompanyController:ControllerBase
  13. {
  14. private readonly InsuranceCompanyService _insuranceCompanyService;
  15. private readonly IMapper _mapper;
  16. public InsuranceCompanyController(InsuranceCompanyService insuranceCompanyService,IMapper mapper)
  17. {
  18. _insuranceCompanyService = insuranceCompanyService;
  19. _mapper = mapper;
  20. }
  21. [HttpGet]
  22. public async Task<List<InsuranceCompanyReadDTO>> Get()
  23. {
  24. var insuranceCompanies = await _insuranceCompanyService.GetAllAsync();
  25. return _mapper.Map<List<InsuranceCompanyReadDTO>>(insuranceCompanies);
  26. }
  27. [HttpGet("{id:length(24)}")]
  28. public async Task<ActionResult<InsuranceCompanyReadDTO>> Get(string id)
  29. {
  30. var insuranceCompany = await _insuranceCompanyService.GetByIdAsync(id);
  31. if (insuranceCompany is null)
  32. {
  33. throw new NotFoundException("Company not found");
  34. }
  35. return _mapper.Map<InsuranceCompanyReadDTO>(insuranceCompany);
  36. }
  37. [HttpPost]
  38. public async Task<ActionResult> Post(InsuranceCompanyCreateDTO insuranceCompanyCreateDTO)
  39. {
  40. var insuranceCompany = _mapper.Map<InsuranceCompanyMongo>(insuranceCompanyCreateDTO);
  41. await _insuranceCompanyService.CreateInsuranceCompany(insuranceCompany);
  42. return CreatedAtAction(nameof(Get), new { id = insuranceCompany.Id }, insuranceCompany);
  43. }
  44. [HttpPut("{id:length(24)}")]
  45. public async Task<ActionResult> Update(string id, InsuranceCompanyMongo updatedBook)
  46. {
  47. var insuranceCompany = await _insuranceCompanyService.GetByIdAsync(id);
  48. if (insuranceCompany is null)
  49. {
  50. throw new NotFoundException("Company not found");
  51. }
  52. updatedBook.Id = insuranceCompany.Id;
  53. await _insuranceCompanyService.UpdateInsuranceCompany(id, updatedBook);
  54. return Ok();
  55. }
  56. [HttpDelete("{id:length(24)}")]
  57. public async Task<ActionResult> Delete(string id)
  58. {
  59. var insuranceCompany = await _insuranceCompanyService.GetByIdAsync(id);
  60. if (insuranceCompany is null)
  61. {
  62. throw new NotFoundException("Company not found");
  63. }
  64. await _insuranceCompanyService.DeleteInsuranceCompany(id);
  65. return Ok();
  66. }
  67. }
  68. }