Commit f27d22be authored by Michal Bilanin's avatar Michal Bilanin 🙄
Browse files

refactor: add user id parsing checks

parent ca493e10
Loading
Loading
Loading
Loading
Loading
+12 −3
Original line number Diff line number Diff line
@@ -13,7 +13,10 @@ public class CartController(ICartItemService cartItemService) : Controller
    [HttpGet]
    public async Task<ActionResult> Index()
    {
        int.TryParse(User.FindFirstValue(ClaimTypes.Sid) ?? string.Empty, out var userId);
        if (!int.TryParse(User.FindFirstValue(ClaimTypes.Sid) ?? string.Empty, out var userId))
        {
            return BadRequest();
        }

        var cartItems = await cartItemService.GetCartItemsByUserIdAsync(userId);
        return View(cartItems);
@@ -22,7 +25,10 @@ public class CartController(ICartItemService cartItemService) : Controller
    [HttpPost]
    public async Task<IActionResult> AddToCart(AddToCartDto addToCartDto)
    {
        int.TryParse(User.FindFirstValue(ClaimTypes.Sid) ?? string.Empty, out var userId);
        if (!int.TryParse(User.FindFirstValue(ClaimTypes.Sid) ?? string.Empty, out var userId))
        {
            return BadRequest();
        }

        var success = await cartItemService.AddToCartAsync(addToCartDto, userId);
        if (!success) ViewData[Constants.Keys.ErrorMessage] = "Failed to add item to cart.";
@@ -33,7 +39,10 @@ public class CartController(ICartItemService cartItemService) : Controller
    [HttpPost]
    public async Task<IActionResult> DeleteCartItem(int id)
    {
        int.TryParse(User.FindFirstValue(ClaimTypes.Sid) ?? string.Empty, out var userId);
        if (!int.TryParse(User.FindFirstValue(ClaimTypes.Sid) ?? string.Empty, out var userId))
        {
            return BadRequest();
        }

        var success = await cartItemService.DeleteCartItemByIdAsync(id, userId);
        if (!success) ViewData[Constants.Keys.ErrorMessage] = "Failed to delete item from cart.";
+16 −4
Original line number Diff line number Diff line
@@ -17,7 +17,10 @@ public class OrderController(
    [HttpGet]
    public async Task<ActionResult> Index([FromQuery] PaginationDto pagination)
    {
        int.TryParse(User.FindFirstValue(ClaimTypes.Sid) ?? string.Empty, out var userId);
        if (!int.TryParse(User.FindFirstValue(ClaimTypes.Sid) ?? string.Empty, out var userId))
        {
            return BadRequest();
        }

        var orders = await orderService.GetOrdersByUserIdAsync(userId, pagination);
        return View(orders);
@@ -26,7 +29,10 @@ public class OrderController(
    [HttpGet]
    public async Task<ActionResult> Details(int id)
    {
        int.TryParse(User.FindFirstValue(ClaimTypes.Sid) ?? string.Empty, out var userId);
        if (!int.TryParse(User.FindFirstValue(ClaimTypes.Sid) ?? string.Empty, out var userId))
        {
            return BadRequest();
        }

        var order = await orderService.GetOrderDetailByIdAsync(id);
        if (order is null || order.UserId != userId) return Unauthorized();
@@ -37,7 +43,10 @@ public class OrderController(
    [HttpGet]
    public async Task<ActionResult> Create()
    {
        int.TryParse(User.FindFirstValue(ClaimTypes.Sid) ?? string.Empty, out var userId);
        if (!int.TryParse(User.FindFirstValue(ClaimTypes.Sid) ?? string.Empty, out var userId))
        {
            return BadRequest();
        }

        var cartItems = await cartItemService.GetCartItemsByUserIdAsync(userId);

@@ -47,7 +56,10 @@ public class OrderController(
    [HttpPost]
    public async Task<ActionResult> Create(CreateOrderDto orderDto)
    {
        int.TryParse(User.FindFirstValue(ClaimTypes.Sid) ?? string.Empty, out var userId);
        if (!int.TryParse(User.FindFirstValue(ClaimTypes.Sid) ?? string.Empty, out var userId))
        {
            return BadRequest();
        }
        var cartItems = await cartItemService.GetCartItemsByUserIdAsync(userId);


+20 −5
Original line number Diff line number Diff line
@@ -27,7 +27,10 @@ public class ProductController(
    [HttpGet]
    public async Task<IActionResult> Details(int id)
    {
        int.TryParse(User.FindFirstValue(ClaimTypes.Sid) ?? string.Empty, out var userId);
        if (!int.TryParse(User.FindFirstValue(ClaimTypes.Sid) ?? string.Empty, out var userId))
        {
            return BadRequest();
        }
        var product = await productService.GetProductDetailByIdAsync(id);

        if (product is null) return NotFound();
@@ -49,7 +52,10 @@ public class ProductController(
    [RedirectIfNotAuthenticatedActionFilter]
    public async Task<IActionResult> AddToCart(AddToCartDto addToCartDto)
    {
        int.TryParse(User.FindFirstValue(ClaimTypes.Sid) ?? string.Empty, out var userId);
        if (!int.TryParse(User.FindFirstValue(ClaimTypes.Sid) ?? string.Empty, out var userId))
        {
            return BadRequest();
        }

        var success = await cartItemService.AddToCartAsync(addToCartDto, userId);
        var product = await productService.GetProductDetailByIdAsync(addToCartDto.ProductId);
@@ -64,7 +70,10 @@ public class ProductController(
    [RedirectIfNotAdminActionFilter]
    public async Task<IActionResult> AddToWishlist(int productId)
    {
        int.TryParse(User.FindFirstValue(ClaimTypes.Sid) ?? string.Empty, out var userId);
        if (!int.TryParse(User.FindFirstValue(ClaimTypes.Sid) ?? string.Empty, out var userId))
        {
            return BadRequest();
        }

        await wishListItemService.CreateWishListItemAsync(new WishListItemDto
        {
@@ -81,7 +90,10 @@ public class ProductController(
    {
        if (!ModelState.IsValid) return RedirectToAction(nameof(Details), new { id = reviewDto.ProductId });

        int.TryParse(User.FindFirstValue(ClaimTypes.Sid) ?? string.Empty, out var userId);
        if (!int.TryParse(User.FindFirstValue(ClaimTypes.Sid) ?? string.Empty, out var userId))
        {
            return BadRequest();
        }

        reviewDto.UserId = userId;
        var review = await reviewService.CreateReviewAsync(reviewDto);
@@ -94,7 +106,10 @@ public class ProductController(
    [RedirectIfNotAuthenticatedActionFilter]
    public async Task<IActionResult> DeleteReview(int id)
    {
        int.TryParse(User.FindFirstValue(ClaimTypes.Sid) ?? string.Empty, out var userId);
        if (!int.TryParse(User.FindFirstValue(ClaimTypes.Sid) ?? string.Empty, out var userId))
        {
            return BadRequest();
        }

        var review = await reviewService.GetReviewByIdAsync(id);
        if (review is null || (review.UserId != userId && !User.IsInRole(UserRole.Admin.ToString())))
+8 −2
Original line number Diff line number Diff line
@@ -13,7 +13,10 @@ public class WishlistController(IWishListItemService wishListItemService, ICartI
    [HttpGet]
    public async Task<ActionResult> Index()
    {
        int.TryParse(User.FindFirstValue(ClaimTypes.Sid) ?? string.Empty, out var userId);
        if (!int.TryParse(User.FindFirstValue(ClaimTypes.Sid) ?? string.Empty, out var userId))
        {
            return BadRequest();
        }

        var wishListItems = await wishListItemService.GetWishListItemsByUserIdAsync(userId);
        return View(wishListItems);
@@ -29,7 +32,10 @@ public class WishlistController(IWishListItemService wishListItemService, ICartI

    public async Task<IActionResult> AddToCart(int productId)
    {
        int.TryParse(User.FindFirstValue(ClaimTypes.Sid) ?? string.Empty, out var userId);
        if (!int.TryParse(User.FindFirstValue(ClaimTypes.Sid) ?? string.Empty, out var userId))
        {
            return BadRequest();
        }

        var addToCartDto = new AddToCartDto
        {