Я много стараюсь для полосы и всего поля, когда нажимайте на заказ после оформления заказа [Закрыто]C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Я много стараюсь для полосы и всего поля, когда нажимайте на заказ после оформления заказа [Закрыто]

Сообщение Anonymous »

Код: Выделить всё

Dear Sir/madam,

Remove error and need stripe to load after and order to be seen in OrderIndex.
using AutoMapper;
using Mango.Services.OrderAPI.Data;
using Mango.Services.OrderAPI.Models;
using Mango.Services.OrderAPI.Models.Dto;
using Mango.Services.OrderAPI.Utility;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;

namespace Mango.Services.OrderAPI.Controllers
{
[Route("api/order")]
[ApiController]
public class OrderAPIController : ControllerBase
{
private readonly AppDbContext _db;
private readonly IMapper _mapper;
private readonly ResponseDto _response;

public OrderAPIController(AppDbContext db, IMapper mapper)
{
_db = db;
_mapper = mapper;
_response = new ResponseDto();
}

[Authorize(Roles = SD.RoleAdmin)]
[HttpGet("GetAllOrders")]
public async Task GetAllOrders()
{
try
{
var orderHeaders = await _db.OrderHeaders
.Include(o => o.OrderDetails)
.OrderByDescending(o => o.OrderHeaderId)
.ToListAsync();

_response.Result = _mapper.Map(orderHeaders);
_response.IsSuccess = true;
}
catch (Exception ex)
{
_response.IsSuccess = false;
_response.Message = ex.Message;
}
return _response;

}

[Authorize]
[HttpGet("GetOrders/{userId}")]
public async Task GetOrders(string userId)

{
try
{
var orderHeaders = await _db.OrderHeaders

.Where(u => u.UserId == userId)

.Include(o => o.OrderDetails)

.OrderByDescending(o => o.OrderHeaderId)

.ToListAsync();

_response.Result = _mapper.Map(orderHeaders);
_response.IsSuccess = true;
}
catch (Exception ex)
{
_response.IsSuccess = false;
_response.Message = ex.Message;

}
return _response;
}

the code where status should appear,any modification and from the Github link where is the error.

[Authorize]

[HttpGet("GetOrder/{orderId}")]

public async Task GetOrder(int orderId)
{
try
{
var orderHeader = await _db.OrderHeaders
.Include(o => o.OrderDetails)
.FirstOrDefaultAsync(o => o.OrderHeaderId == orderId);

if (orderHeader == null)
{
_response.IsSuccess = false;
_response.Message = "Order not found";
return _response;
}

_response.Result = _mapper.Map(orderHeader);
_response.IsSuccess = true;
}
catch (Exception ex)
{
_response.IsSuccess = false;
_response.Message = ex.Message;
}
return _response;
}
}
}
< /code>
код для OrderController.cs: < /p>
using Mango.Web.Models;
using Mango.Web.Service.IService;
using Mango.Web.Utility;

using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;

using System.IdentityModel.Tokens.Jwt;
using System.Linq;

namespace Mango.Web.Controllers
{
[Authorize]
public class OrderController : Controller
{
private readonly IOrderService _orderService;

public OrderController(IOrderService orderService)
{
_orderService = orderService;
}

public IActionResult OrderIndex()
{

return View();
}

public async Task  OrderDetail(int orderId)

{
var userId = User.Claims.FirstOrDefault(u => u.Type ==
< /code>
jwtregisteredclaimnames.sub)?            if (response == null || !response.IsSuccess || response.Result == null)
{
TempData["error"] = "Order not found or failed to retrieve.";
return RedirectToAction(nameof(OrderIndex));
}

var orderHeaderDto = JsonConvert.DeserializeObject(Convert.ToString(response.Result));

if (orderHeaderDto == null)
{

TempData["error"] = "Failed to load order details.";

return RedirectToAction(nameof(OrderIndex));
}

if (!User.IsInRole(SD.RoleAdmin) && userId != orderHeaderDto.UserId)
{

return NotFound();
}

return View(orderHeaderDto);
}

[HttpGet]
public async Task GetAll(string status)
{
IEnumerable list = new List();
string userId = User.Claims.FirstOrDefault(u => u.Type == JwtRegisteredClaimNames.Sub)?.Value ?? "";
ResponseDto? response;

if (User.IsInRole(SD.RoleAdmin))
{
response = await _orderService.GetAllOrders();
}
else
{
response = await _orderService.GetAllOrder(userId);
}

if (response != null && response.IsSuccess && response.Result != null)
{
var jsonString = Convert.ToString(response.Result);
if (!string.IsNullOrEmpty(jsonString))

{
list = JsonConvert.DeserializeObject(jsonString) ?? new List();
}
}
where to add status

if (!string.IsNullOrEmpty(status) && status.ToLower() != "all")
{
status = status.ToLower();
list = status switch
{
"approved" => list.Where(u => u.Status.Equals(SD.Status_Approved, StringComparison.OrdinalIgnoreCase)),
"readyforpickup" => list.Where(u => u.Status.Equals(SD.Status_ReadyForPickup, StringComparison.OrdinalIgnoreCase)),
"cancelled" => list.Where(u => u.Status.Equals(SD.Status_Cancelled, StringComparison.OrdinalIgnoreCase) || u.Status.Equals(SD.Status_Refunded, StringComparison.OrdinalIgnoreCase)),
_ => list
};
}

return Json(new { data = list.OrderByDescending(u => u.OrderHeaderId) });
}
}
}
using Mango.Web.Models;
using Mango.Web.Service;
using Mango.Web.Service.IService;

