示例#1
0
        // GET: Sites
        public async Task <IActionResult> Index(int?id, int?status, string customerID)
        {
            var     userID      = _userManager.GetUserId(User);
            var     customerCID = string.IsNullOrEmpty(customerID) ? userID : customerID;
            Deposit deposit     = null;

            if (id != null && id > 0)
            {
                deposit = await _depositRepository.FindByID(customerCID);

                deposit.DepositID = 1;
            }

            if (status != null && status > 0)
            {
                ViewBag.Status  = true;
                ViewBag.Message = status == 1 ? "Desposited" : "Updated";
            }
            Deposit depositDetails = await _depositRepository.FindByID(customerCID);

            ViewData["DepositList"] = User.IsInRole("Admin") ? await _depositRepository.FindAll() :
                                      await _depositRepository.FindAll(customerCID);

            ViewBag.CustomerID = customerCID;
            ViewBag.LastAmount = depositDetails == null ? 0 : depositDetails.Balance;
            return(View(deposit));
        }
        public async Task <List <Order> > FindAllAsync(string userID, bool isAdmin)
        {
            userID = isAdmin ? null : userID;
            List <ApplicationUser> applicationUserList = await _context.ApplicationUsers.ToListAsync();

            List <Order> orderList = _context.Orders.ToListAsync().Result.
                                     Select(data => new Order
            {
                CustomerCID    = data.CustomerCID,
                PriceAmount    = data.PriceAmount,
                TansportAmount = data.TansportAmount,
                AdvanceBalance = data.AdvanceBalance
            }).Where(data => data.CustomerCID == userID || userID == null).ToList();

            List <Deposit> depositList = _depositRepository.FindAll().Result.
                                         Select(data => new Deposit
            {
                CustomerID = data.CustomerID,
                Balance    = data.Balance,
            }).Where(data => data.CustomerID == userID || userID == null).ToList();

            var orderedList = from order in orderList
                              join user in applicationUserList on order.CustomerCID equals user.Id
                              join deposit in depositList on order.CustomerCID equals deposit.CustomerID
                              select new Order
            {
                CustomerCID    = order.CustomerCID,
                CustomerName   = user.FirstName + " " + user.LastName,
                PriceAmount    = order.PriceAmount,
                TansportAmount = order.TansportAmount,
                AdvanceBalance = deposit.Balance
            };

            return(orderedList.GroupBy(data => data.CustomerCID)
                   .Select(order => new Order
            {
                CustomerCID = order.First().CustomerCID,
                CustomerName = order.First().CustomerName,
                PriceAmount = order.Sum(data => data.PriceAmount),
                TansportAmount = order.Sum(data => data.TansportAmount),
                AdvanceBalance = order.First().AdvanceBalance,
            }).ToList());
        }