Exemple #1
0
        /// <summary>
        /// Edit Category
        /// </summary>
        /// <param name="CategoryId"></param>
        /// <returns></returns>
        public CategoryObject CategoryEdit(int CategoryId)
        {
            CategoryObject categoryObject = new CategoryObject();

            try
            {
                XDocument oXmlDocument = XDocument.Load(filePath);
                var       items        = (from item in oXmlDocument.Descendants("Category")
                                          where Convert.ToInt32(item.Element("CategoryId").Value) == CategoryId
                                          select new CategoryObject
                {
                    CategoryId = Convert.ToInt32(item.Element("CategoryId").Value),
                    CategoryName = item.Element("CategoryName").Value,
                }).SingleOrDefault();
                if (items != null)
                {
                    categoryObject.CategoryId   = items.CategoryId;
                    categoryObject.CategoryName = items.CategoryName;
                }
            }
            catch (Exception ex)
            {
                LogWriter.LogWrite(ex.ToString());
            }

            return(categoryObject);
        }
Exemple #2
0
    public void SetScoreInCategory(CategoryObject _category, int _score)
    {
        m_categoryList[m_categoryList.IndexOf(_category)].m_score = _score;
        //if (
        //    !m_categoryList[
        //        m_categoryList.IndexOf(_category) + 1 < m_categoryList.Count
        //            ? m_categoryList.IndexOf(_category) + 1
        //            : m_categoryList.IndexOf(_category)].m_unlocked && _score >= 50)
        //{
        //    m_categoryList[m_categoryList.IndexOf(_category) + 1].m_unlocked = true;
        //}
        if (_score >= 50)
        {
            var temp = GetCagtegoriesInLevel(_category.m_levelId);
            temp = temp.OrderBy(x => x.m_id).ToList();
            int            index        = temp.IndexOf(_category);
            CategoryObject nextCategory = index < temp.Count - 1 ? temp[index + 1] : temp[index];

            m_categoryList[m_categoryList.IndexOf(nextCategory)].m_unlocked = true;
        }

        List <string> data = new List <string>();

        data.Add("ID	levelID	name	photo	score	unlocked");
        foreach (var categoryObject in m_categoryList)
        {
            data.Add(categoryObject.ToString());
        }
        FileLoader.WriteFIleToLocalStore(CATEGORY_PATH, data);
    }
    public void SetCategoryInfo(CategoryObject _categoryObject)
    {
        m_category            = _categoryObject;
        m_category.m_unlocked = true;
        if (GamePlayConfig.Instance.UserPlayMode == eUserPlayMode.SINGLE_PLAY)
        {
            if (m_category != null)
            {
                m_lock.enabled      = true;
                m_categoryName.text = m_category.m_category.ToUpper();
                m_lock.sprite       = m_category.m_unlocked ? SpriteManager.Instance.GetSpriteByTypeName(eSpriteName.UnlockedSprite) : SpriteManager.Instance.GetSpriteByTypeName(eSpriteName.Lock);
                m_imgBarScore.gameObject.SetActive(true);
                if (m_category.m_score < SCORE1)
                {
                    m_imgBarScore.color = Color.red;
                    //m_imgBarScore.sprite = SpriteManager.Instance.GetSpriteByTypeName(eSpriteName.Fail);
                }
                else if (m_category.m_score >= SCORE2)
                {
                    m_imgBarScore.color = Color.green;
                    //m_imgBarScore.sprite = SpriteManager.Instance.GetSpriteByTypeName(eSpriteName.Pass);
                }
                else
                {
                    m_imgBarScore.color = Color.yellow;
                    // m_imgBarScore.sprite = SpriteManager.Instance.GetSpriteByTypeName(eSpriteName.Bar_Yellow);
                }

                if (m_category.m_unlocked)
                {
                    m_score.text = m_category.m_score.ToString();
                }
                else
                {
                    m_score.text        = "";
                    m_imgBarScore.color = Color.blue;
                    //m_imgBarScore.sprite = SpriteManager.Instance.GetSpriteByTypeName(eSpriteName.New);
                }
                m_categoryImage.sprite = DataManager.instance.GetCategoryImage(m_category);
                m_btnImage.enabled     = (m_category.m_unlocked);
            }
        }
        else
        {
            if (m_category != null)
            {
                m_categoryName.text = m_category.m_category.ToUpper();
                m_imgBarScore.gameObject.SetActive(false);
                //m_lock.enabled = false;
                m_categoryImage.sprite = DataManager.instance.GetCategoryImage(m_category);
                //m_score.text = "";
                //m_score.gameObject.SetActive(false);
                //m_imgBarScore.sprite = SpriteManager.Instance.GetSpriteByTypeName(eSpriteName.Pass);
                m_lock.sprite      = SpriteManager.Instance.GetSpriteByTypeName(eSpriteName.UnCheckSprite);
                m_btnImage.enabled = (true);
            }
        }
    }
    //get list word in category
    public List <WordObject> GetWordsInCategory(CategoryObject _category, int _numberOfWord = 10)
    {
        var result = DataLoader.Instance.GetWordsInCategory(_category);
        var r      = new Random();

        result = result.OrderBy(x => r.Next(int.MaxValue)).ToList();

        result.RemoveRange(_numberOfWord, result.Count - _numberOfWord);
        return(result);
    }
Exemple #5
0
        /// <summary>
        /// Create new or update existing Category
        /// </summary>
        /// <param name="categoryObject"></param>
        /// <returns></returns>
        public int SaveUpdateCategory(CategoryObject categoryObject)
        {
            int result = 0;

            if (categoryObject.CategoryId > 0)
            {
                UpdateCategory(categoryObject);
            }
            else if (categoryObject.CategoryId == 0)
            {
                result = CreateXML(categoryObject);
            }
            return(result);
        }
        /// <summary>
        /// Edit Category
        /// </summary>
        /// <param name="CategoryId"></param>
        /// <returns></returns>
        public IActionResult EditCategory(int CategoryId)
        {
            CategoryObject categoryObject = new CategoryObject();

            categoryObject = categoryBL.CategoryEdit(CategoryId);
            if (categoryObject != null)
            {
                return(View(categoryObject));
            }
            else
            {
                return(RedirectToAction("CategoryDetails"));
            }
        }
Exemple #7
0
        public async Task LoadMedicines(CategoryObject category)
        {
            if (category is null)
            {
                return;
            }
            var id        = category.DbRecord?.ID ?? string.Empty;
            var medicines = await dbSet.Include(x => x.Medicine).Where(x => x.CategoryID == id)
                            .AsNoTracking().ToListAsync();

            foreach (var c in medicines)
            {
                category.MedicineWithCategory(new MedicineObject(c.Medicine));
            }
        }
