예제 #1
0
        public void ContractTest()
        {
            var repo = new MarketRepository();

            string expectedName = "YMH18";

            string expectedSymbol = "YMH18";

            DateTime expectedBeginDate = DateTime.Parse("2017-03-17");

            DateTime expectedEndDate = DateTime.Parse("2018-03-16");

            int exprectedContractId = 1;

            int exprectedMarketId = 1;

            var mockContracts = MarketDataMock.Contracts;

            Felix.Library.BLL.Contract contract = new Felix.Library.BLL.Contract(expectedSymbol);
            Assert.IsTrue(contract.Name.Equals(expectedName));
            Assert.IsTrue(contract.Symbol.Equals(expectedSymbol));
            Assert.IsTrue(contract.BeginDate == expectedBeginDate);
            Assert.IsTrue(contract.EndDate == expectedEndDate);
            Assert.IsTrue(contract.ContractId == exprectedContractId);
            Assert.IsTrue(contract.MarketId == exprectedMarketId);
        }
예제 #2
0
        //ImagesRepository ImageRepos;
        //ProductTypeRepository ProductTypeRepos;

        //MenuConfigRespository MenuConfigRepos;

        //AccountRepository AccountRepos;

        //TestimonialRepository CommentRepo;
        //CategoryRepository CategoryRepo;
        private void CreateRepos()
        {
            mEntities    = new V308CMSEntities();
            ProductRepos = new ProductRepository(mEntities);
            NewsRepos    = new NewsRepository(mEntities);
            MarketRepos  = new MarketRepository(mEntities);
        }
예제 #3
0
        public ActionResult MarketList(int ptype = 0)
        {
            V308CMSEntities  mEntities        = new V308CMSEntities();
            MarketRepository marketRepository = new MarketRepository(mEntities);
            List <Market>    mList            = new List <Market>();

            try
            {
                //lay danh sach nhom tin
                mList          = marketRepository.getMarketByType(100, ptype);
                ViewBag.MkType = ptype;
                //lay danh sach cac tin theo nhom
                return(View(mList));
            }
            catch (Exception ex)
            {
                Console.WriteLine("error :", ex);
                return(Content("<dx></dx>"));
            }
            finally
            {
                mEntities.Dispose();
                marketRepository.Dispose();
            }
        }
예제 #4
0
        public ActionResult ProfileUser()
        {
            V308CMSEntities   mEntities         = new V308CMSEntities();
            MarketRepository  marketRepository  = new MarketRepository(mEntities);
            AccountRepository accountRepository = new AccountRepository(mEntities);
            HeaderPage        mHeaderPage       = new HeaderPage();
            List <Market>     mList;
            Account           mAccount;

            try
            {
                //Check xem dang nhap chưa thi hien thi menu khac
                // && Session["ShopCart"] != null
                if (HttpContext.User.Identity.IsAuthenticated == true && Session["UserId"] != null)
                {
                    //lay thong tin chi tiet user
                    mAccount = accountRepository.LayTinTheoId(Int32.Parse(Session["UserId"].ToString()));
                    mHeaderPage.IsAuthenticated = true;
                    mHeaderPage.Account         = mAccount;
                }
                return(View(mHeaderPage));
            }
            catch (Exception ex)
            {
                return(Content("<dx></dx>"));
            }
            finally
            {
                mEntities.Dispose();
                marketRepository.Dispose();
            }
        }
예제 #5
0
 public MarketController(ILogger <MarketController> logger, MarketRepository market, OhlcService ohlc, AssetService asset)
 {
     _logger = logger;
     _market = market;
     _ohlc   = ohlc;
     _asset  = asset;
 }
