通过 2个 list集合的比较和过期时间的判定

/// <summary>
/// 通过 2个 集合的比较和过期时间的判定
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="newEmailDataTables"></param>
/// <param name="oldEmailDataTables"></param>
/// <returns></returns>
public static List<EmailDataTable> EmailBody(List<EmailDataTable> newList, List<EmailDataTable> oldList)
{
try
{
string errTime = string.Empty;//定义过期时间
List<EmailDataTable> list = new List<EmailDataTable>();
foreach (var item in newList)
{
errTime = "60";//给过期时间赋值
//判断是否存在
bool bRtn = oldList.Exists(x => x.cUserID == item.cUserID && x.cTK_Name == item.cTK_Name && x.ExtendField5 == item.ExtendField5 && x.cTK_ID == item.cTK_ID);
if (!bRtn)//不存在就是新数据,加入准备发送的list
{
list.Add(item);
}
else//不然就是发送过的,根据上一次发送的时间进行对比,判断是否要再次发送
{
var item1 = oldList.Find(x => x.cUserID == item.cUserID && x.cTK_Name == item.cTK_Name && x.ExtendField5 == item.ExtendField5 && x.cTK_ID == item.cTK_ID);//获取对应新数据的那一条旧数据
//获取当前时间
DateTime dateNow = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
//利用获取的当前时间,获取时间差
TimeSpan d3 = dateNow.Subtract(DateTime.Parse(item1.SendTime));
decimal d = decimal.Parse(d3.TotalSeconds.ToString());//取得时间差
//超过有效期
if (!string.IsNullOrEmpty(errTime) && d > decimal.Parse(errTime))
{
list.Add(item1);//加入发送list集合
}
}
}
return list;
}
catch (Exception ex)
{
return new List<EmailDataTable>();
}
}

posted @ 2020-08-12 16:24  ナナチ  阅读(318)  评论(0编辑  收藏  举报