Ejemplo n.º 1
0
        /// <summary>
        /// Method to play the simulation and open the market.
        /// </summary>
        /// <returns></returns>
        public async Task PlayAsync()
        {
            TickerViewModel.OpenMarket();

            await _pusher.TriggerAsync(
                "stockimulate",
                "open-market",
                new { });

            if (_dayNumber == 0)
            {
                var tradingDay = _tradingDays[SimulationMode.ToString()].FirstOrDefault(t => t.Day == 0);
                if (tradingDay == null)
                {
                    return;
                }

                foreach (var security in _securities)
                {
                    security.Price += tradingDay.Effects[security.Symbol];
                    await _securityRepository.UpdateAsync(security);
                }

                await UpdateMarketAsync(tradingDay);
            }

            SimulationState = SimulationState.Playing;

            AppSettings.UpdateReportsEnabled(false);

            _timer.Start();
        }
Ejemplo n.º 2
0
        public ActionResult DetailTicker(long tickerId)
        {
            try {
                long Packageid        = 0;
                long UserId           = long.Parse(User.Identity.GetUserId());
                User ObjectCurentUser = cms_db.GetObjUserByIdNoAsync(UserId);


                if (User.IsInRole("AdminUser") || User.IsInRole("devuser") || User.IsInRole("supperadmin") || User.IsInRole("Mod"))
                {
                    Packageid = 5;
                }
                else
                {
                    Packageid = ObjectCurentUser.PackageId.Value;
                }
                if (cms_db.CheckTickerUserPackage(tickerId, UserId, Packageid))
                {
                    long            UID     = long.Parse(User.Identity.GetUserId());
                    TickerViewModel model   = new TickerViewModel();
                    Ticker          mainObj = cms_db.GetObjTicker(tickerId);
                    model._MainObj = mainObj;

                    List <Ticker> lsttmpSameTicker = new List <Ticker>();
                    model.lstsameTickers = new List <TickerViewModel>();

                    lsttmpSameTicker = cms_db.GetListTickerByUser(UserId,
                                                                  (int)ConstFrontEnd.FontEndConstNumberRecord.Nbr_Ticker_In_Home, Packageid);


                    foreach (Ticker _val in lsttmpSameTicker)
                    {
                        TickerViewModel tmp = new TickerViewModel(_val);
                        tmp.lstTickerContentPackage = cms_db.GetlstObjContentPackage(tmp.TickerId, (int)EnumCore.ObjTypeId.ticker);
                        model.lstsameTickers.Add(tmp);
                    }

                    ContentView ck = cms_db.GetObjContentView(mainObj.TickerId, (int)EnumCore.ObjTypeId.ticker, UID);
                    if (ck == null)
                    {
                        ContentView tmp = new ContentView();
                        tmp.UserId      = UID;
                        tmp.UserName    = User.Identity.GetUserName();
                        tmp.ContentId   = mainObj.TickerId;
                        tmp.ContentType = (int)EnumCore.ObjTypeId.ticker;
                        tmp.ContentName = mainObj.TickerName;
                        cms_db.CreateContentView(tmp);
                    }
                    return(View(model));
                }
                string AlertString = "Nội dung xem không khả dụng";
                return(RedirectToAction("AlertPage", "Extension", new { AlertString = AlertString, type = (int)EnumCore.AlertPageType.FullScrenn }));
            }
            catch (Exception e)
            {
                cms_db.AddToExceptionLog("DetailTicker", " Member", e.ToString());
                string AlertString = "Nội dung xem không khả dụng";
                return(RedirectToAction("AlertPage", "Extension", new { AlertString = AlertString, type = (int)EnumCore.AlertPageType.FullScrenn }));
            }
        }
Ejemplo n.º 3
0
        public Ticker()
        {
            InitializeComponent();
            var tickerVM = new TickerViewModel();

            DataContext = tickerVM;
            TickerDataGrid.ItemsSource = tickerVM.GetTickerLists();
        }
        public ActionResult Create()
        {
            TickerViewModel model = new TickerViewModel();

            model.lstPackage    = cms_db.GetObjSelectListPackage();
            model.lstCyptoItem  = new SelectList(cms_db.GetlstCyptoItem().Where(s => s.is_active == true).OrderBy(s => s.symbol).ToList(), "id", "symbol");
            model.lstMarketItem = new SelectList(cms_db.GetlstMarketItem().ToList(), "Marketid", "MarketName");
            return(View(model));
        }
