Ejemplo n.º 1
0
        /// <summary>
        /// 如果未设置, 则设置该秒价格
        /// </summary>
        /// <param name="pr"></param>
        public void AddPriceIfNotSet(PagePrice pr)
        {
            if (GetSecPrice(pr.pageTime.Second) != null)
            {
                logger.InfoFormat("pageTime#{0} already setted ", pr);
                return;
            }

            prices[pr.pageTime.Second] = pr;
        }
Ejemplo n.º 2
0
        /// <summary>
        ///  尝试对 该秒 计算
        ///  如果 该秒 当前已被计算过,则返回 false
        ///  如果 该秒 当前未被计算过,则返回 true, 且设置 该秒 已被计算过
        /// </summary>
        /// <param name="pr"></param>
        /// <returns></returns>
        public bool TryStartPagePrice(PagePrice pr)
        {
            lock (logger)
            {
                if (IsPagePriceCalced(pr))
                {
                    return(false);
                }

                if (pr.pageTime.Second < lastCalcedSec || pr.pageTime.Hour != 11 || pr.pageTime.Minute != 29)
                {
                    logger.WarnFormat("price#{0}, last-calc-sec#{1}, is not legal", pr, lastCalcedSec);
                    return(false);
                }

                flags[pr.pageTime.Second] = 1;
                lastCalcedSec             = pr.pageTime.Second;
                logger.DebugFormat("at {0}, set lastCalcedSec to {1}  ", pr, lastCalcedSec);

                return(true);
            }
        }
Ejemplo n.º 3
0
 /// <summary>
 /// 该秒 是否 已被计算过
 /// </summary>
 /// <param name="pr"></param>
 /// <returns></returns>
 public bool IsPagePriceCalced(PagePrice pr)
 {
     return(flags[pr.pageTime.Second] == 1);
 }
Ejemplo n.º 4
0
 public void AddPrice(PagePrice pr)
 {
     m29.AddPriceIfNotSet(pr);
 }
Ejemplo n.º 5
0
 public void AddPagePrice(PagePrice price)
 {
     prices.Add(price);
     priceMap[price.pageTime] = price;
 }
Ejemplo n.º 6
0
 public static PageTimePriceResult Ok(PagePrice data)
 {
     return(new PageTimePriceResult(data));
 }
Ejemplo n.º 7
0
 public PageTimePriceResult(PagePrice data)
 {
     this.data = data;
 }
Ejemplo n.º 8
0
        public override bool Equals(object objx)
        {
            PagePrice obj = (PagePrice)objx;

            return(obj != null && pageTime == obj.pageTime && basePrice == obj.basePrice);
        }