Exemple #8
0
        /// <summary>
        /// Get All Categories
        /// </summary>
        /// <returns></returns>
        public IEnumerable <CategoryObject> GetAllCategory()
        {
            List <CategoryObject> listCategoryObject = new List <CategoryObject>();

            try
            {
                if (!File.Exists(filePath))
                {
                    var newdoc = new XDocument();
                    newdoc.Add(new XElement("Categories"));
                    newdoc.Save(filePath);
                }
                else
                {
                    using (StreamReader bodyReader = new StreamReader(filePath))
                    {
                        string bodyString = bodyReader.ReadToEnd();
                        int    length     = bodyString.Length;

                        if (length > 0)
                        {
                            DataSet ds = new DataSet();
                            ds.ReadXml(filePath);
                            DataView dvPrograms;
                            if (ds.Tables.Count > 0)
                            {
                                dvPrograms      = ds.Tables[0].DefaultView;
                                dvPrograms.Sort = "CategoryId";
                                foreach (DataRowView dr in dvPrograms)
                                {
                                    CategoryObject model = new CategoryObject();
                                    model.CategoryId   = Convert.ToInt32(dr["CategoryId"]);
                                    model.CategoryName = Convert.ToString(dr["CategoryName"]);
                                    listCategoryObject.Add(model);
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                LogWriter.LogWrite(ex.ToString());
            }

            return(listCategoryObject);
        }
Exemple #9
0
 /// <summary>
 /// Update Category
 /// </summary>
 /// <param name="categoryObject"></param>
 public void UpdateCategory(CategoryObject categoryObject)
 {
     try
     {
         XDocument xmlDoc   = XDocument.Load(filePath);
         var       items    = (from item in xmlDoc.Descendants("Category") select item).ToList();
         XElement  selected = items.Where(p => p.Element("CategoryId").Value == categoryObject.CategoryId.ToString()).FirstOrDefault();
         selected.Remove();
         xmlDoc.Save(filePath);
         xmlDoc.Element("Categories").Add(new XElement("Category", new XElement("CategoryId", categoryObject.CategoryId), new XElement("CategoryName", categoryObject.CategoryName), new XElement("IsDeleted", 0)));
         xmlDoc.Save(filePath);
     }
     catch (Exception ex)
     {
         LogWriter.LogWrite(ex.ToString());
     }
 }
Exemple #10
0
        /// <summary>
        /// Create new xml if not exisiting
        /// </summary>
        /// <param name="categoryObject"></param>
        private int CreateXML(CategoryObject categoryObject)
        {
            try
            {
                var path = _hostingEnvironment.WebRootPath;

                XmlDocument oXmlDocument = new XmlDocument();
                oXmlDocument.Load(filePath);
                XmlNodeList nodelist          = oXmlDocument.GetElementsByTagName("Category");
                var         x                 = oXmlDocument.GetElementsByTagName("CategoryId");
                var         categoryNamesNode = oXmlDocument.GetElementsByTagName("CategoryName");

                foreach (XmlElement item in categoryNamesNode)
                {
                    if (item.InnerText.ToString().ToLower().Equals(categoryObject.CategoryName.ToLower()))
                    {
                        return(0);
                    }
                }

                int Max = 0;
                foreach (XmlElement item in x)
                {
                    int EId = Convert.ToInt32(item.InnerText.ToString());
                    if (EId > Max)
                    {
                        Max = EId;
                    }
                }

                Max = Max + 1;
                XDocument xmlDoc = XDocument.Load(filePath);
                xmlDoc.Element("Categories").Add(new XElement("Category", new XElement("CategoryId", Max), new XElement("CategoryName", categoryObject.CategoryName), new XElement("IsDeleted", 0)));
                xmlDoc.Save(filePath);
            }
            catch (Exception ex)
            {
                LogWriter.LogWrite(ex.ToString());
                return(0);
            }

            return(1);
        }
Exemple #11
0
    // Load list category from file category data
    public void InitCategory()
    {
        List <List <string> > categories = FileLoader.LoadLineFromFile(CATEGORY_PATH, false);
        CategoryObject        categoryObj;

        foreach (var category in categories)
        {
            if (category != null && category[0] != "")
            {
                categoryObj = new CategoryObject
                {
                    m_id       = int.Parse(category[0]),
                    m_levelId  = int.Parse(category[1]),
                    m_category = category[2].Trim(),
                    m_photo    = category[3].Trim(),
                    m_score    = int.Parse(category[4]),
                    m_unlocked = bool.Parse(category[5])
                };
                m_categoryList.Add(categoryObj);
            }
        }
    }
        /// <summary>
        /// Create Category Post
        /// </summary>
        /// <param name="categoryObject"></param>
        /// <returns></returns>
        public IActionResult CreateCategory([Bind] CategoryObject categoryObject)
        {
            int result = 0;

            if (ModelState.IsValid)
            {
                result = categoryBL.SaveUpdateCategory(categoryObject);
                if (result > 0)
                {
                    return(RedirectToAction("CategoryDetails"));
                }
                else
                {
                    ModelState.AddModelError("CategoryName", "Already Exist");
                    return(RedirectToAction("Create"));
                }
            }
            else
            {
                ViewBag.Issue = false;
                return(View("Create"));
            }
        }
Exemple #13
0
 public bool AddCategoryWithObject(int _ID_USER, CategoryObject categoryObj)
 {
     cmd.Parameters.Clear();
     cmd.CommandText = @"INSERT INTO [tb_Categories] VALUES(@ID_USER, @TITLE, @DATE_CREATE)";
     cmd.Parameters.AddWithValue("ID_USER", _ID_USER);
     cmd.Parameters.AddWithValue("TITLE", categoryObj._Title);
     cmd.Parameters.AddWithValue("DATE_CREATE", categoryObj._DateCreate);
     cmd.CommandType = CommandType.Text;
     cmd.Connection  = db.ConnectDatabase();
     try
     {
         db.OpenConn();
         cmd.ExecuteNonQuery();
         return(true);
     }
     catch (Exception e)
     {
         Error = e.Message;
         db.DisposeConn();
         db.CloseConn();
         return(false);
     }
 }
        public static CategoryViewModel Create(CategoryObject o)
        {
            var v = new CategoryViewModel()
            {
                ID           = o?.DbRecord.ID,
                UserID       = o?.DbRecord.UserID,
                CategoryName = o?.DbRecord.CategoryName
            };

            if (o is null)
            {
                return(v);
            }
            v.ValidFrom = setNullIfExtremum(o.DbRecord.ValidFrom);
            v.ValidTo   = setNullIfExtremum(o.DbRecord.ValidTo);
            foreach (var c in o.MedicinesWithCategory)
            {
                var medicine = MedicineViewModelFactory.Create(c);
                v.MedicinesWithCategory.Add(medicine);
            }

            return(v);
        }
Exemple #15
0
        private void button1_Click(object sender, EventArgs e)
        {


            var start = DateTime.Now;
            textBox1.Text = start.ToString();

            var redis = new RedisClient(ConfigRedis.Host, ConfigRedis.Port);
            var sdt = SqlDb.GetSymbolList(-1);
            foreach (DataRow dr in sdt.Rows)
            {


                Thread.Sleep(1000);
                var start2 = DateTime.Now;

                string symbol = dr["Symbol"].ToString().ToUpper();
                symbol = "SSI";
                try
                {
                    #region Update stock from sql
                    //stock.Symbol = "AAA";
                    //load stock data 
                    var dt = SqlDb.GetSymbolData(symbol);
                    if (dt.Rows.Count <= 0) return;

                    var row = dt.Rows[0];
                    var stock = new Stock() { Symbol = row["Symbol"].ToString(), TradeCenterId = int.Parse(row["TradeCenterId"].ToString()), IsDisabled = row["IsDisabled"].ToString() == "1", StatusText = row["StatusText"].ToString(), ShowTradeCenter = row["ShowTradeCenter"].ToString() == "1", FolderImage = row["FolderChart"].ToString() };

                    //profile
                    var profile = new CompanyProfile { Symbol = stock.Symbol };
                    //profile - basicInfo
                    var basicInfo = new BasicInfo() { Symbol = stock.Symbol, Name = row["CompanyName"].ToString(), TradeCenter = stock.TradeCenterId.ToString() };
                    //profile - basicInfo - basicCommon
                    /*PE = double.Parse(row["PE"].ToString()),*/
                    var basicCommon = new BasicCommon() { AverageVolume = double.Parse(row["AVG10SS"].ToString()), Beta = double.Parse(row["Beta"].ToString()), EPS = double.Parse(row["EPS"].ToString()), Symbol = stock.Symbol, TotalValue = double.Parse(row["MarketCap"].ToString()), ValuePerStock = double.Parse(row["BookValue"].ToString()), VolumeTotal = double.Parse(row["SLCPNY"].ToString()) };
                    basicCommon.PE = basicCommon.EPS != 0 ? (double.Parse(row["LastPrice"].ToString()) / basicCommon.EPS) : 0;

                    basicInfo.basicCommon = basicCommon;
                    //profile - basicInfo - category
                    var category = new CategoryObject() { ID = int.Parse(row["CategoryId"].ToString()), Name = row["CategoryName"].ToString() };
                    basicInfo.category = category;
                    //profile - basicInfo - firstInfo
                    var firstInfo = new FirstInfo() { FirstPrice = double.Parse(row["FirstPrice"].ToString()), FirstTrade = row["FirstTrade"].Equals(DBNull.Value) ? null : ((DateTime?)row["FirstTrade"]), FirstVolume = double.Parse(row["FirstVolume"].ToString()), Symbol = stock.Symbol };
                    basicInfo.firstInfo = firstInfo;

                    profile.basicInfos = basicInfo;

                    //profile - subsidiaries
                    var subsidiaries = new List<OtherCompany>();
                    var associates = new List<OtherCompany>();
                    var cdt = SqlDb.GetChildrenCompany(stock.Symbol);
                    var i = 0;
                    foreach (DataRow cdr in cdt.Rows)
                    {
                        i++;
                        var child = new OtherCompany() { Name = cdr["CompanyName"].ToString(), Note = cdr["NoteInfo"].ToString(), OwnershipRate = double.Parse(cdr["Rate"].ToString()), Order = i, SharedCapital = double.Parse(cdr["TotalShareValue"].ToString()), Symbol = stock.Symbol, TotalCapital = double.Parse(cdr["CharterCapital"].ToString()) };
                        if (cdr["isCongTyCon"].ToString() == "1") subsidiaries.Add(child);
                        else associates.Add(child);
                    }
                    profile.Subsidiaries = subsidiaries;
                    profile.AssociatedCompanies = associates;

                    //profile - commonInfo
                    var commonInfo = new CommonInfo() { Symbol = stock.Symbol, Capital = double.Parse(row["VonDieuLe"].ToString()), Category = row["CategoryName"].ToString(), Content = row["About"].ToString(), OutstandingVolume = double.Parse(row["TotalShare"].ToString()), TotalVolume = double.Parse(row["SLCPNY"].ToString()) };
                    commonInfo.Content += "<p><b>Địa chỉ:</b> " + row["Address"].ToString() + "</p>";
                    commonInfo.Content += "<p><b>Điện thoại:</b> " + row["Phone"].ToString() + "</p>";
                    commonInfo.Content += "<p><b>Người phát ngôn:</b> " + row["Spokenman"].ToString() + "</p>";
                    if (string.IsNullOrEmpty(row["Email"].ToString())) commonInfo.Content += "<p><b>Email:</b> <a href='mailto:" + row["Email"] + "'>" + row["Email"] + "</a></p>";
                    if (string.IsNullOrEmpty(row["Website"].ToString())) commonInfo.Content += "<p><b>Website:</b> <a href='" + row["Website"] + "'>" + row["Website"] + "</a></p>";

                    profile.commonInfos = commonInfo;


                    //profile - financePeriod
                    var fyt = SqlDb.GetFinancePeriod(stock.Symbol);
                    var periods = new List<FinancePeriod>();
                    FinancePeriod period = null;
                    var tmp = 0;
                    foreach (DataRow fyr in fyt.Rows)
                    {
                        if (period == null || tmp != int.Parse(fyr["Year"].ToString()) * 10 + int.Parse(fyr["QuarterType"].ToString()))
                        {
                            if (period != null) { period.UpdateTitle(); periods.Add(period); }
                            period = new FinancePeriod() { Quarter = int.Parse(fyr["QuarterType"].ToString()), Year = int.Parse(fyr["Year"].ToString()) };
                        }
                        tmp = int.Parse(fyr["Year"].ToString()) * 10 + int.Parse(fyr["QuarterType"].ToString());
                        switch (fyr["MaChiTieu"].ToString())
                        {
                            case "Audited":
                                period.SubTitle = fyr["TieuDeNhom"].ToString();
                                break;
                            case "QuarterModify":
                                var qrt = fyr["TieuDeNhom"].ToString();
                                var qrti = 0;
                                if (qrt.EndsWith("T")) { period.QuarterTitle = qrt.Remove(qrt.Length - 1) + " tháng"; }
                                else if (int.TryParse(qrt, out qrti) && qrti >= 1 && qrti < 5)
                                {
                                    period.QuarterTitle = "Quý " + qrti;
                                }
                                else period.QuarterTitle = "";
                                break;
                            case "YearModify":
                                if (int.TryParse(fyr["TieuDeNhom"].ToString(), out qrti))
                                {
                                    period.YearTitle = "Năm " + qrti;
                                }
                                else period.YearTitle = "";
                                break;
                            case "FromDate":
                                qrt = fyr["TieuDeNhom"].ToString();
                                if (qrt.Contains("/"))
                                    period.BeginTitle = qrt.Substring(0, qrt.LastIndexOf("/"));
                                break;
                            case "ToDate":
                                qrt = fyr["TieuDeNhom"].ToString();
                                if (qrt.Contains("/"))
                                    period.EndTitle = qrt.Substring(0, qrt.LastIndexOf("/"));
                                break;
                            default:
                                break;
                        }
                    }
                    if (period != null) { period.UpdateTitle(); periods.Add(period); }
                    profile.FinancePeriods = periods;

                    //profile - financeInfo
                    var financeInfo = new List<FinanceInfo>();
                    var fit = SqlDb.GetChiTieuFinance(stock.Symbol);
                    var fvt = SqlDb.GetFinanceData(stock.Symbol);
                    var groupId = 0;
                    FinanceInfo info = null;
                    foreach (DataRow fir in fit.Rows)
                    {
                        if (info == null || groupId != int.Parse(fir["LoaiChiTieu"].ToString()))
                        {
                            if (info != null) financeInfo.Add(info);
                            info = new FinanceInfo() { NhomChiTieuId = groupId, Symbol = stock.Symbol, TenNhomChiTieu = fir["TenLoaiChiTieu"].ToString() };
                        }
                        groupId = int.Parse(fir["LoaiChiTieu"].ToString());
                        var chiTieu = new FinanceChiTieu() { ChiTieuId = fir["MaChiTieu"].ToString(), TenChiTieu = fir["TieuDeKhac"].ToString() };
                        if (fir["MaChiTieu"].ToString() == "ROA")
                        {
                            int b = 0;
                        }
                        foreach (var financePeriod in periods)
                        {
                            var fvrs = fvt.Select("MaChiTieu = '" + fir["MaChiTieu"] + "' AND Year = " + financePeriod.Year + " AND QuarterType = " + financePeriod.Quarter);
                            if (fvrs.Length > 0)
                            {
                                chiTieu.Values.Add(new FinanceValue() { Quarter = financePeriod.Quarter, Year = financePeriod.Year, Value = double.Parse(fvrs[0]["FinanceValue"].ToString()) });
                            }
                            else
                            {
                                chiTieu.Values.Add(new FinanceValue() { Quarter = financePeriod.Quarter, Year = financePeriod.Year, Value = 0 });
                            }
                        }

                        info.ChiTieus.Add(chiTieu);
                    }
                    if (info != null) financeInfo.Add(info);
                    profile.financeInfos = financeInfo;

                    //profile - leader
                    var leaders = new List<Leader>();
                    var ldt = SqlDb.GetCeos(stock.Symbol);
                    foreach (DataRow ldr in ldt.Rows)
                    {
                        leaders.Add(new Leader() { GroupID = ldr["ParentId"].ToString(), Name = ldr["FullName"].ToString(), Positions = ldr["TenNhom"].ToString() });
                    }
                    profile.Leaders = leaders;

                    //profile - owner
                    var owners = new List<MajorOwner>();
                    var odt = SqlDb.GetShareHolders(stock.Symbol);
                    foreach (DataRow odr in odt.Rows)
                    {
                        owners.Add(new MajorOwner() { Name = odr["FullName"].ToString(), Rate = double.Parse(odr["ShareHoldPct"].ToString()), ToDate = (DateTime)odr["DenNgay"], Volume = double.Parse(odr["SoCoPhieu"].ToString()) });
                    }
                    profile.MajorOwners = owners;

                    stock.CompanyProfile = profile;

                    //business plans
                    var plans = new List<BusinessPlan>();
                    if (row["HasPlan"].ToString() == "1")
                    {
                        plans.Add(new BusinessPlan() { Body = row["PlanNote"].ToString(), Date = (DateTime)row["PlanDate"], DividendsMoney = double.Parse(row["Dividend"].ToString()), DividendsStock = double.Parse(row["DivStock"].ToString()), ID = int.Parse(row["PlanId"].ToString()), IncreaseExpected = double.Parse(row["CapitalRaising"].ToString()), ProfitATax = double.Parse(row["NetIncome"].ToString()), ProfitBTax = double.Parse(row["TotalProfit"].ToString()), Revenue = double.Parse(row["TotalIncome"].ToString()), Symbol = stock.Symbol, Year = int.Parse(row["KYear"].ToString()) });
                    }
                    stock.BusinessPlans1 = plans;

                    //dividend histories
                    var divs = new List<DividendHistory>();
                    var ddt = SqlDb.GetDividendHistory(stock.Symbol);
                    foreach (DataRow ddr in ddt.Rows)
                    {
                        divs.Add(new DividendHistory() { DonViDoiTuong = ddr["DonViDoiTuong"].ToString(), NgayGDKHQ = (DateTime)ddr["NgayGDKHQ"], GhiChu = ddr["GhiChu"].ToString(), SuKien = ddr["SuKien"].ToString(), Symbol = stock.Symbol, TiLe = ddr["TiLe"].ToString() });
                    }
                    stock.DividendHistorys = divs;

                    //báo cáo phân tích
                    var reports = new List<Reports>();
                    var rdt = SqlDb.GetAnalysisReports(stock.Symbol);
                    foreach (DataRow rdr in rdt.Rows)
                    {
                        reports.Add(new Reports() { ID = int.Parse(rdr["ID"].ToString()), Title = rdr["title"].ToString(), DateDeploy = (DateTime)rdr["PublishDate"], ResourceCode = rdr["Source"].ToString(), IsHot = rdr["IsHot"].ToString().ToLower() == "true" });
                    }
                    stock.Reports3 = reports;

                    //công ty cùng ngành
                    var samecateCompanies = new List<StockShortInfo>();
                    var scdt = SqlDb.GetSameCateCompanies(stock.Symbol);
                    foreach (DataRow scdr in scdt.Rows)
                    {
                        samecateCompanies.Add(new StockShortInfo() { Symbol = scdr["StockSymbol"].ToString(), TradeCenterId = int.Parse(scdr["TradeCenterId"].ToString()), Name = scdr["FullName"].ToString(), EPS = double.Parse(scdr["EPS"].ToString()) });
                    }
                    stock.SameCategory = samecateCompanies;

                    //eps tương đương
                    var sameEPSCompanies = new List<StockShortInfo>();
                    var sedt = SqlDb.GetSameEPSCompanies(stock.Symbol);
                    foreach (DataRow sedr in sedt.Rows)
                    {
                        sameEPSCompanies.Add(new StockShortInfo() { Symbol = sedr["StockSymbol"].ToString(), TradeCenterId = int.Parse(sedr["TradeCenterId"].ToString()), Name = sedr["FullName"].ToString(), EPS = double.Parse(sedr["EPS"].ToString()), MarketValue = double.Parse(sedr["MarketCap"].ToString()) });
                    }
                    stock.SameEPS = sameEPSCompanies;

                    //pe tương đương
                    var samePECompanies = new List<StockShortInfo>();
                    var spdt = SqlDb.GetSamePECompanies(stock.Symbol);
                    foreach (DataRow spdr in spdt.Rows)
                    {
                        samePECompanies.Add(new StockShortInfo() { Symbol = spdr["StockSymbol"].ToString(), TradeCenterId = int.Parse(spdr["TradeCenterId"].ToString()), Name = spdr["FullName"].ToString(), EPS = double.Parse(spdr["EPS"].ToString()), MarketValue = double.Parse(spdr["MarketCap"].ToString()) });
                    }
                    stock.SamePE = samePECompanies;

                    //stock history
                    var history = new StockCompactHistory();

                    //stock history - price
                    var price = new List<PriceCompactHistory>();
                    var pdt = SqlDb.GetPriceHistory(stock.Symbol, 10);
                    foreach (DataRow pdr in pdt.Rows)
                    {
                        price.Add(new PriceCompactHistory() { ClosePrice = double.Parse(pdr["Price"].ToString()), BasicPrice = double.Parse(pdr["BasicPrice"].ToString()), Ceiling = double.Parse(pdr["Ceiling"].ToString()), Floor = double.Parse(pdr["Floor"].ToString()), Volume = double.Parse(pdr["Volume"].ToString()), TotalValue = double.Parse(pdr["TotalValue"].ToString()), TradeDate = (DateTime)pdr["TradeDate"] });

                    }
                    history.Price = price;

                    //stock history - order
                    var order = new List<OrderCompactHistory>();
                    var hodt = SqlDb.GetOrderHistory(stock.Symbol, 10);
                    foreach (DataRow hodr in hodt.Rows)
                    {
                        order.Add(new OrderCompactHistory() { AskAverageVolume = double.Parse(hodr["AskAverage"].ToString()), AskLeft = double.Parse(hodr["AskLeft"].ToString()), BidAverageVolume = double.Parse(hodr["BidAverage"].ToString()), BidLeft = double.Parse(hodr["BidLeft"].ToString()), TradeDate = (DateTime)hodr["Trading_Date"] });
                    }
                    history.Orders = order;

                    //stock history - foreign
                    var foreign = new List<ForeignCompactHistory>();
                    var fdt = SqlDb.GetForeignHistory(stock.Symbol, 10);
                    foreach (DataRow fdr in fdt.Rows)
                    {
                        foreign.Add(new ForeignCompactHistory() { BuyPercent = double.Parse(fdr["FBuyPercent"].ToString()), SellPercent = double.Parse(fdr["FSellPercent"].ToString()), NetVolume = double.Parse(fdr["FNetVolume"].ToString()), NetValue = double.Parse(fdr["FNetValue"].ToString()), TradeDate = (DateTime)fdr["Trading_Date"] });
                    }
                    history.Foreign = foreign;

                    stock.StockPriceHistory = history;

                    //tin tức và sự kiện
                    var news = new List<StockNews>();
                    var ndt = SqlDb.GetCompanyNews(stock.Symbol, -1);
                    foreach (DataRow ndr in ndt.Rows)
                    {
                        news.Add(new StockNews() { DateDeploy = (DateTime)ndr["PostTime"], ID = int.Parse(ndr["Id"].ToString()), Title = ndr["Title"].ToString(), TypeID = ndr["ConfigId"].ToString() });
                    }
                    stock.StockNews = news;

                    #endregion
                    var end2 = DateTime.Now;

                    //var st = BLFACTORY.RedisClient.Get<Stock>("stock:stockid:ACB:Object");
                    string key = string.Format(RedisKey.Key, symbol);
                    //var redis = new RedisClient(ConfigRedis.Host, ConfigRedis.Port);
                    if (redis.ContainsKey(key))
                        redis.Set<Stock>(key, stock);
                    else
                        redis.Add<Stock>(key, stock);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(symbol + " : " + ex.ToString());
                }

            }
            DateTime end = DateTime.Now;
            MessageBox.Show("DOne");


            //var set = DateTime.Now;

            //textBox3.Text = set.ToString();

            ////var st = redis.Get<Stock>(key);
            //var get = DateTime.Now;
            //textBox4.Text = get.ToString();

        }
        public override void InternalGenerateChart()
        {
            if (gameObject.activeInHierarchy == false)
            {
                return;
            }
            base.InternalGenerateChart();

            if (FitToContainer)
            {
                RectTransform trans = GetComponent <RectTransform>();
                widthRatio  = trans.rect.width;
                heightRatio = trans.rect.height;
            }
            ClearChart();

            if (Data == null)
            {
                return;
            }
            GenerateAxis(true);

            double minX = ((IInternalCandleData)Data).GetMinValue(0, false);
            double minY = ((IInternalCandleData)Data).GetMinValue(1, false);
            double maxX = ((IInternalCandleData)Data).GetMaxValue(0, false);
            double maxY = ((IInternalCandleData)Data).GetMaxValue(1, false);

            double xScroll = GetScrollOffset(0);
            double yScroll = GetScrollOffset(1);
            double xSize   = maxX - minX;
            double ySize   = maxY - minY;
            double xOut    = minX + xScroll + xSize;
            double yOut    = minY + yScroll + ySize;

            DoubleVector3 min = new DoubleVector3(xScroll + minX, yScroll + minY);
            DoubleVector3 max = new DoubleVector3(xOut, yOut);

            Rect viewRect = new Rect(0f, 0f, widthRatio, heightRatio);

            int  total = ((IInternalCandleData)Data).TotalCategories + 1;
            bool edit  = false;

            ClearBillboard();
            mActiveTexts.Clear();
            int        index = 0;
            GameObject mask  = CreateRectMask(viewRect);

            foreach (CandleChartData.CategoryData data in ((IInternalCandleData)Data).Categories)
            {
                mClipped.Clear();
                mTransformed.Clear();
                int refrenceIndex = ClipCandles(data.Data, mClipped);

                TransformCandles(mClipped, mTransformed, viewRect, min, max);

                if (data.Data.Count == 0 && ChartCommon.IsInEditMode)
                {
                    int   tmpIndex = total - 1 - index;
                    float low      = (((float)tmpIndex) / (float)total);
                    float high     = (((float)tmpIndex + 1) / (float)total);
                    float y1       = Mathf.Lerp(high, low, 0.6f);
                    float y2       = Mathf.Lerp(high, low, 0.3f);
                    mTransformed.Clear();
                    mTransformed.Add(InterpolateCandleInRect(new CandleChartData.CandleValue(y1, high, low, y2, 0.1, 0.1), viewRect));
                    mTransformed.Add(InterpolateCandleInRect(new CandleChartData.CandleValue(y1, low, high, y2, 0.5, 0.2), viewRect));
                    edit = true;
                    index++;
                }
                CategoryObject categoryObj = new CategoryObject(this);
                CanvasCandle   up          = CreateDataObject(data, mask);
                CanvasCandle   down        = CreateDataObject(data, mask);

                FillCurrentSeries(true, refrenceIndex);
                up.Generate(this, viewRect, mCurrentSeries, data.UpCandle);

                FillCurrentSeries(false, refrenceIndex);
                down.Generate(this, viewRect, mCurrentSeries, data.DownCandle);

                string catName = data.Name;

                categoryObj.mUp   = up;
                categoryObj.mDown = down;
                categoryObj.HookEvents();

                GenerateItemLabels(false, categoryObj, data, viewRect, refrenceIndex, edit);

                categoryObj.Hover        += (idx, t, d, pos) => { Category_Hover(catName, idx, t, d, pos); };
                categoryObj.Click        += (idx, t, d, pos) => { Category_Click(catName, idx, t, d, pos); };
                categoryObj.Leave        += () => { Category_Leave(catName); };
                mCategoryObjects[catName] = categoryObj;
            }
        }
        void GenerateItemLabels(bool realTime, CategoryObject categoryObj, CandleChartData.CategoryData data, Rect viewRect, int refrenceIndex, bool edit)
        {
            if (mItemLabels != null && mItemLabels.isActiveAndEnabled)
            {
                CanvasChartMesh m = null;
                if (realTime)
                {
                    m = categoryObj.mItemLabels;
                    if (m == null)
                    {
                        return;
                    }
                    m.Clear();
                }
                else
                {
                    m                       = new CanvasChartMesh(true);
                    m.RecycleText           = true;
                    categoryObj.mItemLabels = m;
                }

                Rect textRect = viewRect;
                textRect.xMin -= 1f;
                textRect.yMin -= 1f;
                textRect.xMax += 1f;
                textRect.yMax += 1f;

                for (int i = 0; i < mTransformed.Count; i++)
                {
                    Vector2 pointValue = mTransformed[i].MidPoint.ToVector2();

                    if (textRect.Contains(pointValue) == false)
                    {
                        continue;
                    }

                    CandleChartData.CandleValue candleVal = mTransformed[i];
                    int candleIndex = i + refrenceIndex;
                    if (edit == false)
                    {
                        candleVal = data.Data[i + refrenceIndex];
                    }
                    Vector3 labelPos = ((Vector3)pointValue) + new Vector3(mItemLabels.Location.Breadth, mItemLabels.Seperation, mItemLabels.Location.Depth);
                    if (mItemLabels.Alignment == ChartLabelAlignment.Base)
                    {
                        labelPos.y -= (float)mTransformed[i].MidPoint.y;
                    }

                    string toSet;
                    if (realTime == false || categoryObj.mCahced.TryGetValue(candleIndex, out toSet) == false)
                    {
                        string Open     = StringFromAxisFormat(new DoubleVector3(candleVal.Start, candleVal.Open, 0.0), mVerticalAxis, false);
                        string Close    = StringFromAxisFormat(new DoubleVector3(candleVal.Start, candleVal.Close, 0.0), mVerticalAxis, false);
                        string High     = StringFromAxisFormat(new DoubleVector3(candleVal.Start, candleVal.High, 0.0), mVerticalAxis, false);
                        string Low      = StringFromAxisFormat(new DoubleVector3(candleVal.Start, candleVal.Low, 0.0), mVerticalAxis, false);
                        string Start    = StringFromAxisFormat(new DoubleVector3(candleVal.Start, candleVal.Open, 0.0), mHorizontalAxis, true);
                        string Duration = StringFromAxisFormat(new DoubleVector3(candleVal.Duration, candleVal.Open, 0.0), mHorizontalAxis, true);
                        FormatItem(mRealtimeStringBuilder, Open, Close, High, Low, Start, Duration);
                        toSet = mItemLabels.TextFormat.Format(mRealtimeStringBuilder.ToString(), data.Name, "");
                        categoryObj.mCahced[candleIndex] = toSet;
                    }
                    labelPos -= new Vector3(CanvasFitOffset.x * TotalWidth, CanvasFitOffset.y * TotalHeight, 0f);
                    BillboardText billboard = m.AddText(this, mItemLabels.TextPrefab, transform, mItemLabels.FontSize, mItemLabels.FontSharpness, toSet, labelPos.x, labelPos.y, labelPos.z, 0f, null);
                    TextController.AddText(billboard);
                    AddBillboardText(data.Name, i + refrenceIndex, billboard);
                }

                if (realTime)
                {
                    m.DestoryRecycled();
                    if (m.TextObjects != null)
                    {
                        foreach (BillboardText text in m.TextObjects)
                        {
                            ((IInternalUse)this).InternalTextController.AddText(text);
                        }
                    }
                }
            }
        }
        public override void GenerateRealtime()
        {
            if (SupressRealtimeGeneration)
            {
                return;
            }

            base.GenerateRealtime();

            double minX = ((IInternalCandleData)Data).GetMinValue(0, false);
            double minY = ((IInternalCandleData)Data).GetMinValue(1, false);
            double maxX = ((IInternalCandleData)Data).GetMaxValue(0, false);
            double maxY = ((IInternalCandleData)Data).GetMaxValue(1, false);

            double xScroll = GetScrollOffset(0);
            double yScroll = GetScrollOffset(1);
            double xSize   = maxX - minX;
            double ySize   = maxY - minY;
            double xOut    = minX + xScroll + xSize;
            double yOut    = minY + yScroll + ySize;

            DoubleVector3 min = new DoubleVector3(xScroll + minX, yScroll + minY);
            DoubleVector3 max = new DoubleVector3(xOut, yOut);

            Rect viewRect = new Rect(0f, 0f, widthRatio, heightRatio);

            ClearBillboardCategories();
            bool edit = false;

            foreach (CandleChartData.CategoryData data in ((IInternalCandleData)Data).Categories)
            {
                CategoryObject obj = null;

                if (mCategoryObjects.TryGetValue(data.Name, out obj) == false)
                {
                    continue;
                }

                mClipped.Clear();
                mTransformed.Clear();
                int refrenceIndex = ClipCandles(data.Data, mClipped);

                TransformCandles(mClipped, mTransformed, viewRect, min, max);

                if (data.Data.Count == 0 && ChartCommon.IsInEditMode)
                {
                    edit = true;
                }

                mTmpToRemove.Clear();
                int range = refrenceIndex + mClipped.Count;
                foreach (int key in obj.mCahced.Keys)
                {
                    if (key < refrenceIndex || key > range)
                    {
                        mTmpToRemove.Add(key);
                    }
                }

                for (int i = 0; i < mTmpToRemove.Count; i++)
                {
                    obj.mCahced.Remove(mTmpToRemove[i]);
                }

                obj.mCahced.Remove(data.Data.Count - 1); // never store the last point cache , it might be intepolating by the realtime feature

                if (data.Data.Count == 0)
                {
                    continue;
                }

                GenerateItemLabels(true, obj, data, viewRect, refrenceIndex, edit);

                if (obj.mUp != null)
                {
                    FillCurrentSeries(true, refrenceIndex);
                    obj.mUp.Generate(this, viewRect, mCurrentSeries, data.UpCandle);
                }
                if (obj.mDown != null)
                {
                    FillCurrentSeries(false, refrenceIndex);
                    obj.mDown.Generate(this, viewRect, mCurrentSeries, data.DownCandle);
                }
            }
        }
 public async Task AddCategory(CategoryObject o)
 {
     categoryObjects.Add(o);
 }
Exemple #20
0
 //
 public Sprite LoadCategorySpriteByCategory(CategoryObject _category, bool _local = false)
 {
     return(LoadCategorySpriteByName(_category.m_photo, _local));
 }
    //public void SetLevel(int _level)
    //{
    //    m_choosenLevel = _level;
    //}

    public void SetCategory(CategoryObject _category)
    {
        m_choosenCategory = _category;
        m_listWord        = GetWordsInCategory(m_choosenCategory);
    }
Exemple #22
0
        public override void InternalGenerateChart()
        {
            if (gameObject.activeInHierarchy == false)
            {
                return;
            }

            base.InternalGenerateChart();

            if (FitToContainer)
            {
                RectTransform trans = GetComponent <RectTransform>();
                widthRatio  = trans.rect.width;
                heightRatio = trans.rect.height;
            }

            ClearChart();

            if (Data == null)
            {
                return;
            }

            GenerateAxis(true);
            double minX = ((IInternalGraphData)Data).GetMinValue(0, false);
            double minY = ((IInternalGraphData)Data).GetMinValue(1, false);
            double maxX = ((IInternalGraphData)Data).GetMaxValue(0, false);
            double maxY = ((IInternalGraphData)Data).GetMaxValue(1, false);

            double xScroll = GetScrollOffset(0);
            double yScroll = GetScrollOffset(1);
            double xSize   = maxX - minX;
            double ySize   = maxY - minY;
            double xOut    = minX + xScroll + xSize;
            double yOut    = minY + yScroll + ySize;

            DoubleVector3 min = new DoubleVector3(xScroll + minX, yScroll + minY);
            DoubleVector3 max = new DoubleVector3(xOut, yOut);

            Rect viewRect = new Rect(0f, 0f, widthRatio, heightRatio);

            int  index = 0;
            int  total = ((IInternalGraphData)Data).TotalCategories + 1;
            bool edit  = false;

            ClearBillboard();
            mActiveTexts.Clear();

            GameObject mask = CreateRectMask(viewRect);

            foreach (GraphData.CategoryData data in ((IInternalGraphData)Data).Categories)
            {
                mClipped.Clear();
                DoubleVector3[] points = data.getPoints().ToArray();
                Rect            uv;
                int             refrenceIndex = ClipPoints(points, mClipped, out uv);
                TransformPoints(mClipped, mTransformed, viewRect, min, max);

                if (points.Length == 0 && ChartCommon.IsInEditMode)
                {
                    edit = true;
                    int   tmpIndex = total - 1 - index;
                    float y1       = (((float)tmpIndex) / (float)total);
                    float y2       = (((float)tmpIndex + 1) / (float)total);

                    DoubleVector3 pos1 = ChartCommon.interpolateInRect(viewRect, new DoubleVector3(0f, y1, -1f)).ToDoubleVector3();
                    DoubleVector3 pos2 = ChartCommon.interpolateInRect(viewRect, new DoubleVector3(0.5f, y2, -1f)).ToDoubleVector3();
                    DoubleVector3 pos3 = ChartCommon.interpolateInRect(viewRect, new DoubleVector3(1f, y1, -1f)).ToDoubleVector3();

                    points = new DoubleVector3[] { pos1, pos2, pos3 };
                    mTransformed.AddRange(points.Select(x => (Vector4)x.ToVector3()));
                    index++;
                }

                List <CanvasLines.LineSegement> list = new List <CanvasLines.LineSegement>();
                list.Add(new CanvasLines.LineSegement(mTransformed));
                CategoryObject categoryObj = new CategoryObject();

                if (data.FillMaterial != null)
                {
                    CanvasLines fill = CreateDataObject(data, mask);
                    fill.material = data.FillMaterial;
                    fill.SetRefrenceIndex(refrenceIndex);
                    fill.SetLines(list);
                    fill.SetViewRect(viewRect, uv);
                    fill.MakeFillRender(viewRect, data.StetchFill);
                    categoryObj.mFill = fill;
                }

                if (data.LineMaterial != null)
                {
                    CanvasLines lines = CreateDataObject(data, mask);

                    float tiling = 1f;
                    if (data.LineTiling.EnableTiling == true && data.LineTiling.TileFactor > 0f)
                    {
                        float length = 0f;
                        for (int i = 1; i < mTransformed.Count; i++)
                        {
                            length += (mTransformed[i - 1] - mTransformed[i]).magnitude;
                        }
                        tiling = length / data.LineTiling.TileFactor;
                    }
                    if (tiling <= 0.0001f)
                    {
                        tiling = 1f;
                    }
                    lines.SetViewRect(viewRect, uv);
                    lines.Thickness = (float)data.LineThickness;
                    lines.Tiling    = tiling;
                    lines.SetRefrenceIndex(refrenceIndex);
                    lines.material = data.LineMaterial;
                    lines.SetHoverPrefab(data.LineHoverPrefab);
                    lines.SetLines(list);
                    categoryObj.mLines = lines;
                }

                //if (data.PointMaterial != null)
                //{
                CanvasLines dots = CreateDataObject(data, mask);
                categoryObj.mDots = dots;
                dots.material     = data.PointMaterial;
                dots.SetLines(list);
                Rect  pickRect = viewRect;
                float halfSize = (float)data.PointSize * 0.5f;
                pickRect.xMin -= halfSize;
                pickRect.yMin -= halfSize;
                pickRect.xMax += halfSize;
                pickRect.yMax += halfSize;
                dots.SetViewRect(pickRect, uv);
                dots.SetRefrenceIndex(refrenceIndex);
                dots.SetHoverPrefab(data.PointHoverPrefab);

                if (data.PointMaterial != null)
                {
                    dots.MakePointRender((float)data.PointSize);
                }
                else
                {
                    dots.MakePointRender(0f);
                }

                if (mItemLabels != null && mItemLabels.isActiveAndEnabled)
                {
                    CanvasChartMesh m = new CanvasChartMesh(true);
                    m.RecycleText           = true;
                    categoryObj.mItemLabels = m;
                    Rect textRect = viewRect;
                    textRect.xMin -= 1f;
                    textRect.yMin -= 1f;
                    textRect.xMax += 1f;
                    textRect.yMax += 1f;
                    for (int i = 0; i < mTransformed.Count; i++)
                    {
                        if (mTransformed[i].w == 0f)
                        {
                            continue;
                        }
                        DoubleVector2 pointValue = new DoubleVector2(mTransformed[i]);
                        if (textRect.Contains(pointValue.ToVector2()) == false)
                        {
                            continue;
                        }
                        if (edit == false)
                        {
                            pointValue = Data.GetPoint(data.Name, i + refrenceIndex).ToDoubleVector2();
                        }
                        string  xFormat  = StringFromAxisFormat(pointValue.x, mHorizontalAxis, mItemLabels.FractionDigits, true);
                        string  yFormat  = StringFromAxisFormat(pointValue.y, mVerticalAxis, mItemLabels.FractionDigits, false);
                        Vector3 labelPos = ((Vector3)mTransformed[i]) + new Vector3(mItemLabels.Location.Breadth, mItemLabels.Seperation, mItemLabels.Location.Depth);
                        if (mItemLabels.Alignment == ChartLabelAlignment.Base)
                        {
                            labelPos.y -= mTransformed[i].y;
                        }
                        FormatItem(mRealtimeStringBuilder, xFormat, yFormat);
                        string        formatted = mRealtimeStringBuilder.ToString();
                        string        toSet     = mItemLabels.TextFormat.Format(formatted, data.Name, "");
                        BillboardText billboard = m.AddText(this, mItemLabels.TextPrefab, transform, mItemLabels.FontSize, mItemLabels.FontSharpness, toSet, labelPos.x, labelPos.y, labelPos.z, 0f, null);
                        //                          BillboardText billboard = ChartCommon.CreateBillboardText(null,mItemLabels.TextPrefab, transform, toSet, labelPos.x, labelPos.y, labelPos.z, 0f, null, hideHierarchy, mItemLabels.FontSize, mItemLabels.FontSharpness);
                        TextController.AddText(billboard);
                        AddBillboardText(data.Name, i + refrenceIndex, billboard);
                    }
                }
                string catName = data.Name;
                dots.Hover += (idx, t, d, pos) => { Dots_Hover(catName, idx, pos); };
                dots.Click += (idx, t, d, pos) => { Dots_Click(catName, idx, pos); };
                dots.Leave += () => { Dots_Leave(catName); };
                mCategoryObjects[catName] = categoryObj;
            }
        }
Exemple #23
0
 //get list word in category by category name
 public List <WordObject> GetWordsInCategory(CategoryObject _category)
 {
     return(GetWordsInCategoryById(_category.m_id));
 }
Exemple #24
0
        void LoadTemplate()
        {
            ClearObjects();
            buttonsDict.Clear();

            foreach (TagButton tag in template.List.OfType <TagButton>())
            {
                TagObject to = new TagObject(tag);
                to.ClickedEvent += HandleTaggerClickedEvent;
                to.Mode          = Mode;
                AddButton(to);
            }

            foreach (AnalysisEventButton cat in template.List.OfType <AnalysisEventButton>())
            {
                CategoryObject co = new CategoryObject(cat);
                co.ClickedEvent        += HandleTaggerClickedEvent;
                co.EditButtonTagsEvent += (t) => EditButtonTagsEvent(t);
                co.Mode = Mode;
                AddButton(co);
            }
            foreach (PenaltyCardButton c in template.List.OfType <PenaltyCardButton>())
            {
                CardObject co = new CardObject(c);
                co.ClickedEvent += HandleTaggerClickedEvent;
                co.Mode          = Mode;
                AddButton(co);
            }
            foreach (ScoreButton s in template.List.OfType <ScoreButton>())
            {
                ScoreObject co = new ScoreObject(s);
                co.ClickedEvent += HandleTaggerClickedEvent;
                co.Mode          = Mode;
                AddButton(co);
            }

            foreach (TimerButton t in template.List.OfType <TimerButton>())
            {
                TimerObject to = new TimerObject(t);
                to.ClickedEvent += HandleTaggerClickedEvent;
                to.Mode          = Mode;
                if (Project != null && t.BackgroundImage == null)
                {
                    if (t.Timer.Team == TeamType.LOCAL)
                    {
                        to.TeamImage = Project.LocalTeamTemplate.Shield;
                    }
                    else if (t.Timer.Team == TeamType.VISITOR)
                    {
                        to.TeamImage = Project.VisitorTeamTemplate.Shield;
                    }
                }
                AddButton(to);
            }

            foreach (DashboardButtonObject buttonObject in buttonsDict.Values)
            {
                foreach (ActionLink link in buttonObject.Button.ActionLinks)
                {
                    LinkAnchorObject sourceAnchor, destAnchor;
                    ActionLinkObject linkObject;

                    sourceAnchor = buttonObject.GetAnchor(link.SourceTags);
                    try {
                        destAnchor = buttonsDict [link.DestinationButton].GetAnchor(link.DestinationTags);
                    } catch {
                        Log.Error("Skipping link with invalid destination tags");
                        continue;
                    }
                    linkObject         = new ActionLinkObject(sourceAnchor, destAnchor, link);
                    link.SourceButton  = buttonObject.Button;
                    linkObject.Visible = ShowLinks;
                    AddObject(linkObject);
                }
            }
            Edited = false;
            SizeChanged();
        }
Exemple #25
0
 void Awake()
 {
     m_category = DataLoader.Instance.m_categoryList[m_categoryID];
 }
 public Sprite GetCategoryImage(CategoryObject _category)
 {
     return(m_resourcesLoader.LoadCategorySpriteByCategory(_category));
 }
Exemple #27
0
        public override void GenerateRealtime()
        {
            if (SupressRealtimeGeneration)
            {
                return;
            }
            base.GenerateRealtime();

            double minX = ((IInternalGraphData)Data).GetMinValue(0, false);
            double minY = ((IInternalGraphData)Data).GetMinValue(1, false);
            double maxX = ((IInternalGraphData)Data).GetMaxValue(0, false);
            double maxY = ((IInternalGraphData)Data).GetMaxValue(1, false);

            double xScroll = GetScrollOffset(0);
            double yScroll = GetScrollOffset(1);
            double xSize   = maxX - minX;
            double ySize   = maxY - minY;
            double xOut    = minX + xScroll + xSize;
            double yOut    = minY + yScroll + ySize;

            DoubleVector3 min = new DoubleVector3(xScroll + minX, yScroll + minY);
            DoubleVector3 max = new DoubleVector3(xOut, yOut);

            Rect viewRect = new Rect(0f, 0f, widthRatio, heightRatio);

            Transform parentT = transform;

            if (mFixPosition != null)
            {
                parentT = mFixPosition.transform;
            }

            ClearBillboardCategories();

            foreach (GraphData.CategoryData data in ((IInternalGraphData)Data).Categories)
            {
                CategoryObject obj = null;

                if (mCategoryObjects.TryGetValue(data.Name, out obj) == false)
                {
                    continue;
                }

                mClipped.Clear();
                mTmpData.Clear();

                mTmpData.AddRange(data.getPoints());
                Rect uv;// = new Rect(0f, 0f, 1f, 1f);
                int  refrenceIndex = ClipPoints(mTmpData, mClipped, out uv);
                //mClipped.AddRange(mTmpData);
                TransformPoints(mClipped, mTransformed, viewRect, min, max);
                mTmpToRemove.Clear();
                int range = refrenceIndex + mClipped.Count;
                foreach (int key in obj.mCahced.Keys)
                {
                    if (key < refrenceIndex || key > range)
                    {
                        mTmpToRemove.Add(key);
                    }
                }

                for (int i = 0; i < mTmpToRemove.Count; i++)
                {
                    obj.mCahced.Remove(mTmpToRemove[i]);
                }

                obj.mCahced.Remove(mTmpData.Count - 1); // never store the last point cache , it might be intepolating by the realtime feature

                if (mTmpData.Count == 0)
                {
                    continue;
                }
                if (mItemLabels != null && mItemLabels.isActiveAndEnabled && obj.mItemLabels != null)
                {
                    Rect textRect = viewRect;
                    textRect.xMin -= 1f;
                    textRect.yMin -= 1f;
                    textRect.xMax += 1f;
                    textRect.yMax += 1f;

                    CanvasChartMesh m = obj.mItemLabels;
                    m.Clear();

                    for (int i = 0; i < mTransformed.Count; i++)
                    {
                        if (mTransformed[i].w == 0.0)
                        {
                            continue;
                        }
                        Vector3 labelPos = ((Vector3)mTransformed[i]) + new Vector3(mItemLabels.Location.Breadth, mItemLabels.Seperation, mItemLabels.Location.Depth);
                        if (mItemLabels.Alignment == ChartLabelAlignment.Base)
                        {
                            labelPos.y -= (float)mTransformed[i].y;
                        }
                        if (textRect.Contains((Vector2)(mTransformed[i])) == false)
                        {
                            continue;
                        }
                        string toSet      = null;
                        int    pointIndex = i + refrenceIndex;
                        if (obj.mCahced.TryGetValue(pointIndex, out toSet) == false)
                        {
                            DoubleVector3 pointValue = mTmpData[i + refrenceIndex];
                            string        xFormat    = StringFromAxisFormat(pointValue.x, mHorizontalAxis, mItemLabels.FractionDigits, true);
                            string        yFormat    = StringFromAxisFormat(pointValue.y, mVerticalAxis, mItemLabels.FractionDigits, false);
                            FormatItem(mRealtimeStringBuilder, xFormat, yFormat);
                            string formatted = mRealtimeStringBuilder.ToString();
                            mItemLabels.TextFormat.Format(mRealtimeStringBuilder, formatted, data.Name, "");
                            toSet = mRealtimeStringBuilder.ToString();
                            obj.mCahced[pointIndex] = toSet;
                        }
                        BillboardText billboard = m.AddText(this, mItemLabels.TextPrefab, parentT, mItemLabels.FontSize, mItemLabels.FontSharpness, toSet, labelPos.x, labelPos.y, labelPos.z, 0f, null);
                        AddBillboardText(data.Name, i + refrenceIndex, billboard);
                    }

                    m.DestoryRecycled();
                    if (m.TextObjects != null)
                    {
                        foreach (BillboardText text in m.TextObjects)
                        {
                            ((IInternalUse)this).InternalTextController.AddText(text);
                        }
                    }
                }

                if (obj.mDots != null)
                {
                    Rect  pickRect = viewRect;
                    float halfSize = (float)(data.PointSize * 0.5f);
                    pickRect.xMin -= halfSize;
                    pickRect.yMin -= halfSize;
                    pickRect.xMax += halfSize;
                    pickRect.yMax += halfSize;
                    obj.mDots.SetViewRect(pickRect, uv);
                    obj.mDots.ModifyLines(mTransformed);
                    obj.mDots.SetRefrenceIndex(refrenceIndex);
                }

                if (obj.mLines != null)
                {
                    float tiling = 1f;
                    if (data.LineTiling.EnableTiling == true && data.LineTiling.TileFactor > 0f)
                    {
                        float length = 0f;
                        for (int i = 1; i < mTransformed.Count; i++)
                        {
                            length += (mTransformed[i - 1] - mTransformed[i]).magnitude;
                        }
                        tiling = length / data.LineTiling.TileFactor;
                    }
                    if (tiling <= 0.0001f)
                    {
                        tiling = 1f;
                    }
                    obj.mLines.Tiling = tiling;
                    obj.mLines.SetViewRect(viewRect, uv);
                    obj.mLines.ModifyLines(mTransformed);
                    obj.mLines.SetRefrenceIndex(refrenceIndex);
                }

                if (obj.mFill != null)
                {
                    obj.mFill.SetViewRect(viewRect, uv);
                    obj.mFill.ModifyLines(mTransformed);
                    obj.mFill.SetRefrenceIndex(refrenceIndex);
                }
            }
        }
Exemple #28
0
 public async Task FindObjects(CategoryObject e, MedicineObject m)
 {
     var e_id = e.DbRecord?.ID ?? string.Empty;
     var m_id = m.DbRecord?.ID ?? string.Empty;
 }
Exemple #29
0
 public DataTable LoadCategories()
 {
     return(CategoryObject.GetCategories());
 }
 //Set score for category
 public void SetScoreInCategory(CategoryObject _category, int _score)
 {
     DataLoader.Instance.SetScoreInCategory(_category, _score);
 }