Ejemplo n.º 5
0
        public MainWindow()
        {
            InitializeComponent();

            optWindow             = new OptionsWindow();
            TVM                   = new TickerViewModel();
            DataContext           = TVM;
            optWindow.DataContext = DataContext;
        }
        public async Task <ActionResult> Create(TickerViewModel model, HttpPostedFileBase Default_files)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    Ticker MainModel = model._MainObj;
                    MainModel.CrtdDT       = DateTime.Now;
                    MainModel.CrtdUserId   = long.Parse(User.Identity.GetUserId());
                    MainModel.CrtdUserName = User.Identity.Name;
                    MainModel.StateId      = (int)EnumCore.TickerStatusType.dang_chay;
                    MainModel.StateName    = "Đang chạy";
                    if (model.MarketID.HasValue)
                    {
                        MainModel.MarketName = cms_db.GetMarketName(model.MarketID.Value);
                    }
                    if (model.CyptoID.HasValue)
                    {
                        MainModel.CyptoName = cms_db.GetCyptoName(model.CyptoID.Value);
                    }

                    MainModel.Flag = model.Flag;
                    int rs = await cms_db.CreateTickerAsync(MainModel);

                    if (Default_files != null)
                    {
                        MediaContentViewModels rsdf = await this.SaveDefaultImageForTicker(Default_files, MainModel.TickerId);

                        int rsup = await this.UpdateImageUrlForTicker(rsdf, MainModel);
                    }
                    int SaveTickerPackage = this.SaveTickerPackage(model.lstTickerPackage, MainModel);

                    bool rssendMail = await this.SendMail(model.TickerId, model.TickerName, model.lstTickerPackage);



                    int rs2 = await cms_db.CreateUserHistory(long.Parse(User.Identity.GetUserId()), Request.ServerVariables["REMOTE_ADDR"],
                                                             (int)EnumCore.ActionType.Create, "Create", MainModel.TickerId, MainModel.TickerName, "TickerManager", (int)EnumCore.ObjTypeId.ticker);

                    var context = GlobalHost.ConnectionManager.GetHubContext <NotifiHub>();
                    context.Clients.All.notificationNewKeo();
                }
                return(RedirectToAction("Index"));
            }
            catch (Exception e)
            {
                cms_db.AddToExceptionLog("Create", "TickerManager", e.ToString(), long.Parse(User.Identity.GetUserId()));
                return(RedirectToAction("Index"));
            }
        }
Ejemplo n.º 7
0
        private IAsyncAction CloneTicker(TickerViewModel ticker)
        {
            try
            {
                var avg           = ticker.Avg;
                var buyPrice      = ticker.BuyPrice;
                var closeBuyPrice = ticker.CloseBuyPrice;
                var high          = ticker.High;
                var isVisible     = ticker.IsVisible;
                var lastTrade     = ticker.LastTrade;
                var orderPosition = ticker.OrderPosition;
                var sellPrice     = ticker.SellPrice;
                var updated       = ticker.Updated;
                var vol           = ticker.Vol;
                var volCurr       = ticker.VolCurr;

                return(this.Dispatcher.RunAsync(
                           CoreDispatcherPriority.Normal,
                           () =>
                {
                    try
                    {
                        this.ViewModel.Avg = avg;
                        this.ViewModel.BuyPrice = buyPrice;
                        this.ViewModel.CloseBuyPrice = closeBuyPrice;
                        this.ViewModel.High = high;

                        this.ViewModel.IsVisible = isVisible;
                        this.ViewModel.LastTrade = lastTrade;
                        this.ViewModel.OrderPosition = orderPosition;
                        this.ViewModel.SellPrice = sellPrice;
                        this.ViewModel.Updated = updated;

                        this.ViewModel.Vol = vol;
                        this.ViewModel.VolCurr = volCurr;
                    }
                    catch (Exception e)
                    {
                        Debug.WriteLine(e);
                        throw;
                    }
                }));
            }
            catch (Exception exception)
            {
                Debug.WriteLine(exception);
                throw;
            }
        }
Ejemplo n.º 8
0
        async Task UpdateMarketAsync(TradingDay tradingDay, bool close = false)
        {
            TickerViewModel.Update(tradingDay, _securityRepository, close);
            MiniTickerPartialViewModel.Update(tradingDay, _securityRepository);

            await _pusher.TriggerAsync(
                "stockimulate",
                "update-market",
                new
            {
                day     = _dayNumber,
                news    = tradingDay.NewsItem,
                effects = _securities.Select(security => tradingDay.Effects[security.Symbol]).ToArray(),
                close
            });
        }
