コード例 #1
0
        public void CanGetBuyOrSellFromTraderGeneralPricesList()
        {
            ClearReatedTables();
            TraderPrices tp = new TraderPrices()
            {
                TraderID  = 1,
                BuyPrice  = 100M,
                SellPrice = 200M,
                priceDate = DateTime.Now
            };

            Uow.TradePricesRepo.Add(tp);
            Basket basket = AddTestBasket();

            BasketPrices aPrice = AddPriceToTraderBasket(basket.ID, 1400.0M, 7000.0M, DateTime.Now.AddDays(-1), false);
            BasketPrices bPrice = AddPriceToTraderBasket(basket.ID, 1500.0M, 8000.0M, DateTime.Now.AddDays(-1), false);

            Uow.BasketPricesRepo.Add(aPrice);
            Uow.BasketPricesRepo.Add(bPrice);
            Uow.SaveChanges();

            var state = Uow.BasketPricesRepo.CheckPrices("", "", aPrice);

            Assert.AreEqual(0, state);
        }
コード例 #2
0
        public void CanGetBasketSellPrice()
        {
            ClearReatedTables();
            Basket       b  = AddTestBasket();
            TraderPrices tp = new TraderPrices()
            {
                TraderID  = 1,
                BuyPrice  = 100M,
                SellPrice = 200M,
                priceDate = DateTime.Now
            };

            _uow.TradePricesRepo.Add(tp);

            BasketPrices aPrice = AddPriceToTraderBasket(b.ID, 1400.0M, 7000.0M, DateTime.Now.AddDays(-1), false);
            BasketPrices bPrice = AddPriceToTraderBasket(b.ID, 1500.0M, 8000.0M, DateTime.Now, true);

            _uow.BasketPricesRepo.Add(aPrice);
            _uow.BasketPricesRepo.Add(bPrice);
            _uow.SaveChanges();

            var lastValue = _uow.BasketPricesRepo.GetLastBuySellPriceToday(b.ID, "s");

            Assert.AreEqual(8000.0M, lastValue);
        }
コード例 #3
0
        public void CanAddTraderBasketPrice()
        {
            ClearReatedTables();
            Basket       b = AddTestBasket();
            BasketPrices openingBasketBalance = AddPriceToTraderBasket(b.ID, 12.9M, 12.8M, DateTime.Now, true);

            Uow.BasketPricesRepo.Add(openingBasketBalance);
            Uow.SaveChanges();

            Assert.AreEqual(1, Uow.BasketPricesRepo.GetAll().Count);
        }
コード例 #4
0
        private BasketPrices AddBasketPrice(int basket, decimal buyPrice, decimal sellPrice)
        {
            BasketPrices bp = new BasketPrices()
            {
                BasketID  = basket,
                BuyPrice  = buyPrice,
                SellPrice = sellPrice,
                IsCurrent = true,
                PriceDate = DateTime.Now
            };

            return(bp);
        }
コード例 #5
0
        public void CanGetCurrentBasketPricesByTraderId()
        {
            ClearReatedTables();
            Basket       b      = AddTestBasket();
            BasketPrices aPrice = AddPriceToTraderBasket(b.ID, 1234.0M, 321.5M, DateTime.Now, true);

            Uow.BasketPricesRepo.Add(aPrice);
            Uow.SaveChanges();

            BasketPrices basketPrice = Uow.BasketPricesRepo.FindByBasketId(b.ID);

            Assert.AreEqual(1234.0M, basketPrice.BuyPrice.Value);
        }
コード例 #6
0
        private BasketPrices AddPriceToTraderBasket(int traderBasketId, decimal buyPrice, decimal sellPrice, DateTime date, bool isCurrent)
        {
            BasketPrices bp = new BasketPrices()
            {
                BasketID  = traderBasketId,
                BuyPrice  = buyPrice,
                SellPrice = sellPrice,
                PriceDate = date,
                IsCurrent = isCurrent
            };

            return(bp);
        }
