// GET: api/StocksApi
 public IEnumerable <string> Get()
 {
     if (DateTime.UtcNow.Hour >= 13 && DateTime.UtcNow.Hour <= 21 && (DateTime.UtcNow.DayOfWeek != DayOfWeek.Saturday && DateTime.UtcNow.DayOfWeek != DayOfWeek.Sunday))
     {
         StockRealTime sr = new StockRealTime();
         sr.RefreshDataAll();
     }
     //logger.Info("#StocksApi Get");
     return(new string[] { "value1", "value2" });
 }
        public ActionResult Index()
        {
            var    claims  = ClaimsPrincipal.Current.Identity;
            string name    = ClaimsPrincipal.Current.FindFirst("name")?.Value;
            string user_id = ClaimsPrincipal.Current.FindFirst("user_id")?.Value;

            StockRealTime sr     = new StockRealTime();
            var           result = sr.GetDataPerUser();

            return(View(result));
            //return View(db.StockMarkets.ToList().OrderBy(s => s.Symbol));
        }
        public ActionResult Edit([Bind(Include = "Id,BuyTarget,LastPrice,SellTarget,Quantity")] StockMarket stockMarket)
        {
            if (ModelState.IsValid)
            {
                StockRealTime sr = new StockRealTime();
                //sr.RefreshDataPerSymbol(stockMarket);

                db.StockMarkets.Attach(stockMarket);
                db.Entry(stockMarket).Property(p => p.BuyTarget).IsModified  = true;
                db.Entry(stockMarket).Property(p => p.SellTarget).IsModified = true;
                db.Entry(stockMarket).Property(p => p.Quantity).IsModified   = true;
                //db.Entry(stockMarket).Property(p => p.SellDecision).IsModified = true;
                //db.Entry(stockMarket).Property(p => p.BuyDecision).IsModified = true;
                //db.Entry(stockMarket).Property(p => p.CurrentValue).IsModified = true;
                db.SaveChanges();

                return(RedirectToAction("Index"));
            }
            return(View(stockMarket));
        }
        // GET: api/StocksApi/5
        public string Get(int id)
        {
            try
            {
                StockRealTime sr = new StockRealTime();
                StocksData    sd = new StocksData();
                switch (id)
                {
                case 1234:
                    sr.NotifyBuyOrSell();
                    break;

                case 2345:
                    sr.RefreshDataAll();
                    break;

                case 3456:
                    sd.GetDataAll();
                    break;

                case 999:
                    sd.AddStockCorrels();
                    sd.ProcessCorrelation();
                    break;

                case 6789:
                    sr.CacheSimulator();
                    break;

                case 102:
                    //sr.NewMailSendTester();
                    sr.NotifyUser();
                    break;
                }
            }
            catch (Exception ex)
            {
                //logger.Error("#" + ex.Message);
            }
            return("value");
        }