Ejemplo n.º 9
0
        /// <summary>
        /// Resets the market.
        /// </summary>
        public void Reset()
        {
            _timer.Stop();
            _dayNumber = 0;

            foreach (var security in _securities)
            {
                security.Price = 0;
                _securityRepository.UpdateAsync(security);
            }

            _tradeRepository.DeleteAll();

            TickerViewModel.Reset(_securityRepository);
            MiniTickerPartialViewModel.Reset(_securityRepository);

            SimulationState = SimulationState.Ready;
        }
Ejemplo n.º 10
0
        public ExchangeViewModel(MainViewModel mainViewModel, ExchangeBase exchangeBase)
            : base(exchangeBase)
        {
            Pairs = new PairManageViewModel(exchangeBase);
            this.MainViewModel = mainViewModel;
            this.Header        = Exchange.Name;
            //this.Foreground = Brushes.DodgerBlue;

            MainViewModel.TimerSeconds.Tick += TimerSecondsOnTick;


            Orders    = new UserOrdersViewModel(Exchange);
            Ticker    = new TickerViewModel(Exchange);
            OrderBook = new OrderBookViewModel(Exchange);

            Trades = new TradesViewModel(MainViewModel, this, Exchange);

            Balance     = new BalanceViewModel(Exchange);
            NewBuyOrder = new NewOrderViewModel(Exchange)
            {
                Side = OrderSide.Buy
            };
            NewSellOrder = new NewOrderViewModel(Exchange)
            {
                Side = OrderSide.Sell
            };

            if (!DesignerProperties.GetIsInDesignMode(new DependencyObject()))
            {
                UpdatePair();
                //Exchange.ExchangeManager.Settings.
                MainViewModel.SettingsService.SettingsLoaded += SettingsServiceOnSettingsLoaded;
                Pairs.PairChanged += PairsOnPairChanged;
                OrderBook.Ticker.LastTradeClickEvent += TickerOnLastTradeClickEvent;
                OrderBook.SelectedAskChanged         += OrderBookOnSelectedAskChanged;
                OrderBook.SelectedBidChanged         += OrderBookOnSelectedBidChanged;
                Balance.SelectedBalanceChanged       += BalanceOnSelectedBalanceChanged;
                CreateTimer();
                UpdateViewModels();
                RegisterUpdates();
                Ticker.Dispatched += TickerOnDispatched;
            }
        }
Ejemplo n.º 11
0
        public async Task <ActionResult> ModIndex()
        {
            MemberFrontEndViewModel model = new MemberFrontEndViewModel();


            List <ContentItemViewModels> lstmpNews = new List <ContentItemViewModels>();
            List <ContentItem>           lstNews   = cms_db.GetlstContentItem().Where(s => s.StateId == (int)EnumCore.StateType.cho_phep)
                                                     .Take((int)ConstFrontEnd.FontEndConstNumberRecord.Nbr_News_In_Home).ToList();

            foreach (ContentItem _val in lstNews)
            {
                ContentItemViewModels tmp = new ContentItemViewModels(_val);
                tmp.lstNewsContentPackage = cms_db.GetlstObjContentPackage(tmp.ContentItemId, (int)EnumCore.ObjTypeId.tin_tuc);
                lstmpNews.Add(tmp);
            }

            List <TickerViewModel> lstmpTickers = new List <TickerViewModel>();
            List <Ticker>          lstTicker    = cms_db.GetlstTicker().Where(s => s.StateId != (int)EnumCore.TickerStatusType.da_xoa)
                                                  .Take((int)ConstFrontEnd.FontEndConstNumberRecord.Nbr_Ticker_In_Home).ToList();

            foreach (Ticker _val in lstTicker)
            {
                TickerViewModel tmp = new TickerViewModel(_val);
                tmp.lstTickerContentPackage = cms_db.GetlstObjContentPackage(tmp.TickerId, (int)EnumCore.ObjTypeId.ticker);
                lstmpTickers.Add(tmp);
            }



            model.lstNews    = lstmpNews;
            model.lstTicker  = lstmpTickers;
            model.ObjectUser = await cms_db.GetObjUserById(long.Parse(User.Identity.GetUserId()));

            Config cf = new Config();

            cf = cms_db.GetConfig();
            this.SetInforMeta(cf.site_metadatakeyword, cf.site_metadadescription);

            return(View(model));
        }
        public ActionResult Update(int?id)
        {
            if (id == null)
            {
                id = 1;
            }
            Ticker          _obj  = cms_db.GetObjTicker(id.Value);
            TickerViewModel model = new TickerViewModel(_obj);

            if ((model.CrtdUserId == long.Parse(User.Identity.GetUserId()) && User.IsInRole("Mod")) || User.IsInRole("AdminUser") || User.IsInRole("devuser"))
            {
                model.lstPackage       = cms_db.GetObjSelectListPackage();
                model.lstTickerPackage = cms_db.GetlstTickerPackage(model.TickerId, (int)EnumCore.ObjTypeId.ticker);
                model.lstCyptoItem     = new SelectList(cms_db.GetlstCyptoItem().Where(s => s.is_active == true).OrderBy(s => s.symbol).ToList(), "id", "symbol");
                model.lstMarketItem    = new SelectList(cms_db.GetlstMarketItem().ToList(), "Marketid", "MarketName");
                return(View(model));
            }
            else
            {
                return(RedirectToAction("Index"));
            }
        }