예제 #6
0
        public ActionResult Header()
        {
            V308CMSEntities   mEntities         = new V308CMSEntities();
            MarketRepository  marketRepository  = new MarketRepository(mEntities);
            AccountRepository accountRepository = new AccountRepository(mEntities);
            HeaderPage        mHeaderPage       = new HeaderPage();
            List <Market>     mList;
            Account           mAccount;

            try
            {
                //Check xem dang nhap chưa thi hien thi menu khac
                // && Session["ShopCart"] != null
                if (HttpContext.User.Identity.IsAuthenticated == true && Session["UserId"] != null)
                {
                    //lay thong tin chi tiet user
                    mAccount = accountRepository.LayTinTheoId(Int32.Parse(Session["UserId"].ToString()));
                    mHeaderPage.IsAuthenticated = true;
                    mHeaderPage.Account         = mAccount;
                }
                if (Session["ShopCart"] != null)
                {
                    mHeaderPage.ShopCart = (ShopCart)Session["ShopCart"];
                }
                else
                {
                    mHeaderPage.ShopCart = null;
                }
                //lay danh sach nhom tin
                mList = marketRepository.getAll(8);
                mHeaderPage.Market = mList;
                //lay danh sach cac tin theo nhom
                //
                //
                //
                if (Request.Cookies["location"] != null && Request.Cookies["locationname"] != null)
                {
                    ViewBag.location     = Int32.Parse(Request.Cookies["location"].Value);
                    ViewBag.locationname = Ultility.convertValueToDistrict(Int32.Parse(Request.Cookies["location"].Value));
                }
                else
                {
                    ViewBag.location     = 0;
                    ViewBag.locationname = "Hà Nội";
                }
                //
                return(View("Header", mHeaderPage));
            }
            catch (Exception ex)
            {
                Console.Write(ex);
                return(Content("<dx></dx>"));
            }
            finally
            {
                mEntities.Dispose();
                marketRepository.Dispose();
            }
        }
예제 #7
0
        public MarketControllerTests()
        {
            var eventRepo  = new EventRepository();
            var marketRepo = new MarketRepository();
            var betRepo    = new BetRepository();

            this.MarketController = new MarketController(new MarketService(marketRepo, new BetService(betRepo, eventRepo, marketRepo)));
        }
예제 #8
0
        public MarketServiceTests()
        {
            var eventRepo  = new EventRepository();
            var marketRepo = new MarketRepository();
            var betRepo    = new BetRepository();

            MarketService = new MarketService(marketRepo, new BetService(betRepo, eventRepo, marketRepo));
        }
예제 #9
0
        public void Collect(DateTime requestDate)
        {
            var allMarkets = MarketRepository.GetMarkets(true);
            var allPrices  = GetAllPrices(allMarkets, requestDate).ToList();
            var newPrices  = GetNewPrices(allPrices).ToList();

            PriceRepository.Save(newPrices);
        }
예제 #10
0
 public EntityService()
 {
     _cargoService       = new CargoRepository();
     _marketService      = new MarketRepository();
     _orderService       = new OrderRepository();
     _orderStatusService = new OrderStatusRepository();
     _roleService        = new RoleRepository();
     _userService        = new UserRepository();
 }
예제 #11
0
 public UnitOfWork(ArchimedesContext context)
 {
     _context   = context;
     Price      = new PriceRepository(_context);
     Candle     = new CandleRepository(_context);
     Trade      = new TradeRepository(_context);
     Market     = new MarketRepository(_context);
     PriceLevel = new PriceLevelRepository(_context);
     Strategy   = new StrategyRepository(_context);
 }
        public static ApplicationIdentityContext Create()
        {
            reposiotry = new MarketRepository();
            Database   = reposiotry.GetDatabase();

            var users = Database.GetCollection <ApplicationUser>("users");
            var roles = Database.GetCollection <IdentityRole>("roles");

            return(new ApplicationIdentityContext(users, roles));
        }
예제 #13
0
        public Market GetById(string marketId, bool populateBets)
        {
            var marketById = MarketRepository.GetById(marketId);

            if (!populateBets || marketById == null)
            {
                return(marketById);
            }
            marketById.MarketBets = BetService.GetAllByMarketId(marketId);
            return(marketById);
        }
예제 #14
0
        public EventControllerTests()
        {
            var eventRepo  = new EventRepository();
            var marketRepo = new MarketRepository();
            var betRepo    = new BetRepository();

            var betService   = new BetService(betRepo, eventRepo, marketRepo);
            var eventService = new EventService(eventRepo, new MarketService(marketRepo, betService));

            EventController = new EventController(eventService);
        }
예제 #15
0
        public List <Market> GetByEventId(string eventId, bool populateBets)
        {
            List <Market> byEventId = MarketRepository.GetAllByEventId(eventId);

            if (!populateBets)
            {
                return(byEventId);
            }
            byEventId.ForEach(market => { market.MarketBets = BetService.GetAllByMarketId(market.Id); });
            return(byEventId);
        }
