{ex.Message}");
}
}
+ [HttpGet("Meal/Thumbnail/{id}")]
+ public IActionResult Thumbnail(int id)
+ {
+ var meal = _menuService.GetMealById(id);
+ if (meal == null || meal.ThumbnailData == null)
+ return NotFound();
+
+ return File(meal.ThumbnailData, "image/webp"); // eller image/jpeg om du använder det
+ }
@@ -93,6 +104,8 @@ namespace Aberwyn.Controllers
ImageFile.CopyTo(ms);
meal.ImageData = ms.ToArray();
meal.ImageMimeType = ImageFile.ContentType;
+ meal.ThumbnailData = GenerateThumbnail(ImageFile);
+
}
else
{
@@ -111,8 +124,21 @@ namespace Aberwyn.Controllers
}
+ private byte[] GenerateThumbnail(IFormFile file)
+ {
+ using var image = SixLabors.ImageSharp.Image.Load(file.OpenReadStream());
+ image.Mutate(x => x.Resize(new ResizeOptions
+ {
+ Mode = ResizeMode.Max,
+ Size = new Size(300, 300) // eller vad du vill för korten
+ }));
+ using var ms = new MemoryStream();
+ image.SaveAsWebp(ms); // kräver ImageSharp.Webp-paketet
+ return ms.ToArray();
+ }
+
[HttpPost]
diff --git a/Aberwyn/Controllers/MealMenuApiController.cs b/Aberwyn/Controllers/MealMenuApiController.cs
index 840e42e..d735a32 100644
--- a/Aberwyn/Controllers/MealMenuApiController.cs
+++ b/Aberwyn/Controllers/MealMenuApiController.cs
@@ -33,6 +33,16 @@ namespace Aberwyn.Controllers
return Ok(mealDtos);
}
+ [HttpGet("getWeeklyMenu")]
+ public IActionResult GetWeeklyMenu(int weekNumber, int year)
+ {
+ var menuDtos = _menuService.GetWeeklyMenuDto(weekNumber, year);
+ Console.WriteLine("Hämtar meals: " + menuDtos);
+ return Ok(menuDtos);
+ }
+
+
+
[HttpPut("menu")]
public IActionResult SaveMenu([FromBody] MenuViewModel weeklyMenu)
diff --git a/Aberwyn/Data/MenuService.cs b/Aberwyn/Data/MenuService.cs
index b95ef19..0329304 100644
--- a/Aberwyn/Data/MenuService.cs
+++ b/Aberwyn/Data/MenuService.cs
@@ -1,6 +1,9 @@
// Nya versionen av MenuService med Entity Framework
using Aberwyn.Models;
using Microsoft.EntityFrameworkCore;
+using SixLabors.ImageSharp;
+using SixLabors.ImageSharp.Formats.Webp;
+using SixLabors.ImageSharp.Processing;
using System.Globalization;
using static Aberwyn.Data.SetupService;
@@ -26,6 +29,37 @@ public class MenuService
return new MenuService(context);
}
+ public List