Ejemplo n.º 13
0
        public ActionResult TrackingTicker(int?page, int?package, string FillterTickerName, string Datetime, int?unit)
        {
            int pageNum = (page ?? 1);
            TrackingTickerViewModel model = new TrackingTickerViewModel();
            IQueryable <Ticker>     tmp   = cms_db.GetlstTicker();

            tmp = tmp.Where(s => s.StateId != (int)EnumCore.TickerStatusType.dang_chay && s.StateId != (int)EnumCore.TickerStatusType.da_xoa);
            if (package.HasValue)
            {
                long[] listTickerbypackage = cms_db.GetlstContentPackageIquery().
                                             Where(s => s.ContentType == (int)EnumCore.ObjTypeId.ticker && s.PackageId == package.Value).Select(s => s.ContentId).ToArray();
                tmp = tmp.Where(s => listTickerbypackage.Contains(s.TickerId));
            }

            unit = unit ?? 1;

            if (unit.HasValue)
            {
                if (unit.Value == 1)
                {
                    tmp = tmp.Where(s => s.BTCInput.Value > 0);
                }
                else
                {
                    tmp = tmp.Where(s => s.USDInput.Value > 0);
                }

                model.unit = unit.Value;
            }

            if (!String.IsNullOrEmpty(Datetime))
            {
                model.Datetime = Datetime;
                model.StartDT  = this.SpritDateTime(model.Datetime)[0];
                model.EndDT    = this.SpritDateTime(model.Datetime)[1];
                tmp            = tmp.Where(s => s.CrtdDT > model.StartDT && s.CrtdDT < model.EndDT);
            }

            if (tmp.Count() < (int)EnumCore.BackendConst.page_size)
            {
                pageNum = 1;
            }
            model.pageNum = pageNum;

            List <TickerViewModel> prelistmain = new List <TickerViewModel>();

            foreach (Ticker _val in tmp)
            {
                TickerViewModel abc = new TickerViewModel(_val);
                abc.lstTickerContentPackage = cms_db.GetlstObjContentPackage(_val.TickerId, (int)EnumCore.ObjTypeId.ticker);
                prelistmain.Add(abc);
            }

            model.lstMainTicker = prelistmain.ToPagedList(pageNum, (int)EnumCore.BackendConst.page_size);

            model.TotalDeficit   = 0;
            model.TotalProfit    = 0;
            model.TotalNumberBTC = 0;
            foreach (TickerViewModel _item in model.lstMainTicker)
            {
                ////1 là btc
                if (unit.Value == 1)
                {
                    if (_item.BTCInput.HasValue && (_item.Deficit.HasValue || _item.Profit.HasValue))
                    {
                        ///nếu là kè lãi
                        if (_item.Flag == 1 || _item.Flag == 2 || _item.Flag == 3)
                        {
                            ///lãi bằng số bit vào lenh * lãi cảu mỗi kèo
                            double tmpProfit = (_item.Profit.Value) * _item.BTCInput.Value;
                            model.TotalProfit = model.TotalProfit + tmpProfit;
                        }
                        else if (_item.Flag == 4)
                        {
                            ///lổ bằng số bit vào lenh * lổ của mỗi kèo
                            double tmpDeficit = (_item.Deficit.Value) * _item.BTCInput.Value;
                            model.TotalDeficit = model.TotalDeficit + tmpDeficit;
                        }

                        ///tổng số bit
                        model.TotalNumberBTC = model.TotalNumberBTC + _item.BTCInput.Value;
                    }
                }
                else
                {
                    ///tính theo usdt
                    if (_item.USDInput.HasValue && (_item.Deficit.HasValue || _item.Profit.HasValue))
                    {
                        ///nếu là kè lãi
                        if (_item.Flag == 1 || _item.Flag == 2 || _item.Flag == 3)
                        {
                            ///lãi bằng số bit vào lenh * lãi cảu mỗi kèo
                            double tmpProfit = (_item.Profit.Value) * _item.USDInput.Value;
                            model.TotalProfit = model.TotalProfit + tmpProfit;
                        }
                        else if (_item.Flag == 4)
                        {
                            ///lổ bằng số bit vào lenh * lổ của mỗi kèo
                            double tmpDeficit = (_item.Deficit.Value) * _item.USDInput.Value;
                            model.TotalDeficit = model.TotalDeficit + tmpDeficit;
                        }

                        ///tổng số bit
                        model.TotalNumberBTC = model.TotalNumberBTC + _item.USDInput.Value;
                    }
                }
            }
            ///tổng lãi lổ bằng lã trừ lổ
            model.Total      = model.TotalProfit - model.TotalDeficit;
            model.lstPackage = new SelectList(cms_db.GetObjSelectListPackage(), "value", "text");
            model.lstUnit    = new SelectList(cms_db.GetObjSelectListUnit(), "value", "text");
            return(View(model));
        }
