private MessageListModel GetUnreachedMessage(ReachedMessageList reachedMessageList) { MessageListModel messageList = new MessageListModel(); using (Controller.Message controllerMessage = new Controller.Message()) { List <MessageModel> recordList = controllerMessage.GetUserMessage(aid, Controller.Message.MESSAGE_STATUS.UNREACH); if (recordList != null) { foreach (MessageModel message in recordList) { if (reachedMessageList != null) { if (reachedMessageList.Contains((uint)message.mid)) { continue; } } messageList.Add(message); } } } return(messageList); }
protected override void OnRequest() { base.OnRequest(); ReachedMessageList reachedMessageList = getModel <ReachedMessageList>(); try { if (reachedMessageList == null || reachedMessageList.Count <= 0) { throw new ExceptionMessage("/language/parameter/lack"); } foreach (uint messageID in reachedMessageList) { new Controller.Message().MakeMessageRead(messageID); } WriteSuccess <String>("success"); } catch (UnfulfilException ex) { WriteUnfulfil(ex.DisplayMessage); } catch (Database.Exception ex) { WriteException(ex); } catch (Exception ex) { WriteException(ex); } }
protected override void OnRequest() { base.OnRequest(); int PullTimeout = SystemConfig.MessagePullingTimeout; int PullSleep = SystemConfig.MessagePullingSleep; Server.ScriptTimeout = PullTimeout + 10; _startTime = DateTime.Now; ReachedMessageList reachedMessageList = getModel <ReachedMessageList>(); while (_startTime.AddSeconds(PullTimeout) >= DateTime.Now) { if (!Response.IsClientConnected) { WriteEnd(); } MessageListModel messageList = GetUnreachedMessage(reachedMessageList); if (messageList.Count > 0) { WriteSuccess <MessageListModel>(messageList); WriteEnd(); } Thread.Sleep(PullSleep); } WriteUnfulfil("No message"); }