Esempio n. 1
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);
            }
        }