/// <summary> /// 判断这个手机号是否是频繁发布的 /// </summary> /// <param name="Mobile"></param> /// <returns>true:表示频繁发布,不应该继续发送 false:非频繁发布,可以发送短信</returns> public bool IsSendToMany(string Mobile) { ShortMessageModel message = MessageList.FirstOrDefault(x => x.Mobile == Mobile); if (message != null) { if (DateTime.Now >= message.LastTime.AddSeconds(ShortMessageConfig.TimeInterval)) { FreshList(new ShortMessageModel { Mobile = message.Mobile, LastTime = DateTime.Now, SendTimes = message.SendTimes + 1 }); return(false); } else { return(true); } } else { EnList(new ShortMessageModel { Mobile = Mobile, LastTime = DateTime.Now, SendTimes = 1 }); return(false); } /*首先判断该手机号码是否在短信发送列表中 * 如果是:判断当前时间是否已经超过LastTime+TimeInterval * 如果是:列表中更新这个记录,返回false * 否:直接返回true * 否:在列表中插入这个记录,返回false * * */ }
public void FreshList(ShortMessageModel ShortMessageModel) { ShortMessageModel message = list.Where(x => x.Mobile == ShortMessageModel.Mobile).FirstOrDefault(); if (list.Remove(message)) { EnList(ShortMessageModel); } }
/// <summary> /// 根据手机号获取此手机发送过多少次短信 /// </summary> /// <param name="Mobile"></param> /// <returns></returns> public int GetSendTimes(string Mobile) { ShortMessageModel message = MessageList.FirstOrDefault(x => x.Mobile == Mobile); if (message != null) { return(message.SendTimes); } else { return(0); } }
public void ClearShortMessage(string Mobile) { ShortMessageModel message = list.Where(x => x.Mobile == Mobile).FirstOrDefault(); DeList(message); //以下,如果另外一个人在调用此方法,循环删除的时候,将另外的人的记录删除了,会出现问题 //foreach (var m in MessageList) //{ // if (DateTime.Now >= m.LastTime.AddSeconds(ShortMessageConfig.TimeInterval)) // { // this.DeList(m); // } //} }
public void EnList(ShortMessageModel ShortMessageModel) { list.Add(ShortMessageModel); }
public void DeList(ShortMessageModel ShortMessageModel) { list.Remove(ShortMessageModel); }