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));
        }
예제 #3
0
        public ActionResult Index()
        {
            var purchaseHistory = _purchaseFlowService.ListPurchaseHistory(UserId);

            var purchaseHistoryViewModel = MapperManager.Map <List <PurchaseHistoryItemViewModel> >(purchaseHistory);

            var model = new PurchaseHistoryViewModel
            {
                History = purchaseHistoryViewModel,
            };

            return(View(model));
        }
예제 #4
0
        // 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"));
        }