예제 #16
0
        private void AggregateTradeStats(ISymbol baseSymbol, ExchangeStatsKeyEnum statsKey, int processLimit) => Task.Run(async() =>
        {
            var fullSymbolCode = ExchangeTradeStatProvider.Convert(baseSymbol.Code, statsKey);

            var logger = LoggerFactory.CreateLogger($"Historian.{Exchange.Name}.{fullSymbolCode}.Worker.TradeStatAggregate");

            using (logger.BeginExchangeScope(Exchange.Name))
            {
                using (logger.BeginSymbolScope(fullSymbolCode))
                {
                    using (logger.BeginExchangeStatsScope(statsKey))
                    {
                        var tradeStatId = (await HistorianRepository.GetLastTradeStatId(Exchange.Name, fullSymbolCode)).GetValueOrDefault(0);

                        while (true)
                        {
                            try
                            {
                                var s = DateTime.Now;

                                var tradeStats = await MarketRepository.GetNextTradeStats(Exchange.Name, baseSymbol.Code, statsKey, tradeStatId, processLimit);

                                if (tradeStats.Count > 0)
                                {
                                    using (var transaction = await StorageTransactionFactory.Begin())
                                    {
                                        await MarketRepository.SaveTradeStatAggregates(transaction, Exchange.Name, fullSymbolCode, tradeStats);

                                        tradeStatId = tradeStats.Max(t => t.TradeStatId);

                                        await HistorianRepository.SetLastTradeStatId(transaction, Exchange.Name, fullSymbolCode, tradeStatId);

                                        await transaction.Commit();
                                    }

                                    var e = DateTime.Now;

                                    logger.LogInformation($"Aggregation up to trade stat id {tradeStatId} took {(e.Subtract(s).TotalMilliseconds)}ms.");
                                }

                                await Task.Delay(5);
                            }
                            catch (Exception ex)
                            {
                                logger.LogCritical(ex, "Aggregation failed.");

                                await Task.Delay(250);
                            }
                        }
                    }
                }
            }
        });
예제 #17
0
        public void CreateBarTest()
        {
            IBar newBar = new Felix.Data.Bar(1, 1, 5, DateTime.Parse("2018-04-15"), 100.00, 20.00, 20.00, 100.00, 100);

            Felix.MarketData.Bar dataBar = Mapper.Map <IBar, Felix.MarketData.Bar>(newBar);

            var repo = new MarketRepository();

            repo.AddBar(dataBar);

            Assert.IsTrue(dataBar.BarId > 0);
        }
예제 #18
0
        public ActionResult Add()
        {
            V308CMSEntities          mEntities         = new V308CMSEntities();
            ProductRepository        productRepository = new ProductRepository(mEntities);
            MarketRepository         marketRepository  = new MarketRepository(mEntities);
            StringBuilder            str              = new StringBuilder();
            List <Market>            mMarketList      = new List <Market>();
            List <ProductType>       mProductTypeList = new List <ProductType>();
            List <MarketProductType> mMarketProductTypeList;

            try
            {
                //lay danh sach cac cua hang
                //lay danh sach cac nhom hang cua cua hang ban
                //them cac san pham vao theo cac nhom cac cua hang
                mMarketList = marketRepository.getAll(18);
                foreach (Market it in mMarketList)
                {
                    //lay danh sach cac nhom san pham
                    mMarketProductTypeList = marketRepository.getAllMarketProductType(it.ID);
                    //lap khap cac kieu nay
                    foreach (MarketProductType ut in mMarketProductTypeList)
                    {
                        //lay danh sach cac nhom con
                        mProductTypeList = productRepository.getProductTypeByParent((int)ut.Parent);
                        //them cac san pham
                        foreach (ProductType ht in mProductTypeList)
                        {
                            for (int i = 0; i < 6; i++)
                            {
                                Product mProduct = new Product()
                                {
                                    Name = "Sản phẩm " + it.ID + "_" + ht.ID, Type = ht.ID, MarketId = it.ID, Image = "/Content/Images/pimg.png", Price = 1000, Summary = "Rau muống " + it.ID, Status = true, Date = DateTime.Now
                                };
                                mEntities.AddToProduct(mProduct);
                            }
                        }
                    }
                    mEntities.SaveChanges();
                }
                //
                return(Content("OK"));;
            }
            catch (Exception ex)
            {
                return(Content(ex.InnerException.ToString()));
            }
            finally
            {
                mEntities.Dispose();
                productRepository.Dispose();
            }
        }
예제 #19
0
 public async Task OnGetAsync()
 {
     try
     {
         MarketRepository repo = new MarketRepository(context);
         Market = await repo.GetMarket();
     }
     catch (Exception ex)
     {
         Message = ex.Message;
     }
 }
예제 #20
0
        public BetControllerTests()
        {
            var betRepo    = new BetRepository();
            var marketRepo = new MarketRepository();

            EventRepository = new EventRepository();
            var betService    = new BetService(betRepo, EventRepository, marketRepo);
            var marketService = new MarketService(marketRepo, betService);
            var eventService  = new EventService(EventRepository, marketService);

            MarketController = new MarketController(marketService);
            EventController  = new EventController(eventService);
            BetController    = new BetController(betService);
        }
