public ReturnMessage GetSSCTimer()
        {
            var sh               = new SSCHelper();
            var dt               = DateTime.Now;
            var items            = SSCHelper.GetSSCList(dt);
            var currentItem      = items.FirstOrDefault(r => r.startTime < dt && r.endTime >= dt);
            var timer            = (currentItem.endTime - dt).TotalSeconds.Round(1);
            var nextRefreshTimer = (currentItem.endTime.AddSeconds(80) - dt).TotalSeconds.Round(1);

            return(new ReturnMessage {
                success = true, data = new { name = currentItem.period.Substring(currentItem.period.Length - 3), timer }
            });
        }
        public ReturnMessage GetSSCHistory(int minPeriod = 0)
        {
            var dt = DateTime.Now.Date;

            SSCHelper.FetchSSC(dt);
            using (var dc = new DC())
            {
                var roulette_property_types = CacheHelper.Get("roulette_property_types", () => dc.roulette_property_types.ToList());
                var roulette_propertys      = CacheHelper.Get("roulette_propertys", () => dc.roulette_propertys.ToList());
                var roulette_heros          = CacheHelper.Get("roulette_heros", () => dc.roulette_heros.ToList());
                var roulette_hero_propertys = CacheHelper.Get("roulette_hero_propertys", () => dc.roulette_hero_propertys.ToList());

                var heroCount = roulette_heros.Count(r => r.game_typeId == GameType.id);
                var q         = (
                    from a in SSCHelper.SSCItemList.Where(r => r.endTime < DateTime.Now)
                    let hero = string.IsNullOrWhiteSpace(a.no) ? null : roulette_heros.Where(r => r.game_typeId == GameType.id).Skip(int.Parse(a.no) % heroCount).FirstOrDefault()

                               select new
                {
                    period = int.Parse(a.period.Substring(a.period.Length - 3)),
                    no = string.IsNullOrWhiteSpace(a.no) ? "开奖中" : int.Parse(a.no).ToString("00000"),
                    hero = hero == null ? "正在等待时时彩开奖结果" :
                           (
                        hero.name + " - " +
                        string.Join(" - ",
                                    roulette_hero_propertys
                                    .Where(r => r.roulette_heroId == hero.roulette_heroId)
                                    .Select(r => r.roulette_propertyId)
                                    .Select(r => roulette_propertys.FirstOrDefault(p => p.roulette_propertyId == r))
                                    .Select(r => r.name)
                                    .ToArray())
                           )
                }
                    );

                return(new ReturnMessage {
                    success = true, data = new { history = q.Where(r => r.period > minPeriod).OrderByDescending(r => r.period).ToList() }
                });
            }
        }