public async Task <CustomResponse> AddAsync(Order order)
        {
            var deposit = await _depositRepository.FindByID(order.CustomerCID);

            var product  = _productRepository.FindByID(order.ProductID).Result;
            var site     = _siteRepository.FindByID(order.SiteID).Result;
            var response = CalculateData(order.CustomerCID, product, site, deposit, order.Quantity);

            if (response.Status != 1)
            {
                return(response);
            }

            var orderDetails = (Order)response.ResponseData;

            _context.Orders.Add(orderDetails);
            await _context.SaveChangesAsync();

            // To update the deposit balance of given customer.
            deposit.DepositID  = 1;
            deposit.Balance    = deposit.Balance - orderDetails.OrderedAmount;
            deposit.LastAmount = -orderDetails.OrderedAmount;
            await _depositRepository.Update(deposit);

            return(response);
        }
Example #2
0
        // GET: Sites
        public async Task <IActionResult> Index(int?id, int?status, string customerID)
        {
            var  userID = _userManager.GetUserId(User);
            Site site   = null;

            if (id != null && id > 0)
            {
                site = await siteRepository.FindByID(id);
            }

            if (status != null && status > 0)
            {
                ViewBag.Status  = true;
                ViewBag.Message = status == 1 ? "created" : "updated";
            }
            ViewData["SiteList"] = User.IsInRole("Admin") ? await siteRepository.FindAll() :
                                   await siteRepository.FindAll(userID);

            ViewBag.CustomerID = string.IsNullOrEmpty(customerID) ? userID : customerID;
            return(View(site));
        }