[NoAsyncTimeout]
public void LongPollAsync(int id)
{
AsyncManager.OutstandingOperations.Increment();
if (GetNew(id) != null)
{
AsyncManager.Parameters["msg"] = GetNew(id);
AsyncManager.OutstandingOperations.Decrement();
}
else
{
Thread.Sleep(2000);
LongPollAsync(id);
AsyncManager.OutstandingOperations.Decrement();
}
}
public string GetNew(int id) {
{
xEntities db = new xEntities();
Notification n = db.Notification.Where(x => x.ID > id).FirstOrDefault();
if (n != null)
{
return n.URL;
}
else { return null; }
}
catch
{
return null;
}
}
public ActionResult LongPollCompleted(string msg)
{
return this.Json(new { msg = msg });
}