3900-MyRecipes-backup / Server / Controllers / ImageController.cs
ImageController.cs
Raw
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using MyRecipes2.Server.Data;
using MyRecipes2.Server.Models;
using MyRecipes2.Shared;
using System;
using System.Net.Http;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Net;
using System.Net.Http.Headers;

namespace MyRecipes2.Server.Controllers
{
    [ApiController]
    public class ImageController : ControllerBase
    {
        private readonly ApplicationDbContext dbContext;

        public ImageController(ApplicationDbContext dbContext)
        {
            this.dbContext = dbContext;
        }

        [HttpGet]
        [Route("[controller]/{imageId}")]
        public IActionResult Get(int imageId)
        {
            Image image = dbContext.Images.Where(x => x.Id == imageId).First();

            return new FileContentResult(Convert.FromBase64String(image.Base64FileEncode), image.MimeType);
        }

        [HttpPost]
        [Route("[controller]")]
        public async Task<int> Post(UploadImageDto request)
        {
            Image image = new();
            image.MimeType = request.MimeType;
            image.Base64FileEncode = request.Base64FileEncode;
            dbContext.Images.Add(image);
            await dbContext.SaveChangesAsync();

            return image.Id;
        }
    }
}