| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- using Microsoft.AspNetCore.Mvc;
- using Diligent.WebAPI.Business.MongoServices;
- using Diligent.WebAPI.Data.Entities;
- using AutoMapper;
- using Diligent.WebAPI.Host.Exceptions;
- using Diligent.WebAPI.Host.MongoDTOs.InsuranceCompanyMongo;
-
- namespace Diligent.WebAPI.Host.MongoControllers
- {
- [ApiVersion("1.0")]
- [ApiController]
- [Route("v{version:apiVersion}/[controller]")]
- public class InsuranceCompanyController:ControllerBase
- {
- private readonly InsuranceCompanyService _insuranceCompanyService;
- private readonly IMapper _mapper;
-
- public InsuranceCompanyController(InsuranceCompanyService insuranceCompanyService,IMapper mapper)
- {
- _insuranceCompanyService = insuranceCompanyService;
- _mapper = mapper;
- }
-
- [HttpGet]
- public async Task<List<InsuranceCompanyReadDTO>> Get()
- {
- var insuranceCompanies = await _insuranceCompanyService.GetAllAsync();
- return _mapper.Map<List<InsuranceCompanyReadDTO>>(insuranceCompanies);
- }
-
-
- [HttpGet("{id:length(24)}")]
- public async Task<ActionResult<InsuranceCompanyReadDTO>> Get(string id)
- {
- var insuranceCompany = await _insuranceCompanyService.GetByIdAsync(id);
-
- if (insuranceCompany is null)
- {
- throw new NotFoundException("Company not found");
- }
-
- return _mapper.Map<InsuranceCompanyReadDTO>(insuranceCompany);
- }
-
- [HttpPost]
- public async Task<ActionResult> Post(InsuranceCompanyCreateDTO insuranceCompanyCreateDTO)
- {
- var insuranceCompany = _mapper.Map<InsuranceCompanyMongo>(insuranceCompanyCreateDTO);
- await _insuranceCompanyService.CreateInsuranceCompany(insuranceCompany);
-
- return CreatedAtAction(nameof(Get), new { id = insuranceCompany.Id }, insuranceCompany);
- }
-
- [HttpPut("{id:length(24)}")]
- public async Task<ActionResult> Update(string id, InsuranceCompanyMongo updatedBook)
- {
- var insuranceCompany = await _insuranceCompanyService.GetByIdAsync(id);
-
- if (insuranceCompany is null)
- {
- throw new NotFoundException("Company not found");
- }
-
- updatedBook.Id = insuranceCompany.Id;
-
- await _insuranceCompanyService.UpdateInsuranceCompany(id, updatedBook);
-
- return Ok();
- }
-
- [HttpDelete("{id:length(24)}")]
- public async Task<ActionResult> Delete(string id)
- {
- var insuranceCompany = await _insuranceCompanyService.GetByIdAsync(id);
-
- if (insuranceCompany is null)
- {
- throw new NotFoundException("Company not found");
- }
-
- await _insuranceCompanyService.DeleteInsuranceCompany(id);
-
- return Ok();
- }
- }
- }
|