Artikel werden nicht aktualisiert und nicht zum Warenkorb hinzugefügtC#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Artikel werden nicht aktualisiert und nicht zum Warenkorb hinzugefügt

Post by Anonymous »

kann keine Elemente zum Karren hinzufügen oder die Zählungen für die Mango -Webseite aktualisieren. Services. < /p>

Code: Select all

using Mango.Web.Models;
using Mango.Web.Service;
using Mango.Web.Service.IService;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
using System.IdentityModel.Tokens.Jwt;

namespace Mango.Web.Controllers
{
public class CartController : Controller
{
private readonly ICartService _cartService;
private readonly IOrderService _orderService;
private readonly ILogger _logger; // Add logger

public CartController(ICartService cartService, IOrderService orderService, ILogger logger)
{
_cartService = cartService;
_orderService = orderService;
_logger = logger; // Assign logger
}

[Authorize]
public async Task CartIndex()
{
return View(await LoadCartDtoBasedOnLoggedInUser());
}

[Authorize]
public async Task Checkout()
{
return View(await LoadCartDtoBasedOnLoggedInUser());
}

[HttpPost]
[ActionName("Checkout")]
public async Task Checkout(CartDto cartDto)
{
CartDto cart = await LoadCartDtoBasedOnLoggedInUser();

if (cart != null)
{
_logger.LogInformation("Updating cart with item count: {Count}", cart.CartDetails?.Count()); // Log the cart item count
}

cart.CartHeader.Phone = cartDto.CartHeader.Phone;
cart.CartHeader.Email = cartDto.CartHeader.Email;
cart.CartHeader.Name = cartDto.CartHeader.Name;

var response = await _orderService.CreateOrder(cart);

if (response != null && response.IsSuccess)
{
_logger.LogInformation("Order successfully created for user ID: {UserId}", cart.CartHeader.UserId);
// Proceed with Stripe session or order confirmation
}
else
{
_logger.LogWarning("Order creation failed for user ID: {UserId}", cart.CartHeader.UserId);
}

return View(cart);
}

public async Task Confirmation(int orderId)
{
return View(orderId);
}

public async Task Remove(int cartDetailsId)
{
var userId = User.Claims.Where(u => u.Type == JwtRegisteredClaimNames.Sub)?.FirstOrDefault()?.Value;
ResponseDto? response = await _cartService.RemoveFromCartAsync(cartDetailsId);
if (response != null && response.IsSuccess)
{
TempData["success"] = "Cart updated successfully";
return RedirectToAction(nameof(CartIndex));
}
return View();
}

[HttpPost]
public async Task ApplyCoupon(CartDto cartDto)
{
ResponseDto? response = await _cartService.ApplyCouponAsync(cartDto);
if (response != null && response.IsSuccess)
{
TempData["success"] = "Cart updated successfully";
return RedirectToAction(nameof(CartIndex));
}
return View();
}

[HttpPost]
public async Task RemoveCoupon(CartDto cartDto)
{
cartDto.CartHeader.CouponCode = "";
ResponseDto? response = await _cartService.ApplyCouponAsync(cartDto);
if (response != null & response.IsSuccess)
{
TempData["success"] = "Cart updated successfully";
return RedirectToAction(nameof(CartIndex));
}
return View();
}

private async Task LoadCartDtoBasedOnLoggedInUser()
{
var userId = User.Claims.Where(u => u.Type == JwtRegisteredClaimNames.Sub)?.FirstOrDefault()?.Value;
ResponseDto? response = await _cartService.GetCartByUserIdAsnyc(userId);
if (response != null &&  response.IsSuccess)
{
CartDto cartDto = JsonConvert.DeserializeObject(Convert.ToString(response.Result));
return cartDto;
}
return new CartDto();
}
}
}
Nur die Warenkorb Elemente werden nicht hinzugefügt, wenn in den Warenkorb hinzugefügt wird, Gutscheine Anzeigen, aber nicht angewendet oder entfernen, und Elemente zählen nicht aktualisiert auch auf CartIndex Seite.
Bitte helfen Sie die Lösung.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post