Untitled
unknown
plain_text
3 years ago
2.9 kB
8
Indexable
using FlFi.Common.DTOs;
using FlFI.Membership.Database.Entities;
// For more information on enabling Web API for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860
namespace FlFi.Membership.API.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class FilmsController : ControllerBase
{
private readonly IDbService _db;
public FilmsController(IDbService db) => _db = db;
[HttpGet]
public async Task<IResult> Get()
{
try
{
_db.Include<Director>(); //The Include method in this method appears to be a custom method
//that includes related entities in the query to retrieve data from a database,
//in this case the entity Director is being included. The result is then used
//to populate a list of FilmDTO objects.
List<FilmDTO>? films = await _db.GetAsync<Film, FilmDTO>();
//List<FilmDTO>? films = freeOnly ?
//await _db.GetAsync<Film, FilmDTO>(f => f.Free.Equals(freeOnly)) :
//await _db.GetAsync<Film, FilmDTO>();
return Results.Ok(films);
}
catch (Exception ex)
{
}
return Results.NotFound();
}
// GET api/<FilmsController>/5
[HttpGet("{id}")]
public async Task<IResult> Get(int id)
{
try
{
_db.Include<Director>();
_db.Include<Genre>();
var film = await _db.SingleAsync<Film, FilmDTO>(f => f.Id.Equals(id));
return Results.Ok(film);
}
catch (Exception ex)
{
}
return Results.NotFound();
}
// POST api/<FilmsController>
[HttpPost]
public async Task<IResult> Post([FromBody] FilmEditDTO dto)
{
try
{
if (dto == null) return Results.BadRequest();
var film = await _db.AddAsync<Film, FilmCreateDTO>(dto);
var success = await _db.SaveChangesAsync();
if (!success) return Results.BadRequest();
return Results.Created(_db.GetURI<Film>(film), film);
}
catch (Exception ex)
{
}
return Results.BadRequest();
}
// PUT api/<FilmsController>/5
[HttpPut("{id}")]
public void Put(int id, [FromBody] string value)
{
}
// DELETE api/<FilmsController>/5
[HttpDelete("{id}")]
public void Delete(int id)
{
}
}
}
Editor is loading...