コード例 #7
0
        public void CanSearchTraderPricesByDate()
        {
            ClearReatedTables();
            Basket b = AddTestBasket();

            BasketPrices yesterdayPrice = AddPriceToTraderBasket(b.ID, 1234.0M, 5345.8M, DateTime.Now.AddDays(-1), true);
            BasketPrices todayPrice     = AddPriceToTraderBasket(b.ID, 1234.9M, 5345.8M, DateTime.Now, true);

            Uow.BasketPricesRepo.Add(yesterdayPrice);
            Uow.BasketPricesRepo.Add(todayPrice);
            Uow.SaveChanges();

            Assert.AreEqual(1234.9M, Uow.BasketPricesRepo.SearchByDate(b.ID, DateTime.Now)[0].BuyPrice);
        }
コード例 #8
0
        public void CanGetAllTodayTraderPrices()
        {
            ClearReatedTables();
            Basket b = AddTestBasket();

            BasketPrices yesterdayPrice = AddPriceToTraderBasket(b.ID, 1234.0M, 5345.8M, DateTime.Now.AddDays(-1), true);
            BasketPrices todayPrice     = AddPriceToTraderBasket(b.ID, 1234.9M, 5345.8M, DateTime.Now, true);

            Uow.BasketPricesRepo.Add(yesterdayPrice);
            Uow.BasketPricesRepo.Add(todayPrice);
            Uow.SaveChanges();

            Assert.AreEqual(1234.9M, Uow.BasketPricesRepo.FindByBasketId(b.ID).BuyPrice);
        }
コード例 #9
0
        public void CanGetCurrentBasketPrices()
        {
            ClearReatedTables();
            Basket b = AddTestBasket();

            BasketPrices openingBalance = AddPriceToTraderBasket(b.ID, 12.9M, 12.8M, DateTime.Now, false);
            BasketPrices antoherPrice   = AddPriceToTraderBasket(b.ID, 1234.9M, 5345.8M, DateTime.Now, true);

            Uow.BasketPricesRepo.Add(openingBalance);
            Uow.BasketPricesRepo.Add(antoherPrice);
            Uow.SaveChanges();

            Assert.AreEqual(1234.9M, Uow.BasketPricesRepo.FindByBasketId(b.ID).BuyPrice);
        }
コード例 #10
0
        public void CanGetNewBasketPricesByTraderId()
        {
            ClearReatedTables();
            Basket       b      = AddTestBasket();
            BasketPrices aPrice = AddPriceToTraderBasket(b.ID, 1400.0M, 7000.0M, DateTime.Now, false);
            BasketPrices bPrice = AddPriceToTraderBasket(b.ID, 1200.0M, 3000.0M, DateTime.Now, true);

            Uow.BasketPricesRepo.Add(aPrice);
            Uow.BasketPricesRepo.Add(bPrice);
            Uow.SaveChanges();

            BasketPrices basketPrice = Uow.BasketPricesRepo.FindByBasketId(b.ID);

            Assert.AreEqual(1200.0M, basketPrice.BuyPrice);
        }
コード例 #11
0
        public void CanFindAllTodayBasketPrices()
        {
            ClearReatedTables();
            Basket       b      = AddTestBasket();
            BasketPrices aPrice = AddPriceToTraderBasket(b.ID, 1400.0M, 7000.0M, DateTime.Now, false);
            BasketPrices bPrice = AddPriceToTraderBasket(b.ID, 1500.0M, 8000.0M, DateTime.Now, false);
            BasketPrices cPrice = AddPriceToTraderBasket(b.ID, 1600.0M, 9000.0M, DateTime.Now, true);

            Uow.BasketPricesRepo.Add(aPrice);
            Uow.BasketPricesRepo.Add(bPrice);
            Uow.BasketPricesRepo.Add(cPrice);
            Uow.SaveChanges();
            List <BasketPrices> list = Uow.BasketPricesRepo.FindAllTodayBasketPrices(b.ID);

            Assert.AreEqual(3, list.Count);
        }