Ejemplo n.º 14
0
        internal TickerView(TickerViewModel viewModel)
        {
            InitializeComponent();

            DataContext = viewModel;
        }
Ejemplo n.º 15
0
        public async Task <ActionResult> MemberDashBoard()
        {
            try
            {
                long Package          = 0;
                long UserId           = long.Parse(User.Identity.GetUserId());
                User ObjectCurentUser = await cms_db.GetObjUserById(UserId);

                MemberFrontEndViewModel      model     = new MemberFrontEndViewModel();
                List <ContentItemViewModels> lstmpNews = new List <ContentItemViewModels>();
                List <ContentItem>           lstNews   = new List <ContentItem>();
                if (User.IsInRole("AdminUser") || User.IsInRole("devuser") || User.IsInRole("supperadmin") || User.IsInRole("Mod"))
                {
                    Package = 5;
                    lstNews = cms_db.GetListContentItemByUser(UserId,
                                                              (int)ConstFrontEnd.FontEndConstNumberRecord.Nbr_News_In_Home, Package);
                }
                else
                {
                    Package = ObjectCurentUser.PackageId.Value;
                    lstNews = cms_db.GetListContentItemByUser(UserId,
                                                              (int)ConstFrontEnd.FontEndConstNumberRecord.Nbr_News_In_Home, Package);
                }
                foreach (ContentItem _val in lstNews)
                {
                    ContentItemViewModels tmp = new ContentItemViewModels(_val);
                    tmp.lstNewsContentPackage = cms_db.GetlstObjContentPackage(tmp.ContentItemId, (int)EnumCore.ObjTypeId.tin_tuc);
                    lstmpNews.Add(tmp);
                }



                List <TickerViewModel> lstmpTickers = new List <TickerViewModel>();
                List <Ticker>          lstTicker    = new List <Ticker>();
                if (User.IsInRole("AdminUser") || User.IsInRole("devuser") || User.IsInRole("supperadmin") || User.IsInRole("Mod"))
                {
                    lstTicker = cms_db.GetListTickerByUser(UserId,
                                                           (int)ConstFrontEnd.FontEndConstNumberRecord.Nbr_Ticker_In_Home, Package);
                }
                else
                {
                    lstTicker = cms_db.GetListTickerByUser(UserId,
                                                           (int)ConstFrontEnd.FontEndConstNumberRecord.Nbr_Ticker_In_Home, Package);
                }

                foreach (Ticker _val in lstTicker)
                {
                    TickerViewModel tmp = new TickerViewModel(_val);
                    tmp.lstTickerContentPackage = cms_db.GetlstObjContentPackage(tmp.TickerId, (int)EnumCore.ObjTypeId.ticker);
                    lstmpTickers.Add(tmp);
                }


                model.lstNews    = lstmpNews.OrderByDescending(s => s.CrtdDT).ToList();;
                model.lstTicker  = lstmpTickers.OrderByDescending(s => s.CrtdDT).ToList();
                model.ObjectUser = ObjectCurentUser;
                Config cf = new Config();
                cf = cms_db.GetConfig();
                this.SetInforMeta(cf.site_metadatakeyword, cf.site_metadadescription);
                await this.CheckPriceUpdate();

                return(View(model));
            }
            catch (Exception e)
            {
                cms_db.AddToExceptionLog("MemberDashBoard", "Member", e.ToString());
                string AlertString = "Nội dung xem không khả dụng";
                return(RedirectToAction("AlertPage", "Extension", new { AlertString = AlertString, type = (int)EnumCore.AlertPageType.FullScrenn }));
            }
        }
