Exemplo n.º 1
0
        public ActionResult Buy(Buy model)
        {
            var user = _context.Users.Find(User.Identity.GetUserId());

            // Kullanıcı satın alma işlemini yapar ve bir sonuç döner.
            BuyResult result = BuyFromSupplier(model, user);

            // Eğer satın alma olduysa yani tutar > 0 ' ise komisyon alınır ve bu kullanıcının finans geçmişine eklenir.
            if (result.Amount > 0)
            {
                double commission = GetCommission(user, result.Amount);

                FinanceHistory financeHistory = new FinanceHistory()
                {
                    CustomerId = result.CustomerId, Money = result.Amount + commission, Date = DateTime.Now, FinanceTypeId = 4, MoneyTypeId = 1
                };
                _context.FinanceHistories.Add(financeHistory);

                _context.SaveChanges();

                ViewBag.Success = true;
                ViewBag.Message = $"{result.PurchasedQuantity} adet ürün {result.Amount} TL' den alındı. İşlem için {commission} TL ücret kesildi.";
            }
            // Eğer kullanıcı belirli bir fiyattan almak istiyorsa bu istek listesine eklenir.
            else if (model.Price > 0)
            {
                LimitBuy limitBuy = new LimitBuy {
                    Date = DateTime.Now, Price = model.Price, ProductId = model.ProductId, UserId = user.Id, Quantity = model.Quantity
                };
                _context.LimitBuys.Add(limitBuy);

                _context.SaveChanges();

                ViewBag.Success = true;
                ViewBag.Message = $" {model.Quantity} tane ürün {model.Price}TL' den alınmak üzere istek listesine eklendi.";
            }
            else
            {
                ViewBag.Success = false;
                ViewBag.Message = "Para yetmediği için ürün alınamadı.";
            }

            ViewBag.Product = _context.Products.Find(model.ProductId);
            return(View());
        }
Exemplo n.º 2
0
        // Verilen ürün idsine sahip bir istek listesi varsa o ürünü satın almayı dener. Satın aldığı kadar istek listesinden azaltır.
        // Komisyon alır ve işlem geçmişine ekler.
        public void LimitBuy(int productId)
        {
            var limitBuys = _context.LimitBuys.Where(l => l.ProductId == productId).OrderByDescending(l => l.Price);

            foreach (var item in limitBuys)
            {
                var user   = _context.Users.Find(item.UserId);
                var result = BuyFromSupplier(new Buy {
                    ProductId = item.ProductId, Quantity = item.Quantity, Price = item.Price
                }, user);

                if (result.Amount == 0)
                {
                    break;
                }

                if (result.Amount > 0)
                {
                    double commission = GetCommission(user, result.Amount);

                    FinanceHistory financeHistory = new FinanceHistory()
                    {
                        CustomerId = result.CustomerId, Money = result.Amount + commission, Date = DateTime.Now, FinanceTypeId = 4, MoneyTypeId = 1
                    };
                    _context.FinanceHistories.Add(financeHistory);
                }

                item.Quantity -= result.PurchasedQuantity;

                if (item.Quantity == 0)
                {
                    _context.LimitBuys.Remove(item);
                }
            }

            _context.SaveChanges();
        }
Exemplo n.º 3
0
        public ActionResult LoadMoney(int Id, string submit, string rateCode, int Quantity = 0)
        {
            int money;

            switch (submit)
            {
            case "50 TL":
                money = 50;
                break;

            case "100 TL":
                money = 100;
                break;

            case "200 TL":
                money = 200;
                break;

            default:
                money = Quantity;
                break;
            }

            int moneyType = Convert.ToInt32(rateCode);

            FinanceHistory financeHistory = new FinanceHistory()
            {
                CustomerId = Id, Money = money, Date = DateTime.Now, FinanceTypeId = 2, MoneyTypeId = moneyType
            };

            _context.FinanceHistories.Add(financeHistory);

            _context.SaveChanges();

            return(RedirectToAction("Cuzdanim"));
        }