Housewives/Housewives.Api/Controllers/HousewifeController.cs

101 lines
3.0 KiB
C#

using Housewives.Api.Entities;
using Housewives.Api.Extensions;
using Housewives.Api.Repositories.Contracts;
using Housewives.Models.Dtos;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
namespace Housewives.Api.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class HousewifeController : ControllerBase
{
private readonly IHousewifeRepository housewifeRepository;
public HousewifeController(IHousewifeRepository housewifeRepository)
{
this.housewifeRepository = housewifeRepository;
}
[HttpGet]
public async Task<ActionResult<IEnumerable<HousewifeDto>>> GetHousewives()
{
try
{
var housewives = await this.housewifeRepository.GetHousewives();
var quotes = await this.housewifeRepository.GetQuotes();
if (housewives == null || quotes == null)
{
return NotFound();
}
else
{
var housewifeDtos = housewives.ConvertToDto();
return Ok(housewifeDtos);
}
}
catch (Exception)
{
return StatusCode(StatusCodes.Status500InternalServerError,
"Error retrieving data from the database");
}
}
[HttpGet]
[Route(nameof(GetQuotes))]
public async Task<ActionResult<IEnumerable<QuoteDto>>> GetQuotes()
{
try
{
var housewives = await this.housewifeRepository.GetHousewives();
var quotes = await this.housewifeRepository.GetQuotes();
if (housewives == null || quotes == null)
{
return NotFound();
}
else
{
var quoteDtos = quotes.ConvertToDto();
return Ok(quoteDtos);
}
}
catch (Exception)
{
return StatusCode(StatusCodes.Status500InternalServerError,
"Error retrieving data from the database");
}
}
[HttpGet("GetQuotesByHousewife")]
public async Task<ActionResult<IEnumerable<QuoteDto>>> GetQuotesById(int housewifeId)
{
try
{
var quotes = await this.housewifeRepository.GetQuotesById(housewifeId);
if (quotes == null)
{
return NotFound();
}
else
{
var quoteDtos = quotes.ConvertToDto();
return Ok(quoteDtos);
}
}
catch (Exception)
{
return StatusCode(StatusCodes.Status500InternalServerError,
"Error retrieving data from the database");
}
}
}
}