Untitled

 avatar
unknown
plain_text
2 years ago
2.6 kB
5
Indexable
using FlFi.Common.DTOs;
using FlFI.Membership.Database.Entities;
using Microsoft.AspNetCore.Mvc;


namespace FlFi.Membership.API.Controllers
{
    [Route("api/[controller]")]
    [ApiController]
    public class FilmGenresController : ControllerBase
    {
        private readonly IDbService _db;
        public FilmGenresController(IDbService db) => _db = db;

        // GET: api/<GenresController>
        [HttpGet]
        public async Task<IResult> Get()
        {
            try
            {
                List<FilmGenreDTO>? filmGenre = await _db.GetReferenceAsync<FilmGenre, FilmGenreDTO>();
                return Results.Ok(filmGenre);
            }
            catch { }
            return Results.NotFound();
        }

        //// GET api/<GenresController>/5
        //[HttpGet("{id}")]
        //public async Task<IResult> Get(int id)
        //{
        //    try
        //    {
        //        //_db.Include<Genre>();
        //        //_db.Include<Director>();
        //        var genre = await _db.SingleAsync<Genre, GenreDTO>(d => d.Id.Equals(id));
        //        if (genre == null) return Results.NotFound();

        //        return Results.Ok(genre);
        //    }
        //    catch (Exception ex) { }
        //    return Results.NotFound();
        //}

        // POST api/<GenresController>
        [HttpPost]

        public async Task<IResult> Post([FromBody] FilmGenreDTO filmGenre)
        {
            try
            {
                if (filmGenre == null) return Results.BadRequest();
                var filmGenres = await _db.AddReferenceAsync<FilmGenre, FilmGenreDTO>(filmGenre);
                var success = await _db.SaveChangesAsync();
                if (!success) return Results.BadRequest();
                return Results.Created("Api/SimilarFilms", filmGenres);
            }
            catch { }
            return Results.BadRequest();
        }

        // DELETE api/<GenresController>/5
        [HttpDelete("{id}")]

        public async Task<IResult> Delete(FilmGenreDTO dto)
        {
            try
            {
                var success = _db.Delete<FilmGenre, FilmGenreDTO>(dto);
                if (!success) return Results.NotFound();
                success = await _db.SaveChangesAsync();
                if (!success) return Results.BadRequest();
                return Results.NoContent();
            }
            catch { }
            return Results.BadRequest();
        }
    }
}

Editor is loading...