예제 #21
0
        /// <summary>
        /// First initialize collections of assets and markets
        /// </summary>
        /// <returns></returns>
        public async Task MarketCollectionInitialize()
        {
            var tickerResult = await BinanceConnector.TickerAllPrices();

            var allSymbols = tickerResult.Select(i => i.Symbol).ToList();

            var newAssets = DefineNewAssets(allSymbols);

            AssetRepository.Save(newAssets);

            var newMarkets = DefineNewMarkets(allSymbols);

            MarketRepository.Save(newMarkets);
        }
예제 #22
0
        public async Task <IActionResult> OnPostDeleteAsync(int id)
        {
            try
            {
                MarketRepository repo = new MarketRepository(context);
                var delete            = await repo.DeleteMarket(id);
            }
            catch (Exception ex)
            {
                Message = ex.Message;
            }

            return(RedirectToPage());
        }
예제 #23
0
        public ActionResult Market(string pMarketName = "")
        {
            V308CMSEntities        mEntities         = new V308CMSEntities();
            ProductRepository      productRepository = new ProductRepository(mEntities);
            MarketRepository       marketRepository  = new MarketRepository(mEntities);
            Market                 mMarket;
            ProductCategoryPageBox mProductCategoryPageBox = new ProductCategoryPageBox();
            ProductType            mProductType            = new ProductType();
            List <ProductType>     mProductTypeList;

            try
            {
                //lay chi tiet ProductType
                //lay danh sach các nhóm sản phẩm con
                //lay cac san pham cua nhom
                mMarket = marketRepository.getByName(pMarketName.Replace('-', ' '));
                if (mMarket != null)
                {
                    mProductCategoryPageBox.List   = new List <ProductCategoryPage>();
                    mProductCategoryPageBox.Market = mMarket;
                    mProductTypeList = productRepository.getProductTypeParent();
                    foreach (ProductType it in mProductTypeList)
                    {
                        ProductCategoryPage mProductPage = new ProductCategoryPage();
                        mProductPage.Name  = it.Name;
                        mProductPage.Value = mMarket.UserName;
                        mProductPage.Id    = (int)it.ID;
                        mProductPage.Image = it.Image;
                        List <Product> mProductList = productRepository.getByPageSizeMarketId(1, 4, (int)it.ID, mMarket.ID, it.Level);
                        mProductPage.List = mProductList;
                        mProductCategoryPageBox.List.Add(mProductPage);
                    }
                }
                return(View(mProductCategoryPageBox));
            }
            catch (Exception ex)
            {
                return(Content(ex.InnerException.ToString()));
            }
            finally
            {
                mEntities.Dispose();
                productRepository.Dispose();
            }
        }
예제 #24
0
        public EMMarkets GetCustomerStops(Guid OrganizationGUID)
        {
            IMarketRepository _IMarketRepository;

            _IMarketRepository = new MarketRepository(new WorkersInMotionDB());

            EMMarkets lresponse = new EMMarkets();

            lresponse.Markets = new List <MobileMarket>();

            List <Market> _Markets = _IMarketRepository.GetMarketByOrganizationGUID(OrganizationGUID, 1).ToList();

            foreach (Market item in _Markets)
            {
                lresponse.Markets.Add(ConvertMarketforMobile(item));
            }
            return(lresponse);
        }
예제 #25
0
        private async Task ReceiveTradeStatsHttp(ISymbol symbol, ExchangeStatsKeyEnum statsKey)
        {
            Logger.LogInformation("Requesting stats");

            var response = await HttpClient.GetStats(symbol, statsKey);

            var tradeStats = response.Data;

            if (response.StatusCode != WrappedResponseStatusCode.Ok)
            {
                var errorCode = !string.IsNullOrEmpty(response.ErrorCode) ? $"Error Code: {response.ErrorCode} Message: " : "";

                Logger.LogWarning($"Unable to get stats: {errorCode}{response.ErrorMessage}");

                return;
            }

            if (tradeStats.Count > 0)
            {
                try
                {
                    var marketTradeStats = tradeStats.Select(s => new MarketTradeStat
                    {
                        Exchange   = Exchange.Name,
                        SymbolCode = symbol.Code,
                        Epoch      = s.Epoch,
                        StatKey    = s.StatKey,
                        Value      = s.Value
                    }).OrderBy(t => t.Epoch.TimestampMilliseconds).ToList();

                    using (var transaction = await StorageTransactionFactory.Begin())
                    {
                        await MarketRepository.SaveTradeStats(transaction, marketTradeStats);

                        await transaction.Commit();
                    }
                }
                catch (Exception ex)
                {
                    Logger.LogError(ex, "Unable to save trade stats.");
                }
            }
        }
