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.
kann keine Elemente zum Karren hinzufügen oder die Zählungen für die Mango -Webseite aktualisieren. Services. < /p> [code]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;
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); }
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(); } } } [/code] 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.
Ich habe auf der Website flipkart.com nach einem mobilen Produkt vom Typ „Asus Zenfone 5“ gesucht. Die Suche zeigt viele Produkte an. Ich habe das erste Produkt ausgewählt und in den Warenkorb...
Wenn Sie in OpenCart ein Produkt zum Warenkorb hinzufügen, wird oben auf der Seite eine Benachrichtigung angezeigt. Ich möchte diese Benachrichtigung entfernen, ABER nur auf den Produktseiten.
Ich habe versucht, eine benutzerdefinierte Taste zum Karren für das Dawn -Thema (unter Verwendung von AJAX -Funktionalität) basierend auf den Dev -Notizen für CART -API (
Ich habe die Seite mit dem...
In einem anderen Thread funktionierte die Antwort perfekt, bis WooCommerce aktualisiert wurde.
Dies ist der zugehörige Code:
add_filter('woocommerce_product_single_add_to_cart_text',...
Ich versuche also, die Schaltfläche „In den Warenkorb“ in eine benutzerdefinierte Schaltfläche zu ändern, die mit einer Seite (Partner) verknüpft ist. Ich habe einen Code gefunden, der funktioniert:...