Example #5
0
        private StockRealTime GetDataFromSource(string strData)
        {
            StockRealTime data = new StockRealTime();
            strData = strData.Remove(0, 11);

            string market = strData.Substring(0, 2);
            if(market == "sh")
            {
                data.Market = Market.XSHG;
            }
            else if(market == "sz")
            {
                data.Market = Market.XSHE;
            }
            else
            {
                data.Market = Market.Unknown;
            }

            strData = strData.Remove(0, 2);
            data.Code = strData.Substring(0, 6);

            int startIndex = strData.IndexOf("\"") + 1;
            int length = strData.LastIndexOf("\"") - startIndex;
            strData = strData.Substring(startIndex, length);

            // 没有获取到数据
            if(string.IsNullOrEmpty(strData) || string.IsNullOrWhiteSpace(strData))
            {
                return null;
            }

            string[] fields = strData.Split(',');

            data.ShortName = fields[0];
            data.TodayOpen = Convert.ToDouble(fields[1]);
            data.YesterdayClose = Convert.ToDouble(fields[2]);
            data.Current = Convert.ToDouble(fields[3]);
            data.High = Convert.ToDouble(fields[4]);
            data.Low = Convert.ToDouble(fields[5]);
            data.Volume = Convert.ToDouble(fields[8]);
            data.Amount = Convert.ToDouble(fields[9]);

            data.Buy1Volume = Convert.ToDouble(fields[10]);
            data.Buy1Price = Convert.ToDouble(fields[11]);

            data.Buy2Volume = Convert.ToDouble(fields[12]);
            data.Buy2Price = Convert.ToDouble(fields[13]);

            data.Buy3Volume = Convert.ToDouble(fields[14]);
            data.Buy3Price = Convert.ToDouble(fields[15]);

            data.Buy4Volume = Convert.ToDouble(fields[16]);
            data.Buy4Price = Convert.ToDouble(fields[17]);

            data.Buy5Volume = Convert.ToDouble(fields[18]);
            data.Buy5Price = Convert.ToDouble(fields[19]);

            data.Sell1Volume = Convert.ToDouble(fields[20]);
            data.Sell1Price = Convert.ToDouble(fields[21]);

            data.Sell2Volume = Convert.ToDouble(fields[22]);
            data.Sell2Price = Convert.ToDouble(fields[23]);

            data.Sell3Volume = Convert.ToDouble(fields[24]);
            data.Sell3Price = Convert.ToDouble(fields[25]);

            data.Sell4Volume = Convert.ToDouble(fields[26]);
            data.Sell4Price = Convert.ToDouble(fields[27]);

            data.Sell5Volume = Convert.ToDouble(fields[28]);
            data.Sell5Price = Convert.ToDouble(fields[29]);

            data.Time = Convert.ToDateTime(fields[30] + " " + fields[31]);

            return data;
        }
Example #6
0
        public async Task <ViewResult> Index(string symbolName)
        {
            //ApplicationUser currentUser = await UserManager.FindByIdAsync(User.Identity.GetUserId());
            ViewBag.AbsolutePathHostName = AppHelper.AbsolutePathHostName;
            #region danh muc co phieu dang follow
            var postNumber = await db.Posts.CountAsync(s => s.StockPrimary.Contains(symbolName));           // so luong bai viet cua cổ phiếu này

            var stockFollowNumber = await db.FollowStocks.CountAsync(sf => sf.StockFollowed == symbolName); // bao nhieu nguoi da theo doi co phieu nay

            ViewBag.PostNumber        = postNumber;
            ViewBag.StockFollowNumber = stockFollowNumber;
            // function follow stock
            if (User.Identity.IsAuthenticated)
            {
                ApplicationUser currentUser = await UserManager.FindByIdAsync(User.Identity.GetUserId());

                var countStockFollowr = await db.FollowStocks.CountAsync(f => f.UserId == currentUser.UserExtentLogin.Id && f.StockFollowed == symbolName);

                if (countStockFollowr == 1) // kiem tra user nay co follow ma nay khong
                {
                    ViewBag.CheckStockExist = "Y";
                }
                else
                {
                    ViewBag.CheckStockExist = "N";
                }
                // so luong tin nhan
                var numberMessegeNew = await db.NotificationMesseges.Where(nm => nm.UserReciver == currentUser.UserExtentLogin.Id && nm.NumNoti > 0).SumAsync(mn => mn.NumNoti);

                ViewBag.NewMessege = numberMessegeNew;
            }

            #endregion

            #region Thong tin menu ben trai
            if (User.Identity.IsAuthenticated) // thong tin user dang nhap
            {
                ApplicationUser currentUser = await UserManager.FindByIdAsync(User.Identity.GetUserId());

                ViewBag.AvataEmage     = string.IsNullOrEmpty(currentUser.UserExtentLogin.AvataImage) == true ? AppHelper.ImageURLAvataDefault : AppHelper.ImageURLAvata + currentUser.UserExtentLogin.AvataImage;
                ViewBag.CureentUserId  = currentUser.UserExtentLogin.Id;
                ViewBag.UserName       = currentUser.UserName;
                ViewBag.CharacterLimit = currentUser.UserExtentLogin.CharacterLimit;
            }
            else
            {
                ViewBag.AvataEmage = AppHelper.ImageURLAvataDefault;
            }


            // End thong tin menu ben trai


            #endregion

            #region thong tin co phieu
            var company = new StockCode();
            company = await db.StockCodes.FirstOrDefaultAsync(m => m.Code.ToUpper() == symbolName.ToUpper());

            ViewBag.StockCode = company == null?StatusSymbol.NF.ToString() : symbolName.ToUpper();

            ViewBag.StockName = company == null?StatusSymbol.NF.ToString() : company.ShortName;

            ViewBag.LongName = company == null?StatusSymbol.NF.ToString() : company.LongName;

            ViewBag.MarketName = company == null?StatusSymbol.NF.ToString() : company.IndexName;

            ViewBag.ImgEx = ".png";
            #endregion

            #region gia co phieu
            StockRealTime stockprice = new StockRealTime();
            stockprice = _stockRealtime.GetStocksByTicker(symbolName).Result;
            if (stockprice == null)
            {
                stockprice           = new StockRealTime();
                stockprice.CompanyID = symbolName;
            }
            var listIndex = new List <string>();
            listIndex.Add("VNINDEX");
            listIndex.Add("HNXINDEX");
            ViewBag.ListIndex = _stockRealtime.GetAllStocksList(listIndex).Result;

            #endregion
            #region Set Info of hot stock
            ViewBag.ListStockHot = AppHelper.GetListHotStock();
            #endregion


            return(View(stockprice));
        }