Ejemplo n.º 16
0
 public OrderBookViewModel(ExchangeBase exchangeBase)
     : base(exchangeBase)
 {
     Ticker = new TickerViewModel(exchangeBase);
     Update();
 }
        public ActionResult Index(int?page, int?TickerStatus, int?TickerPackage, long?CyptoItemID, int?MarketItemID, string FillterTickerName, int?unit)
        {
            int pageNum = (page ?? 1);
            TickerAdminViewModel model = new TickerAdminViewModel();
            IQueryable <Ticker>  tmp   = cms_db.GetlstTicker().Where(s => s.StateId != (int)EnumCore.TickerStatusType.da_xoa);

            if (TickerStatus.HasValue)
            {
                if (TickerStatus != 0)
                {
                    tmp = tmp.Where(s => s.StateId == TickerStatus);
                    model.TickerStatus = TickerStatus.Value;
                }
            }

            if (CyptoItemID.HasValue)
            {
                if (CyptoItemID != 0)
                {
                    tmp = tmp.Where(s => s.CyptoID == CyptoItemID.Value);
                    model.CyptoItemID = CyptoItemID.Value;
                }
            }


            if (MarketItemID.HasValue)
            {
                if (MarketItemID != 0)
                {
                    tmp = tmp.Where(s => s.MarketID == MarketItemID.Value);
                    model.MarketItemID = MarketItemID.Value;
                }
            }

            if (unit.HasValue)
            {
                if (unit.Value == 1)
                {
                    tmp = tmp.Where(s => s.BTCInput.Value > 0);
                }
                else
                {
                    tmp = tmp.Where(s => s.USDInput.Value > 0);
                }

                model.unit = unit.Value;
            }

            if (TickerPackage.HasValue && TickerPackage.Value != 0)
            {
                if (TickerPackage != 0)
                {
                    foreach (Ticker _val in tmp)
                    {
                        List <ContentPackage> lstpackageofticker = cms_db.GetlstObjContentPackage(_val.TickerId, (int)EnumCore.ObjTypeId.ticker);
                        if (!lstpackageofticker.Select(s => s.PackageId).Contains(TickerPackage.Value))
                        {
                            tmp = tmp.Where(s => s.TickerId != _val.TickerId);
                        }
                    }

                    model.TickerPackage = TickerPackage.Value;
                }
            }

            if (!String.IsNullOrEmpty(FillterTickerName))
            {
                tmp = tmp.Where(s => s.TickerName.ToLower().Contains(FillterTickerName.ToLower()));
                model.FillterTickerName = FillterTickerName;
            }
            if (tmp.Count() < (int)EnumCore.BackendConst.page_size)
            {
                pageNum = 1;
            }
            model.pageNum = pageNum;
            List <TickerViewModel> prelistmain = new List <TickerViewModel>();

            foreach (Ticker _val in tmp)
            {
                TickerViewModel abc = new TickerViewModel(_val);
                abc.lstTickerContentPackage = cms_db.GetlstObjContentPackage(_val.TickerId, (int)EnumCore.ObjTypeId.ticker);
                prelistmain.Add(abc);
            }
            model.lstMainTickerViewModel = prelistmain.OrderByDescending(c => c.CrtdDT).ToPagedList(pageNum, (int)EnumCore.BackendConst.page_size);
            model.lstCyptoItem           = new SelectList(cms_db.GetlstCyptoItem().Where(s => s.is_active == true).OrderBy(s => s.symbol).ToList(), "id", "symbol");
            model.lstMarketItem          = new SelectList(cms_db.GetlstMarketItem().ToList(), "Marketid", "MarketName");
            model.lstTickerStatus        = new SelectList(cms_db.Getclasscatagory((int)EnumCore.ClassificationScheme.status_ticker), "value", "text");
            model.lstPackage             = new SelectList(cms_db.GetObjSelectListPackage(), "value", "text");
            model.lstUnit = new SelectList(cms_db.GetObjSelectListUnit(), "value", "text");
            return(View(model));
        }
        public async Task <ActionResult> Update(TickerViewModel model, HttpPostedFileBase Default_files)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    if ((model.CrtdUserId == long.Parse(User.Identity.GetUserId()) && User.IsInRole("Mod")) || User.IsInRole("AdminUser") || User.IsInRole("devuser"))
                    {
                        Ticker MainModel = model._MainObj;
                        MainModel.StateId = (int)EnumCore.TickerStatusType.dang_chay;

                        if (model.MarketID.HasValue)
                        {
                            MainModel.MarketName = cms_db.GetMarketName(model.MarketID.Value);
                        }
                        if (model.CyptoID.HasValue)
                        {
                            MainModel.CyptoName = cms_db.GetCyptoName(model.CyptoID.Value);
                        }

                        MainModel.StateName = "Đang chạy";
                        MainModel.Flag      = model.Flag;
                        if (model.Flag.HasValue)
                        {
                            if (model.Flag.Value == 1)
                            {
                                MainModel.Profit    = this.SumTicker(model.Flag.Value, MainModel.BuyZone1.Value, MainModel.SellZone1.Value, MainModel.BTCInput.Value);
                                MainModel.StateId   = (int)EnumCore.TickerStatusType.loi;
                                MainModel.StateName = "Lời";
                            }
                            else if (model.Flag.Value == 2)
                            {
                                MainModel.Profit    = this.SumTicker(model.Flag.Value, MainModel.BuyZone1.Value, MainModel.SellZone2.Value, MainModel.BTCInput.Value);
                                MainModel.StateId   = (int)EnumCore.TickerStatusType.loi;
                                MainModel.StateName = "Lời";
                            }
                            else if (model.Flag.Value == 3)
                            {
                                MainModel.Profit    = this.SumTicker(model.Flag.Value, MainModel.BuyZone1.Value, MainModel.SellZone3.Value, MainModel.BTCInput.Value);
                                MainModel.StateId   = (int)EnumCore.TickerStatusType.loi;
                                MainModel.StateName = "Lời";
                            }
                            else if (model.Flag.Value == 4)
                            {
                                MainModel.Deficit   = this.SumTicker(model.Flag.Value, MainModel.BuyZone1.Value, MainModel.DeficitControl.Value, MainModel.BTCInput.Value);
                                MainModel.StateId   = (int)EnumCore.TickerStatusType.lo;
                                MainModel.StateName = "Lỗ";
                            }
                            else if (model.Flag.Value == 0)
                            {
                                MainModel.Profit    = 0;
                                MainModel.Deficit   = 0;
                                MainModel.StateId   = (int)EnumCore.TickerStatusType.dang_chay;
                                MainModel.StateName = "Đang chạy";
                            }
                        }
                        int rs = await cms_db.UpdateTicker(MainModel);

                        if (Default_files != null)
                        {
                            MediaContentViewModels rsdf = await this.SaveDefaultImageForTicker(Default_files, MainModel.TickerId);

                            int rsup = await this.UpdateImageUrlForTicker(rsdf, MainModel);
                        }
                        int SaveTickerPackage = this.SaveTickerPackage(model.lstTickerPackage, MainModel);
                        int rs2 = await cms_db.CreateUserHistory(long.Parse(User.Identity.GetUserId()), Request.ServerVariables["REMOTE_ADDR"],
                                                                 (int)EnumCore.ActionType.Update, "Update", MainModel.TickerId, MainModel.TickerName, "TickerManager", (int)EnumCore.ObjTypeId.ticker);

                        //  bool rssendMail = await this.SendMail(model.TickerId, model.TickerName, model.lstTickerPackage);
                    }
                }
                return(RedirectToAction("Index"));
            }
            catch (Exception e)
            {
                cms_db.AddToExceptionLog("Update", "TickerManager", e.ToString(), long.Parse(User.Identity.GetUserId()));
                return(RedirectToAction("Index"));
            }
        }