Beispiel #1
0
        public int Add(IIncome income)
        {
            int incomeId = 0;

            //for (int i = 0; i < 2000; i++)
            //{
            //    incomeId = _incomeRepository.AddIncome(income);
            //}

            incomeId = _incomeRepository.AddIncome(income);
            if (incomeId >= 1)
            {
                _incomeMongoRepository.Add(income);
                //this.RefreshMongoDB(income.UserId);
            }
            return(incomeId);
        }
Beispiel #2
0
        public async Task <IActionResult> Checkout(CheckoutViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                //Add income to the database
                ShopIncome income = new ShopIncome();
                income.MoneyIn = viewModel.FullPrice;
                income.Date    = DateTime.Now;
                _incomeRepository.AddIncome(income);

                //Add all items to the database and update stock
                List <ShoppingCartItemModel> Items = _shoppingCartItemRepository.GetItemsByCartId(viewModel.CartId);
                for (int i = 0; i < Items.Count; i++)
                {
                    //Add ordered item
                    Items[i].Product = _productRepository.GetProduct(Items[i].ItemId);
                    UserOrderItemModel user_item = new UserOrderItemModel();
                    user_item.Ammount        = Items[i].Ammount;
                    user_item.ProductName    = Items[i].Product.Name;
                    user_item.ProductOrderId = Items[i].Product.Id;
                    user_item.OrderId        = Items[i].ShoppingCartId;
                    _userOrderItemRepository.AddOrderItem(user_item);

                    //Update stock
                    ProductModel product = _productRepository.GetProduct(Items[i].ItemId);
                    product.Quantity -= user_item.Ammount;
                    _productRepository.Update(product);
                }

                //Get user
                var user = await _userManager.GetUserAsync(HttpContext.User);

                //Create order object
                UserOrderModel user_order = new UserOrderModel();
                user_order.DateOfOrder           = DateTime.Now;
                user_order.OrderId               = viewModel.CartId;
                user_order.AdditionalInformation = viewModel.AdditionalInformation;
                user_order.FullPrice             = viewModel.FullPrice;

                //Add user information
                user_order.UserId           = user.Id;
                user_order.UserCity         = user.City;
                user_order.UserEmail        = user.Email;
                user_order.UserName         = $"{user.FirstName} {user.LastName}";
                user_order.UserPhoneNumber  = user.PhoneNumber;
                user_order.UserPostCode     = user.PostCode;
                user_order.UserStreetAdress = $"{user.StreetName} {user.StreetNumber}";
                user_order.UserCity         = user.City;

                _userOrderRepository.AddOrder(user_order);

                //Update statistics
                _statisticsRepository.UpdateUserOrderMean(viewModel.FullPrice);
                _statisticsRepository.UpdateTotalSalesMoney(viewModel.FullPrice);
                _statisticsRepository.UpdateTotalNumberOfOrders();

                //Update ordering user iformations
                user.OrdersAmmount++;
                user.MoneySpent += viewModel.FullAmmount;
                await _userManager.UpdateAsync(user);

                //Clear cart
                return(RedirectToAction("ClearCartPayment", "Cart"));
            }
            return(View(viewModel));
        }
 public ActionResult AddIncome(Incomes incomes)
 {
     incomes.UserId = User.Identity.GetUserId();
     incomeRepository.AddIncome(incomes);
     return(RedirectToAction("Index"));
 }