Ejemplo n.º 1
0
        public void ExecuteTask()
        {
            try
            {
                if ((ConfigurationManager.AppSettings["StockDataAllowance"] ?? "") != "TRUE") return;
                //log.WriteEntry("Start Stock 1 : " + index, EventLogEntryType.Information);
                var bfirstTime = true;
                Thread.Sleep((index - 1) * 1000);
                var sql = new SqlDb();
                while (ServiceStarted)
                {
                    try
                    {
                        //log.WriteEntry(index + "-start-", EventLogEntryType.Information);
                        if (!bfirstTime) Thread.Sleep(interval);
                        bfirstTime = false;
                        //log.WriteEntry("Start Stock 2 : " + index, EventLogEntryType.Information);
                        var sdt = sql.GetStockUpdate();
                        //log.WriteEntry("Start Stock 2 : " + index + " : " + sdt.Rows.Count, EventLogEntryType.Information);
                        if (sdt.Rows.Count == 0) continue;
                        var symbols = new List<string>();
                        foreach (DataRow sdr in sdt.Rows)
                        {
                            var ts = sdr["Symbol"].ToString().ToUpper();
                            if (symbols.Contains(ts)) continue;
                            symbols.Add(ts);
                        }
                        foreach (var symbol in symbols)
                        {
                            //var symbol = sdt.Rows[0]["Symbol"].ToString().ToUpper();
                            var relobj = new List<string>();
                            var rellst = new List<string>();
                            var relutp = new List<string>();

                            var ids = "";
                            var success = true;
                            //log.WriteEntry(symbol + Environment.NewLine, EventLogEntryType.Information);
                            foreach (DataRow sdr in sdt.Rows)
                            {
                                if (symbol != sdr["Symbol"].ToString().ToUpper()) continue;
                                var related = sdr["RelatedObject"].ToString().ToUpper().Split(',');
                                var updateType = sdr["UpdateType"].ToString().ToUpper();
                                foreach (var s in related)
                                {
                                    if (!relobj.Contains(s)) relobj.Add(s);
                                    if (!s.StartsWith("S"))  //nếu là danh sách
                                    {
                                        if (!rellst.Contains(s)) { rellst.Add(s); relutp.Add(updateType); }
                                        //if (!UpdateList(symbol, s, updateType)) success = false;
                                    }
                                }
                                ids += sdr["UpdateId"].ToString() + ",";
                            }
                            //log.WriteEntry(ids + "-" + success + "-" + relobj.Count, EventLogEntryType.Information);
                            sql.OpenDb();
                            if (relobj.Count > 0)  //update mã
                            {
                                //log.WriteEntry("Update stock - " + symbol + "-" + relobj[0], EventLogEntryType.Information);
                                if (!UpdateStock(symbol, relobj, ref sql)) success = false;
                            }
                            for (var i = 0; i < rellst.Count; i++)
                            {
                                if (!UpdateList(symbol, rellst[i], relutp[i], ref sql)) success = false;
                            }
                            //log.WriteEntry("Start Stock 3 : " + index + " : " + symbol + " : " + ids, EventLogEntryType.Information);
                            if (success && !string.IsNullOrEmpty(ids))
                            {
                                sql.UpdateStockMonitor(ids);
                            }
                            sql.CloseDb();
                        }

                    }
                    catch (Exception ex)
                    {
                        log.WriteEntry(ex.ToString(), EventLogEntryType.Error);
                    }

                }
            }
            catch (Exception ex)
            {
                log.WriteEntry(ex.ToString(), EventLogEntryType.Error);
            }
            finally
            {
                Thread.CurrentThread.Abort();
            }
        }
Ejemplo n.º 2
0
        public void UpdateCeoImage()
        {
            try
            {
                if ((ConfigurationManager.AppSettings["CeoImageAllowance"] ?? "") != "TRUE") return;

                var bfirstTime = true;
                //Thread.Sleep(index * 1000);
                var sql = new SqlDb();
                var redis = new RedisClient(ConfigRedis.Host, ConfigRedis.Port);
                while (ServiceStarted)
                {
                    try
                    {
                        if (!bfirstTime) Thread.Sleep(reportInterval);
                        bfirstTime = false;

                        sql.OpenDb();
                        var ldt = sql.GetAllLandProjects();
                        //var cdt = sql.GetAllCeos();
                        sql.CloseDb();

                        landImages = GetAllLandImages();
                        var keys = redis.SearchKeys(string.Format(RedisKey.BDSKey, "*", "*"));
                        foreach(var key in keys)
                        {
                            var t = key.Substring(key.IndexOf(":tiendocode:"), key.IndexOf(":Object") - key.IndexOf(":tiendocode:")).Replace(":tiendocode:", "");
                            if (ldt.Select("MaTienDo = '" + t + "'").Length == 0)
                            {
                                redis.Remove(key);
                                continue;
                            }
                            var o = redis.Get<TienDoBDS>(key);
                            if(o==null) continue;
                            var s = o.MaTienDo;
                            if (string.IsNullOrEmpty(s)) continue;
                            o.BDSImages = landImages.FindAll(i => i.ToUpper().StartsWith(s));
                            redis.Set(key, o);
                        }

                        ceoPhotos = GetCeoPhotos();
                        foreach (var photo in ceoPhotos)
                        {
                            if (!photo.Contains(".")) continue;
                            var code = photo.Substring(0, photo.IndexOf("."));
                            if (redis.ContainsKey(string.Format(RedisKey.CeoImage, code)))
                            {
                                redis.Set(string.Format(RedisKey.CeoImage, code), photo);
                            }
                            else
                            {
                                redis.Add(string.Format(RedisKey.CeoImage, code), photo);
                            }
                            //var o = redis.Get<Ceo>(string.Format(RedisKey.CeoKey, code));
                            //if (o == null) continue;
                            //o.CeoImage = photo;
                            //redis.Set(string.Format(RedisKey.CeoKey, code), o);
                        }
                        var keywords = SqlDb.GetGoogleTag(-1);
                        var ls = new List<string>();
                        foreach (DataRow keyword in keywords.Rows)
                        {
                            if(!ls.Contains(keyword["keyword"].ToString())) ls.Add(keyword["keyword"].ToString());
                        }
                        //if (redis.ContainsKey(RedisKey.GoogleTag))
                        //    redis.Set(RedisKey.GoogleTag, ls);
                        //else
                        //    redis.Add(RedisKey.GoogleTag, ls);
                    }
                    catch (Exception ex)
                    {
                        log.WriteEntry("UpdateCeoImage - " + ex.ToString(), EventLogEntryType.Error);
                    }
                }
            }
            catch (Exception ex)
            {
                log.WriteEntry("UpdateCeoImage - " + ex.ToString(), EventLogEntryType.Error);
            }
        }