我正在尝试找出如何在活动开始前一天向用户发送提醒电子邮件,例如:
即将开始一个事件:03-02-2020
和
我想在前一天发送提醒:02-02-2020
她是我的查询:
var RegistrtionToEvent = db.Registrations
.Where(t => (t.LastNotifiedDate == null) && t.Status == "signedup" &&
t.EventStartDate //here is my problem what it should be done here with EventStartDate)
.ToList();
if (RegistrtionToEvent != null && RegistrtionToEvent.Any())
{
foreach (var item in RegistrtionToEvent)
{
item.LastNotifiedDate = DateTime.Now;
//sending Email
}
db.SaveChanges();
}
任何人都可以帮助我! :)
谢谢
答案 0 :(得分:1)
独立示例:
DateTime now = DateTime.Now;
DateTime notify = DateTime.Now.AddDays(1);
if(notify.Day == now.Day + 1)
Console.WriteLine(" You are notified since you have an event tomorrow: " + notify.Day);
或
var RegistrtionToEvent = db.Registrations
.Where(t => (t.LastNotifiedDate == null) && t.Status == "signedup" &&
notify.Day == now.Day + 1).ToList();
在您的示例中(假设EventStartDate
的类型为DateTime ):
DateTime notify = DateTime.Now.AddDays(1);
var RegistrtionToEvent = db.Registrations
.Where(t => (t.LastNotifiedDate == null) && t.Status == "signedup" &&
notify.Day == t.EventStartDate.Day).ToList();
只需访问您的.Day
的{{1}}属性,然后将其与明天进行比较即可。
这里会发生什么?
我们检查明天是否是活动日。本质上是EventStartDate
答案 1 :(得分:0)
请尝试以下操作:
var dt = DateTime.Today.Date.AddDays(1);
var RegistrtionToEvent = db.Registrations
.Where(t => (t.LastNotifiedDate >= dt && t.LastNotifiedDate <= dt) && t.Status == "signedup"
//&& t.EventStartDate //here is my problem what it should be done here with EventStartDate
)
.ToList();