コード例 #12
0
        public void CanGetBasketMaxSellPriceUser()
        {
            ClearReatedTables();
            Basket       b      = AddTestBasket();
            BasketPrices aPrice = AddPriceToTraderBasket(b.ID, 1400.0M, 7000.0M, DateTime.Now, false);
            BasketPrices bPrice = AddPriceToTraderBasket(b.ID, 1500.0M, 8000.0M, DateTime.Now, false);
            BasketPrices cPrice = AddPriceToTraderBasket(b.ID, 1600.0M, 9000.0M, DateTime.Now, true);

            Uow.BasketPricesRepo.Add(aPrice);
            Uow.BasketPricesRepo.Add(bPrice);
            Uow.BasketPricesRepo.Add(cPrice);
            Uow.SaveChanges();
            decimal maxSell = Uow.BasketPricesRepo.GetBasketMaxSellPrice(b.ID, DateTime.Now, 3);

            Assert.AreEqual(7000.0M, maxSell);
        }
コード例 #13
0
        private void AddBasketPrices()
        {
            DeleteAllBaskets();


            var basket = AddBasket(1, "BasketOne");

            uow.BasketRepo.Add(basket);
            uow.SaveChanges();
            BasketPrices bp  = AddBasketPrice(basket.ID, 12.01M, 12.02M);
            BasketPrices bp5 = AddBasketPrice(basket.ID, 55.01M, 55.02M);

            uow.BasketPricesRepo.Add(bp);
            bp.IsCurrent = false;
            uow.BasketPricesRepo.Add(bp5);
            uow.SaveChanges();
        }
コード例 #14
0
        public void CanReportNullSellFromTraderBasketPrices()
        {
            ClearReatedTables();
            Uow.TradePricesRepo.DeleteAll();
            Basket basket = AddTestBasket();

            BasketPrices aPrice = AddPriceToTraderBasket(basket.ID, 1400.0M, 7000.0M, DateTime.Now.AddDays(-1), false);
            BasketPrices bPrice = AddPriceToTraderBasket(basket.ID, 1500.0M, 8000.0M, DateTime.Now.AddDays(-1), false);

            Uow.BasketPricesRepo.Add(aPrice);
            Uow.BasketPricesRepo.Add(bPrice);
            Uow.SaveChanges();

            var state = Uow.BasketPricesRepo.CheckPrices("999", "", aPrice);

            Assert.AreEqual(3, state);
        }
コード例 #15
0
        public int CheckPrices(string buyPrice, string sellPrice, BasketPrices objTPrice)
        {
            int state = 0;

            if (buyPrice == "")
            {
                var buy = GetLastBuySellPriceToday(objTPrice.BasketID, "b");
                objTPrice.BuyPrice = buy;
                state = buy == 0M ? 2 : 0;
            }
            if (sellPrice == "")
            {
                var sell = GetLastBuySellPriceToday(objTPrice.BasketID, "s");
                objTPrice.SellPrice = sell;
                state = sell == 0M ? 3 : 0;
            }
            return(state);
        }
コード例 #16
0
        public void CangetSellFromBasketBeforeLookingInGeneralTraderPricesList()
        {
            ClearReatedTables();
            Uow.TradePricesRepo.DeleteAll();
            Basket basket = AddTestBasket();

            BasketPrices aPrice = AddPriceToTraderBasket(basket.ID, 1400.0M, 7000.0M, DateTime.Now.AddDays(-1), false);
            BasketPrices bPrice = AddPriceToTraderBasket(basket.ID, 1500.0M, 8000.0M, DateTime.Now.AddDays(-1), false);
            BasketPrices cPrice = AddPriceToTraderBasket(basket.ID, 1700.0M, 9000.0M, DateTime.Now, true);

            Uow.BasketPricesRepo.Add(aPrice);
            Uow.BasketPricesRepo.Add(bPrice);
            Uow.BasketPricesRepo.Add(cPrice);
            Uow.SaveChanges();

            var state = Uow.BasketPricesRepo.CheckPrices("999", "", aPrice);

            Assert.AreEqual(9000.0M, aPrice.SellPrice);
        }