예제 #26
0
        public void MarketTest()
        {
            var repo = new MarketRepository();

            string expectedName = "DowJones";

            string expectedExchange = "CBOT";

            decimal expectedTickSize = (decimal)5.00;

            string expectedMonths = "Mar, Jun, Sep, Dec";

            var mockContracts = MarketDataMock.Contracts;

            var mockMetaMappings = MarketDataMock.MetaMappings;

            Felix.Library.BLL.Market market = new Felix.Library.BLL.Market("YM");

            Assert.IsTrue(market.Name.Equals(expectedName));
            Assert.IsTrue(market.Exchange.Equals(expectedExchange));
            Assert.IsTrue(market.TickSize == expectedTickSize);
            Assert.IsTrue(market.Months.Equals(expectedMonths));

            foreach (var contract in market.Contracts)
            {
                var testContract = mockContracts.FirstOrDefault(c => c.ContractId == contract.ContractId);

                Assert.IsTrue(TheseContractsMatch(contract, testContract));
            }

            foreach (var meta in market.MetaMappings)
            {
                var testMeta = mockMetaMappings.FirstOrDefault(c => c.MetaMappingId == meta.MetaMappingId);

                if (testMeta == null)
                {
                    Debugger.Break();
                }

                Assert.IsTrue(TheseMetaMappingsMatch(meta, testMeta));
            }
        }
예제 #27
0
        public ActionResult MarketCategory(string pMarketName = "", int pGroupId = 0, int pPage = 1)
        {
            V308CMSEntities     mEntities         = new V308CMSEntities();
            ProductRepository   productRepository = new ProductRepository(mEntities);
            MarketRepository    marketRepository  = new MarketRepository(mEntities);
            Market              mMarket;
            ProductCategoryPage mProductPage = new ProductCategoryPage();
            ProductType         mProductType = new ProductType();

            try
            {
                //lay chi tiet ProductType
                //lay danh sach các nhóm sản phẩm con
                //lay cac san pham cua nhom
                mMarket      = marketRepository.getByName(pMarketName.Replace('-', ' '));
                mProductType = productRepository.LayLoaiSanPhamTheoId(pGroupId);
                if (mMarket != null)
                {
                    mProductPage.Market = mMarket;
                    mProductPage.Name   = mProductType.Name;
                    mProductPage.Id     = mProductType.ID;
                    mProductPage.Image  = mProductType.Image;
                    List <Product> mProductList = productRepository.getByPageSizeMarketId(1, 25, mProductType.ID, mMarket.ID, mProductType.Level);
                    mProductPage.List = mProductList;
                    if (mProductList.Count < 25)
                    {
                        mProductPage.IsEnd = true;
                    }
                    mProductPage.Page = pPage;
                }
                return(View(mProductPage));
            }
            catch (Exception ex)
            {
                return(Content(ex.InnerException.ToString()));
            }
            finally
            {
                mEntities.Dispose();
                productRepository.Dispose();
            }
        }
예제 #28
0
        public async Task <IActionResult> OnPostAsync()
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(Page());
                }
                MarketRepository repo = new MarketRepository(_db);
                var Add = await repo.SaveMarket(Market);

                var msg = $"Market : {Market.MarketName} added!";
                Message = msg;
            }
            catch (Exception ex)
            {
                Message = ex.Message;
            }
            return(RedirectToPage("/Markets"));
        }
예제 #29
0
        public async Task <IActionResult> OnGetAsync(int id)
        {
            try
            {
                MarketRepository repo = new MarketRepository(_db);
                Market = await repo.GetMarketByID(id);

                //Customer = customer.First();
                if (Market == null)
                {
                    return(RedirectToPage("/Markets"));
                }
            }
            catch (Exception ex)
            {
                Message = ex.Message;
            }

            return(Page());
        }
예제 #30
0
        public async Task <IActionResult> OnPostAsync()
        {
            if (!ModelState.IsValid)
            {
                return(Page());
            }
            _db.Attach(Market).State = EntityState.Modified;

            try
            {
                MarketRepository repo = new MarketRepository(_db);
                var update            = await repo.UpdateMarket(Market);
            }
            catch (DbUpdateConcurrencyException ex)
            {
                Message = ex.Message;
            }

            return(RedirectToPage("./Markets"));
        }