Untitled

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

// 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 SimilarFilmsController : ControllerBase
    {

        private readonly IDbService _db;
        public SimilarFilmsController(IDbService db) => _db = db;

        [HttpGet]
        public async Task<IResult> Get()
        {
            try
            {
                List<SimilarFilmsDTO>? SimilarFilms = await _db.GetReferenceAsync<SimilarFilms, SimilarFilmsDTO>();

                return Results.Ok(SimilarFilms);

            }
            catch (Exception ex)
            {

            }
            return Results.NotFound();
        }

        //// GET api/<SimilarFilmsController>/5
        //[HttpGet("{id}")]
        //public async Task<IResult> Get(int id)
        //{
        //    try
        //    {

        //        var similarfilms = await _db.SingleAsync<SimilarFilms, SimilarFilmsDTO>(f => f.Id.Equals(id));
        //        if (similarfilms is null) return Results.NotFound();  //Fråga detta

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

        // POST api/<SimilarFilmsController>
        [HttpPost]
        public async Task<IResult> Post([FromBody] SimilarFilmsDTO similar)
        {
            try
            {
                if (similar == null) return Results.BadRequest(); 

                var similarFilm = await _db.AddReferenceAsync<SimilarFilms, SimilarFilmsDTO>(similar); 

                var success = await _db.SaveChangesAsync(); 

                if (!success) return Results.BadRequest(); 

                return Results.Created("Api/SimilarFilms", similarFilm);
            }
            catch
            {
            }
            return Results.BadRequest();
        }



        // DELETE api/<SimilarFilmsController>/5
        [HttpDelete("{id}")]
        public async Task<IResult> Delete(SimilarFilmsDTO dto)
        {

            try
            {
                var success = _db.Delete<SimilarFilms, SimilarFilmsDTO>(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...