コード例 #17
0
        public void CanSetCurrentFlag()
        {
            ClearReatedTables();
            Basket basket = AddTestBasket();

            BasketPrices aPrice = AddPriceToTraderBasket(basket.ID, 1400.0M, 7000.0M, DateTime.Now, false);
            BasketPrices bPrice = AddPriceToTraderBasket(basket.ID, 1500.0M, 8000.0M, DateTime.Now, true);
            BasketPrices cPrice = AddPriceToTraderBasket(basket.ID, 1700.0M, 9000.0M, DateTime.Now, true);

            Uow.BasketPricesRepo.Add(aPrice);
            Uow.BasketPricesRepo.Add(bPrice);
            Uow.BasketPricesRepo.Add(cPrice);
            Uow.SaveChanges();
            Uow.BasketPricesRepo.SetCurrentFlag(basket.ID, cPrice.ID);

            DateTime            today = DateTime.Now.Date;
            List <BasketPrices> list  = Uow.BasketPricesRepo.GetAll().Where(x => x.BasketID == basket.ID && x.PriceDate > today && x.IsCurrent).ToList();

            Assert.AreEqual(1, list.Count);
        }
コード例 #18
0
        public ActionResult Create(string sellPrice, string buyPrice)
        {
            if (Session["BasketID"] == null)
            {
                return(RedirectToAction("Index", "Home"));
            }
            //if (Session["traderID"] == null)
            //    return RedirectToAction("Index", "Home");

            int    traderId  = GetLoggedTraderOrUser();//Convert.ToInt32(Session["traderID"].ToString());
            Trader objTrader = _uow.TraderRepo.FindTraderById(traderId);
            int    basketId  = Convert.ToInt32(Session["BasketID"].ToString());

            if (sellPrice == "0.00" || buyPrice == "0.00")
            {
                return(new HttpStatusCodeResult(1, Messages.ZeroPrice));
            }

            BasketPrices basketPrice = new BasketPrices()
            {
                BasketID = basketId, PriceDate = DateTime.Now, IsCurrent = true
            };

            if (string.IsNullOrEmpty(sellPrice) || string.IsNullOrEmpty(buyPrice))
            {
                int objState = _uow.BasketPricesRepo.CheckPrices(buyPrice, sellPrice, basketPrice);

                if (sellPrice == "" && buyPrice == "")
                {
                    if (objState > 0)
                    {
                        return(new HttpStatusCodeResult(3, Messages.NoPriceBefore));
                    }

                    return(new HttpStatusCodeResult(2, Messages.nullablePrices));
                }
                if (objState == 2 || objState == 3)
                {
                    return(new HttpStatusCodeResult(3, Messages.NoPriceBefore));
                }
                else
                {
                    basketPrice.BuyPrice  = buyPrice == "" ? _uow.BasketPricesRepo.GetLastBuySellPriceToday(basketPrice.BasketID, "b") : Convert.ToDecimal(buyPrice);
                    basketPrice.SellPrice = sellPrice == "" ? _uow.BasketPricesRepo.GetLastBuySellPriceToday(basketPrice.BasketID, "s") : Convert.ToDecimal(sellPrice);
                }
            }
            else
            {
                basketPrice.BuyPrice  = Convert.ToDecimal(buyPrice);
                basketPrice.SellPrice = Convert.ToDecimal(sellPrice);
            }
            if (ModelState.IsValid)
            {
                _uow.BasketPricesRepo.Add(basketPrice);
                _uow.BasketPricesRepo.SetCurrentFlag(basketPrice.BasketID, basketPrice.ID);
                _uow.SaveChanges();

                decimal minBuy  = _uow.BasketPricesRepo.GetBasketMinBuyPrice(basketId, DateTime.Now, objTrader.TypeFlag);
                decimal maxSell = _uow.BasketPricesRepo.GetBasketMaxSellPrice(basketId, DateTime.Now, objTrader.TypeFlag);

                IHubContext context = GlobalHost.ConnectionManager.GetHubContext <PricesHub>();
                context.Clients.All.updatePrices();

                return(Json(new { traderprice = basketPrice, maxSell, minBuy }, JsonRequestBehavior.AllowGet));
            }
            else
            {
                return(new HttpStatusCodeResult(404, Messages.UpdateFailed));
            }
        }