47 lines
1.1 KiB
C#
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 });
|
|
}
|
|
} |