【发布时间】:2009-12-31 04:12:22
【问题描述】:
我在这里遇到了一个奇怪的问题,就像我有一个用户可以在朋友个人资料页面上发布 cmets 的网站。每次用户发表评论时,我的应用程序都会向该页面所有者发送电子邮件,您知道通知新发布的在他/她的个人资料页面上发表评论。问题是,如果该用户最近发表了评论,比如 5 小时前/之前,我想阻止应用程序发送电子邮件。这是我使用的功能,它会尝试检查它:
Public Function CheckForNewPost(ByVal arg As String) As Boolean
Dim x As Integer = 0
Using dc As New WhatEverDataContext()
Dim newcomment = From mytable In dc.PostTable _
Where mytable.PostingUser.ToLower() = User.Identity.Name.ToLower() And mytable.PageOwner.ToLower() = arg.ToLower() And mytable.PostedDate.AddHours(5) >= DateTime.Now _
Select mytable
For Each comment In newcomment
x = x + 1
Next
If x > 0 Then
'user has posted a comment recently
Return True
Else
Return False
End If
End Using
End Function
然后我这样使用它:
Protected Sub Repeater1_ItemInserted(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.ListViewInsertedEventArgs) Handles Repeater1.ItemInserted
'send our mail
Dim PageOwner As String = Request.QueryString.Get("PageOwnerName")
If CheckForNewPost(PageOwner) = False Then
SendEMail(PageOwner)
End If
End Sub
但即使用户在 5 小时前发布了邮件,该应用程序仍在发送邮件。 你觉得我在这里做什么?
【问题讨论】:
标签: asp.net vb.net linq web-applications