Example #7
0
        public static List <StockRealTime> GetALLTwoMarket()
        {
            List <StockRealTime> listItem = new List <StockRealTime>();

            #region Get stock of HOSE
            try
            {
                Database  database  = DatabaseFactory.CreateDatabase("DatabasePriceHSX");
                DbCommand dbCommand = database.GetStoredProcCommand("VFS_HSX_GETALLStockRealTime_IncludeIndex");

                //Parameter if have

                using (IDataReader reader = database.ExecuteReader(dbCommand))
                {
                    while (reader.Read())
                    {
                        StockRealTime item = CreateShareTypeFromReader(reader);
                        listItem.Add(item);
                    }
                    reader.Close();
                }
                //totalRecords = (int)database.GetParameterValue(dbCommand, "@TotalRecords");
            }
            catch (Exception ex)
            {
                // log this exception
                log4net.Util.LogLog.Error(ex.Message, ex);
                // wrap it and rethrow
                throw;
            }

            #endregion

            #region get stock of HNX
            // get HNX

            try
            {
                Database  database2  = DatabaseFactory.CreateDatabase("DatabasePriceHNX");
                DbCommand dbCommand2 = database2.GetStoredProcCommand("VFS_HNX_GETALLStockRealTime_IncludeIndex");

                //Parameter if have

                using (IDataReader reader = database2.ExecuteReader(dbCommand2))
                {
                    while (reader.Read())
                    {
                        StockRealTime item = CreateShareTypeFromReader(reader);
                        listItem.Add(item);
                    }
                    reader.Close();
                }
                //totalRecords = (int)database.GetParameterValue(dbCommand, "@TotalRecords");
            }
            catch (Exception ex)
            {
                // log this exception
                log4net.Util.LogLog.Error(ex.Message, ex);
                // wrap it and rethrow
                throw;
            }

            #region region get stock of UPCOM
            try
            {
                Database  database2  = DatabaseFactory.CreateDatabase("DatabasePriceHNX");
                DbCommand dbCommand2 = database2.GetStoredProcCommand("VFS_UPcom_GETALLStockRealTime_IncludeIndex");

                //Parameter if have

                using (IDataReader reader = database2.ExecuteReader(dbCommand2))
                {
                    while (reader.Read())
                    {
                        StockRealTime item = CreateShareTypeFromReader(reader);
                        listItem.Add(item);
                    }
                    reader.Close();
                }
                //totalRecords = (int)database.GetParameterValue(dbCommand, "@TotalRecords");
            }
            catch (Exception ex)
            {
                // log this exception
                log4net.Util.LogLog.Error(ex.Message, ex);
                // wrap it and rethrow
                throw;
            }
            #endregion


            #endregion
            return(listItem);
        }