Untitled

 avatar
unknown
plain_text
2 years ago
1.8 kB
3
Indexable
[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...