public IActionResult Index() { // var user = GetLogonUser(); //var userId = "U02"; //user.Id var userId = HttpContext.Session.GetString("UserId"); ViewData["username"] = HttpContext.Session.GetString("username"); ViewData["count"] = HttpContext.Session.GetInt32("count"); List <Order> orders = db.Orders.Where(m => m.UserId == userId).ToList(); //一个人有很多ORDER List <OrderDetail> userOrderDetails = new List <OrderDetail>(); foreach (var order in orders) //一ORDER有很多物品,一个物品有可能有两个激活码 { var tempOrderDetails = db.OrderDetails.Where(m => m.OrderId == order.OrderId).ToList(); userOrderDetails.AddRange(tempOrderDetails); } List <ActivationCode> activationCodes = new List <ActivationCode>(); foreach (var userOrder in userOrderDetails) { var tempActivationCode = db.ActivationCodes.Where(m => m.OrderId == userOrder.OrderId && m.ProductId == userOrder.ProductId).ToList(); activationCodes.AddRange(tempActivationCode); } List <PurchaseHistoryViewModel> viewModels = new List <PurchaseHistoryViewModel>(); foreach (var activationCode in activationCodes) { PurchaseHistoryViewModel viewModel = viewModels.FirstOrDefault(m => m.ProductId == activationCode.ProductId && m.OrderId == activationCode.OrderId); if (viewModel == null) { var tempOrderDetail = db.OrderDetails.FirstOrDefault(m => m.OrderId == activationCode.OrderId && m.ProductId == activationCode.ProductId); var tempProduct = db.Products.FirstOrDefault(m => m.ProductId == activationCode.ProductId); var tempOrder = db.Orders.FirstOrDefault(m => m.OrderId == activationCode.OrderId); var dateString = $"{tempOrder.OrderDate.Day}/{tempOrder.OrderDate.Month}/{tempOrder.OrderDate.Year}"; PurchaseHistoryViewModel tempViewModel = new PurchaseHistoryViewModel { OrderId = activationCode.OrderId, ProductId = activationCode.ProductId, ActivationCodeId = new List <string> { activationCode.ActivationCodeId }, ProductDescription = tempProduct.ProductDescription, ProductPrice = tempProduct.ProductPrice, ProductUrl = tempProduct.ImageURL, ProductName = tempProduct.ProductName, Orderdate = dateString, Quantity = tempOrderDetail.Quantity }; viewModels.Add(tempViewModel); } else { viewModel.ActivationCodeId.Add(activationCode.ActivationCodeId); } } return(View(viewModels)); }
public async Task <IActionResult> History() { var user = await this.userManager.GetUserAsync(this.User); var viewMoodel = new PurchaseHistoryViewModel { Orders = this.orderService.GetAll <OrderBasicViewModel>(user.Id).ToArray(), }; return(this.View(viewMoodel)); }
public ActionResult Index() { var purchaseHistory = _purchaseFlowService.ListPurchaseHistory(UserId); var purchaseHistoryViewModel = MapperManager.Map <List <PurchaseHistoryItemViewModel> >(purchaseHistory); var model = new PurchaseHistoryViewModel { History = purchaseHistoryViewModel, }; return(View(model)); }
// GET: UserItems public async Task <IActionResult> Index() { Users user = new ShopDBContext().Users.FirstOrDefault(e => e.Email == _userManager.GetUserName(User)); if (_signInManager.IsSignedIn(User)) { List <Items> dbItems = _context.Items.ToList(); var userItems = _context.UserItems.Where(e => e.UserId == user.Id); List <Items> items = new List <Items>(); foreach (var userItem in userItems) { items.Add(dbItems.FirstOrDefault(e => e.Id == userItem.ItemId)); } PurchaseHistoryViewModel purchases = new PurchaseHistoryViewModel(); purchases.user = user; purchases.items = items; purchases.userItems = userItems.OrderByDescending(e => e.PurchaseDate).ToList(); return(View(purchases)); } return(RedirectToAction("Index", "Home")); }