littleshop/Areas/Admin/Controllers/OrdersController.cs
2025-08-20 13:20:19 +01:00

47 lines
1.1 KiB
C#

using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using LittleShop.Services;
using LittleShop.DTOs;
namespace LittleShop.Areas.Admin.Controllers;
[Area("Admin")]
[Authorize(Policy = "AdminOnly")]
public class OrdersController : Controller
{
private readonly IOrderService _orderService;
public OrdersController(IOrderService orderService)
{
_orderService = orderService;
}
public async Task<IActionResult> Index()
{
var orders = await _orderService.GetAllOrdersAsync();
return View(orders.OrderByDescending(o => o.CreatedAt));
}
public async Task<IActionResult> Details(Guid id)
{
var order = await _orderService.GetOrderByIdAsync(id);
if (order == null)
{
return NotFound();
}
return View(order);
}
[HttpPost]
public async Task<IActionResult> UpdateStatus(Guid id, UpdateOrderStatusDto model)
{
var success = await _orderService.UpdateOrderStatusAsync(id, model);
if (!success)
{
return NotFound();
}
return RedirectToAction(nameof(Details), new { id });
}
}