using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
using System.IdentityModel.Tokens.Jwt;

using System.Security.Claims;

namespace Mango.Web.Controllers
{
[Authorize]
public class CartController : Controller
{
private readonly ICartService _cartService;
private readonly IOrderService _orderService;

public CartController(ICartService cartService, IOrderService orderService)
{
_cartService = cartService;
_orderService = orderService;
}

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

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

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

if (cart == null || cart.CartHeader == null)
{
TempData["error"] = "There was an issue retrieving the cart.";
return RedirectToAction(nameof(CartIndex));
}

if (cartDto?.CartHeader == null)
{
TempData["error"] = "Invalid checkout details.";
return RedirectToAction(nameof(CartIndex));
}

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 || response.Result == null)
{
TempData["error"] = "There was an issue creating the order.";
return View(cart);
}

OrderHeaderDto? orderHeaderDto = JsonConvert.DeserializeObject(Convert.ToString(response.Result));
if (orderHeaderDto == null)
{
TempData["error"] = "Order deserialization failed.";
return View(cart);
}

var domain = Request.Scheme + "://" + Request.Host.Value + "/";
StripeRequestDto stripeRequestDto = new()
{
ApprovedUrl = domain + "cart/Confirmation?orderId=" + orderHeaderDto.OrderHeaderId,
CancelUrl = domain + "cart/checkout",
OrderHeader = orderHeaderDto
};
//StripeSession session to add
var stripeResponse = await _orderService.CreateStripeSession(stripeRequestDto);

if (stripeResponse == null || !stripeResponse.IsSuccess || stripeResponse.Result == null)
{
TempData["error"] = "Stripe session creation failed: " + (stripeResponse?.Message ?? "Unknown error");
return View(cart);
}

StripeRequestDto? stripeResponseResult = JsonConvert.DeserializeObject(Convert.ToString(stripeResponse.Result));

if (stripeResponseResult == null || string.IsNullOrEmpty(stripeResponseResult.StripeSessionUrl))
{
TempData["error"] = "Invalid Stripe session response.";
return View(cart);
}

Response.Headers.Add("Location", stripeResponseResult.StripeSessionUrl);
return new StatusCodeResult(303);

}

public IActionResult Confirmation(int orderId)
{
return View(orderId);
}

public async Task Remove(int cartDetailsId)
{
var userId = User.FindFirstValue(JwtRegisteredClaimNames.Sub);
var response = await _cartService.RemoveFromCartAsync(cartDetailsId);

if (response != null && response.IsSuccess)
{
TempData["success"] = "Item removed successfully.";
return RedirectToAction(nameof(CartIndex));
}

TempData["error"] = "There was an issue removing the item from the cart.";
return View();
}

[HttpPost]
public async Task ApplyCoupon(CartDto cartDto)
{
var response = await _cartService.ApplyCouponAsync(cartDto);

if (response != null && response.IsSuccess)
{
TempData["success"] = "Coupon applied successfully.";
return RedirectToAction(nameof(CartIndex)
< /code>
);
} < /p>
                TempData["error"] = "Failed to apply coupon.";
return View(cartDto);
}

[HttpPost]

public async Task RemoveCoupon(CartDto cartDto)
{
cartDto.CartHeader.CouponCode = "";
var response = await _cartService.ApplyCouponAsync(cartDto);

if (response != null && response.IsSuccess)
{
TempData["success"] = "Coupon removed successfully.";
return RedirectToAction(nameof(CartIndex));
}

TempData["error"] = "Failed to remove coupon.";
return View(cartDto);
}

private async Task LoadCartDtoBasedOnLoggedInUser()
{
var userId = User.FindFirstValue(JwtRegisteredClaimNames.Sub);
var response = await _cartService.GetCartByUserIdAsnyc(userId);

if (response != null && response.IsSuccess && response.Result != null)
{
var cartDto = JsonConvert.DeserializeObject(Convert.ToString(response.Result));
cartDto.CartDetails ??= new List();
cartDto.CartHeader ??= new CartHeaderDto();
return cartDto;
}

return new CartDto
{
CartHeader = new CartHeaderDto(),
CartDetails = new List()
};
}
}
}
When Register Bad_Request.
LinK Github:https://github.com/Thibaut501/Mango.git
awaiting solution,
Awaiting an urgent solution,
Best Regards,

Fabrice

----------

Need to add  all data and information.

Awaiting your reply,

Best Regards,

Fabrice
Your post appears to contain code that is not properly formatted as code. Please indent all code by 4 spaces using the code toolbar button or the CTRL+K keyboard shortcut. For more editing help, click the [?] toolbar icon.

enter code here
Название: сеанс полосы, не загружаясь, и порядок не появляется в OrconIndex после оформления заказа в проекте Mango
Уважаемый сэр/мадам,
Я сталкиваюсь с двумя проблемами в моем проекте Mango asp.net:
После проверки. Сбой. Ниже приведен код контроллера, используемый в Mango.services.ordordapi и Mango.web. < /P>
🔧 Моя цель:
Убедитесь, что сеанс полоска правильно загружается после создания порядка < /p>
Убедитесь, что новый порядок появляется в порядке /orderindex и фильтруется только по статусу (с учетом одобренного, etc) < /p> premers premers < /p> < /p> premers. аутентифицированный пользователь (или все заказы, если администратор)

Подробнее здесь: https://stackoverflow.com/questions/796 ... -after-che
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»