protected override void ShowPage() { pagetitle = "短消息草稿箱"; if (!IsLogin()) { return; } if (DNTRequest.IsPost()) { if (PrivateMessages.DeletePrivateMessage(userid, Utils.SplitString(DNTRequest.GetFormString("pmitemid"), ",")) == -1) { AddErrLine("参数无效<br />"); return; } SetMetaRefresh(); SetShowBackLink(true); AddMsgLine("删除完毕"); } else { BindPrivateMessage(2); } newnoticecount = Notices.GetNewNoticeCountByUid(userid); }
public string Get() { GetNoticeParams actionParams = JavaScriptConvert.DeserializeObject <GetNoticeParams>(JsonParams); if (actionParams.UId <= 0) { return(""); } GetNoticeResponse getNoticeResponse = new GetNoticeResponse(); getNoticeResponse.Message.UnRead = PrivateMessages.GetPrivateMessageCount(actionParams.UId, 0, 1); DateTime time = new DateTime(); if (getNoticeResponse.Message.UnRead > 0) { getNoticeResponse.Message.MostRecent = Utils.ConvertToUnixTimestamp(DateTime.TryParse(PrivateMessages.GetPrivateMessageInfo(PrivateMessages.GetLatestPMID(actionParams.UId)).Postdatetime, out time) ? time : DateTime.Now); } getNoticeResponse.Notification.UnRead = Notices.GetNoticeCount(actionParams.UId, 1); if (getNoticeResponse.Notification.UnRead > 0) { getNoticeResponse.Notification.MostRecent = Utils.ConvertToUnixTimestamp(DateTime.TryParse(Notices.GetNewNotices(actionParams.UId)[0].Postdatetime, out time) ? time : DateTime.Now); } List <FriendshipRequestInfo> requestList = Friendship.GetUserFriendRequestList(actionParams.UId, 1, Friendship.GetUserFriendRequestCount(actionParams.UId)); getNoticeResponse.FriendRequest.UIds = GetFriendRequestUid(requestList); if (getNoticeResponse.FriendRequest.UIds.Length > 0) { getNoticeResponse.FriendRequest.MostRecent = Utils.ConvertToUnixTimestamp(DateTime.TryParse(requestList[requestList.Count - 1].DateTime, out time) ? time : DateTime.Now); } return(GetResult(getNoticeResponse)); }
protected override void ShowPage() { pagetitle = "短消息发件箱"; if (!IsLogin()) { return; } if (DNTRequest.IsPost()) { if (ForumUtils.IsCrossSitePost()) { AddErrLine("您的请求来路不正确,无法提交。如果您安装了某种默认屏蔽来路信息的个人防火墙软件(如 Norton Internet Security),请设置其不要禁止来路信息后再试。"); return; } if (PrivateMessages.DeletePrivateMessage(userid, Utils.SplitString(DNTRequest.GetFormString("pmitemid"), ",")) == -1) { AddErrLine("参数无效<br />"); return; } SetShowBackLink(false); AddMsgLine("删除完毕"); } else { BindPrivateMessage(1); } newnoticecount = Notices.GetNewNoticeCountByUid(userid); }
protected override void OnDisabled() { base.OnDisabled(); RegisteredChatCommands.Clear(); ChatButtonHighlighted = false; LeaveEventHandled = true; SendEventHandled = true; RegisteredChatCommands.Clear(); ChannelMessages.Clear(); PrivateMessages.Clear(); ConsoleMessages.Clear(); PlayerChannels.Clear(); JoinedChannels.Clear(); JoinedPmChannels.Clear(); HighlightChannel.Clear(); HighlightPm.Clear(); SelectedChannel = null; SelectedPmChannel = null; SelectTextBox = false; SendText = ""; Queuer.Clear(); if (ChatLocked) { InputLockManager.RemoveControlLock(LmpChatLock); ChatLocked = false; } }
protected override void ShowPage() { if (userid == -1) { AddErrLine("你尚未登录"); return; } user = Discuz.Forum.Users.GetUserInfo(userid); pagetitle = "短消息草稿箱"; if (DNTRequest.IsPost()) { string[] pmitemid = Utils.SplitString(DNTRequest.GetFormString("pmitemid"), ","); int retval = PrivateMessages.DeletePrivateMessage(userid, pmitemid); if (retval == -1) { AddErrLine("参数无效<br />"); return; } SetShowBackLink(false); AddMsgLine("删除完毕"); } else { BindItems(); } }
void backgroundWorkerMessages_DoWork(object sender, DoWorkEventArgs e) { List <Message> messages = new List <Message>(); Tuple <List <Message>, ApiCallResponse> items; Tuple <List <Channel>, ApiCallResponse> channels = Channels.Subscriptions.getOfCurrentUser(this.accessToken); if (channels.Item2.success) { backgroundWorkerMessages.ReportProgress(20, channels.Item1); } else { return; } DateTime newestKnownDateTime = DateTime.MinValue; if (PrivateMessages.Count > 0) { newestKnownDateTime = PrivateMessages.Max(m => m.CreatedAt); } foreach (Channel channel in channels.Item1) { if (channel.type == "net.app.core.pm") { Messages.messageParameters parameter = new Messages.messageParameters(); parameter.include_annotations = true; items = Messages.getMessagesInChannel(this.accessToken, channel.id, parameters: parameter); if (items.Item2.success) { foreach (Message message in items.Item1) { if (message.created_at > newestKnownDateTime) { messages.Add(message); } } } } } foreach (Message message in messages) { if (!string.IsNullOrEmpty(message.text) && !message.is_deleted && !message.machine_only) { ApnItem item = new ApnItem(message, this); if (item != null) { item.isPrivateMessage = true; item.receivingAccount = this; backgroundWorkerMessages.ReportProgress(50, item); } } } backgroundWorkerMessages.ReportProgress(99, null); }
public string SendPrivateMessage(string touser, string message, string subject, string layout) { string username = HttpContext.Current.User.Identity.Name; MembershipUser currentUser = Membership.GetUser(username); ProfileCommon profile = ProfileCommon.GetUserProfile(username); if (currentUser == null || currentUser.ProviderUserKey == null) { return(null); } var pm = new PrivateMessageInfo { Subject = subject, Message = message, ToMemberId = Convert.ToInt32(touser), FromMemberId = (int)currentUser.ProviderUserKey, Read = 0, OutBox = layout != "none" ? 1 : 0, SentDate = DateTime.UtcNow.ToForumDateStr(), Mail = profile.PMEmail == null ? 0 : profile.PMEmail.Value }; PrivateMessages.SendPrivateMessage(pm); //do we need to send an email MembershipUser toUser = Membership.GetUser(Convert.ToInt32(touser)); if (toUser != null && Config.UseEmail) { ProfileCommon toprofile = ProfileCommon.GetUserProfile(toUser.UserName); if (toprofile.PMEmail.HasValue) { if (toprofile.PMEmail.Value == 1) { SnitzEmail notification = new SnitzEmail { FromUser = "******", toUser = new MailAddress(toUser.Email), subject = Regex.Replace(Config.ForumTitle, @"&\w+;", "") + " - New Private message" }; string strMessage = "Hello " + toUser.UserName; strMessage = strMessage + username + " has sent you a private message at " + Config.ForumTitle + "." + Environment.NewLine; if (String.IsNullOrEmpty(subject)) { strMessage = strMessage + "Regarding - " + subject + "." + Environment.NewLine + Environment.NewLine; } else { strMessage = strMessage + "With the subject entitled - " + message + "." + Environment.NewLine + Environment.NewLine; } notification.msgBody = strMessage; notification.Send(); } } } return(PrivateMessage.PmSent); }
/// <summary>创建用户</summary> public static UserInfo CreateUser(this HttpContextBase context, GeneralConfigInfo config, IPKSPrincipal principal, bool isAdmin) { var userInfo = CreateUser(config, principal, isAdmin); #region 发送欢迎信息 if (config.Welcomemsg == 1) { // 收件箱 PrivateMessageInfo privatemessageinfo = new PrivateMessageInfo(); privatemessageinfo.Message = config.Welcomemsgtxt; privatemessageinfo.Subject = "欢迎您的加入! (请勿回复本信息)"; privatemessageinfo.Msgto = userInfo.Username; privatemessageinfo.Msgtoid = userInfo.Uid; privatemessageinfo.Msgfrom = PrivateMessages.SystemUserName; privatemessageinfo.Msgfromid = 0; privatemessageinfo.New = 1; privatemessageinfo.Postdatetime = userInfo.Joindate; privatemessageinfo.Folder = 0; PrivateMessages.CreatePrivateMessage(privatemessageinfo, 0); } #endregion //发送同步数据给应用程序 Sync.UserRegister(userInfo.Uid, userInfo.Username, userInfo.Password, ""); //SetUrl("index.aspx"); //SetShowBackLink(false); //SetMetaRefresh(config.Regverify == 0 ? 2 : 5); Statistics.ReSetStatisticsCache(); //if (inviteCode != null) //{ // Invitation.UpdateInviteCodeSuccessCount(inviteCode.InviteId); // if (config.Regstatus == 3) // { // if (inviteCode.SuccessCount + 1 >= inviteCode.MaxCount) // Invitation.DeleteInviteCode(inviteCode.InviteId); // } //} var oluserinfo = OnlineUsers.UpdateInfo(config.Passwordkey, config.Onlinetimeout); if (config.Regverify == 0) { UserCredits.UpdateUserCredits(userInfo.Uid); //ForumUtils.WriteUserCookie(user, -1, config.Passwordkey); OnlineUsers.UpdateAction(oluserinfo.Olid, UserAction.Register.ActionID, 0, config.Onlinetimeout); //MsgForward("register_succeed"); //AddMsgLine("注册成功, 返回登录页"); } else { if (config.Regverify == 1) { //AddMsgLine("注册成功, 请您到您的邮箱中点击激活链接来激活您的帐号"); } else if (config.Regverify == 2) { //AddMsgLine("注册成功, 但需要系统管理员审核您的帐户后才可登录使用"); } } //ManyouApplications.AddUserLog(userInfo.Uid, UserLogActionEnum.Add); return(userInfo); }
public void BindData() { #region 绑定公共列表 DataGrid1.AllowCustomPaging = false; DataGrid1.TableHeaderName = "公共消息列表"; DataGrid1.DataKeyField = "pmid"; DataGrid1.BindData(PrivateMessages.GetAnnouncePrivateMessageCollection(-1, 0)); #endregion }
protected override void ShowPage() { pagetitle = "撰写短消息"; if (!IsLogin()) { return; } if (!CheckPermission()) { return; } if (DNTRequest.IsPost() && !ForumUtils.IsCrossSitePost()) { if (!CheckPermissionAfterPost()) { return; } SendPM(); if (IsErr()) { return; } } ShortUserInfo shortUserInfo = Users.GetShortUserInfo(msgtoid); string msttoName = (shortUserInfo != null) ? shortUserInfo.Username : ""; msgto = msgtoid > 0 ? msttoName : msgto; string action = DNTRequest.GetQueryString("action").ToLower(); if (action.CompareTo("re") == 0 || action.CompareTo("fw") == 0) //回复或者转发 { if (DNTRequest.GetQueryInt("pmid", -1) != -1) { PrivateMessageInfo pm = PrivateMessages.GetPrivateMessageInfo(DNTRequest.GetQueryInt("pmid", -1)); if (pm != null && (pm.Msgtoid == userid || pm.Msgfromid == userid)) { msgto = action.CompareTo("re") == 0 ? Utils.HtmlEncode(pm.Msgfrom) : ""; subject = Utils.HtmlEncode(action) + ":" + pm.Subject; message = Utils.HtmlEncode("> ") + pm.Message.Replace("\n", "\n> ") + "\r\n\r\n"; } } } if (DNTRequest.GetString("operation") == "pmfriend") { CreatePmFriendMessage(); } newnoticecount = Notices.GetNewNoticeCountByUid(userid); }
public override bool Run(CommandParameter commandParam, ref string result) { //如果是桌面程序则需要验证用户身份 if (commandParam.AppInfo.ApplicationType == (int)ApplicationType.DESKTOP) { if (commandParam.LocalUid < 1) { result = Util.CreateErrorMessage(ErrorType.API_EC_SESSIONKEY, commandParam.ParamList); return(false); } } if (!commandParam.CheckRequiredParams("uid,page_size,page_index")) { result = Util.CreateErrorMessage(ErrorType.API_EC_PARAM, commandParam.ParamList); return(false); } int uid = commandParam.GetIntParam("uid"); int pageSize = commandParam.GetIntParam("page_size", 10); int pageIndex = commandParam.GetIntParam("page_index", 1); pageSize = pageSize < 1 ? 10 : pageSize; pageIndex = pageIndex < 1 ? 1 : pageIndex; List <PrivateMessageInfo> list = PrivateMessages.GetPrivateMessageCollection(uid, 0, pageSize, pageIndex, 1); List <Message> newList = new List <Message>(); foreach (PrivateMessageInfo pm in list) { Message m = new Message(); m.MessageId = pm.Pmid; m.From = pm.Msgfrom; m.FromId = pm.Msgfromid; m.MessageContent = pm.Message; m.PostDateTime = pm.Postdatetime; m.Subject = pm.Subject; newList.Add(m); } MessageGetResponse mgr = new MessageGetResponse(); mgr.Count = PrivateMessages.GetPrivateMessageCount(uid, 0, 1); mgr.List = true; mgr.Messages = newList.ToArray(); result = commandParam.Format == FormatType.JSON ? JavaScriptConvert.SerializeObject(mgr) : Util.AddMessageCDATA(SerializationHelper.Serialize(mgr)); return(true); }
/// <summary> /// 加载用户当前请求页数的短消息列表并装入DataTable中 /// </summary> private void BindItems() { //得到当前用户请求的页数 pageid = DNTRequest.GetInt("page", 1); //获取主题总数 pmcount = PrivateMessages.GetPrivateMessageCount(userid, 0); //获取总页数 pagecount = pmcount % 16 == 0 ? pmcount / 16 : pmcount / 16 + 1; if (pagecount == 0) { pagecount = 1; } //修正请求页数中可能的错误 if (pageid < 1) { pageid = 1; } if (pageid > pagecount) { pageid = pagecount; } usedmsgcount = PrivateMessages.GetPrivateMessageCount(userid, -1); maxmsg = usergroupinfo.Maxpmnum; if (maxmsg <= 0) { usedmsgbarwidth = 0; unusedmsgbarwidth = 0; } else { usedmsgbarwidth = usedmsgcount * 100 / maxmsg; unusedmsgbarwidth = 100 - usedmsgbarwidth; } // //用户是不是有新的短信息,如果没有则设置用户的短信息状态为没有状态(状态为 0 ) // pmlist = PrivateMessages.GetPrivateMessageList(userid, 0, 1, 1, "[new]=1"); // if (pmlist!=null) // { // if (pmlist.Rows.Count<=0) // { // Users.SetUserNewPMCount(userid,0); // } // } // else // { // Users.SetUserNewPMCount(userid,0); // } pmlist = PrivateMessages.GetPrivateMessageCollection(userid, 0, 16, pageid, 2); pagenumbers = Utils.GetPageNumbers(pageid, pagecount, "usercpinbox.aspx", 8); }
protected override void ShowPage() { pagetitle = "公共消息"; if (!IsLogin()) { return; } BindItems(announcepmcount); announcepmlist = PrivateMessages.GetAnnouncePrivateMessageCollection(16, pageid); newnoticecount = Notices.GetNewNoticeCountByUid(userid); }
/// <summary> /// 绑定短消息 /// </summary> /// <param name="folder">文件箱,所属文件夹(0:收件箱,1:发件箱,2:草稿箱),-1为获取全部短消息条数</param> protected void BindPrivateMessage(int folder) { //获取主题总数 pmcount = PrivateMessages.GetPrivateMessageCount(userid, folder); usedmsgcount = PrivateMessages.GetPrivateMessageCount(userid, folder); maxmsg = usergroupinfo.Maxpmnum; if (maxmsg > 0) { usedmsgbarwidth = usedmsgcount * 100 / maxmsg; unusedmsgbarwidth = 100 - usedmsgbarwidth; } BindItems(pmcount); }
protected override void ShowPage() { pagetitle = "短消息收件箱"; if (userid == -1) { AddErrLine("你尚未登录"); return; } user = Discuz.Forum.Users.GetUserInfo(userid); if (DNTRequest.IsPost()) { if (ForumUtils.IsCrossSitePost()) { AddErrLine("您的请求来路不正确,无法提交。如果您安装了某种默认屏蔽来路信息的个人防火墙软件(如 Norton Internet Security),请设置其不要禁止来路信息后再试。"); return; } if (Utils.StrIsNullOrEmpty(DNTRequest.GetFormString("pmitemid"))) { AddErrLine("您未选中任何短消息,当前操作失败!"); return; } if (!Utils.IsNumericList(DNTRequest.GetFormString("pmitemid"))) { AddErrLine("参数信息错误!"); return; } string[] pmitemid = Utils.SplitString(DNTRequest.GetFormString("pmitemid"), ","); int retval = PrivateMessages.DeletePrivateMessage(userid, pmitemid); if (retval == -1) { AddErrLine("参数无效"); return; } SetUrl("usercpinbox.aspx"); SetMetaRefresh(); SetShowBackLink(true); AddMsgLine("删除完毕"); } else { BindItems(); } }
public Task AddPrivateMessage(int senderId, string subject, string message) { var messages = PrivateMessages ?? new PrivateMessages(AccountId, new List <PrivateMessages.PrivateMessage>()); if (messages.NeedsFix()) { messages.FixFromOldBuild(this); } var msg = new PrivateMessages.PrivateMessage(senderId, AccountId, subject, message, DateTime.UtcNow.ToUnixTimestamp()); messages.Messages.Add(msg); PrivateMessages = messages; return(FlushAsync()); }
protected override void ShowPage() { pagetitle = "短消息收件箱"; if (!IsLogin()) { return; } if (DNTRequest.IsPost()) { if (ForumUtils.IsCrossSitePost()) { AddErrLine("您的请求来路不正确,无法提交。如果您安装了某种默认屏蔽来路信息的个人防火墙软件(如 Norton Internet Security),请设置其不要禁止来路信息后再试。"); return; } if (Utils.StrIsNullOrEmpty(DNTRequest.GetFormString("pmitemid"))) { AddErrLine("您未选中任何短消息,当前操作失败!"); return; } if (!Utils.IsNumericList(DNTRequest.GetFormString("pmitemid"))) { AddErrLine("参数信息错误!"); return; } string[] pmitemid = Utils.SplitString(DNTRequest.GetFormString("pmitemid"), ","); if (!Utils.IsNumericArray(pmitemid) || PrivateMessages.DeletePrivateMessage(userid, pmitemid) == -1) { AddErrLine("参数无效"); return; } Users.UpdateUserNewPMCount(userid, olid); SetUrl("usercpinbox.aspx"); SetMetaRefresh(); SetShowBackLink(true); AddMsgLine("删除完毕"); } else { BindPrivateMessage(0); } newnoticecount = Notices.GetNewNoticeCountByUid(userid); }
public void channelsCallback(List <Message> messages, bool is_deleted = false) { if (messages != null) { foreach (Message message in messages) { if (message == null) { continue; } if (message.machine_only || string.IsNullOrEmpty(message.text)) { continue; } if (message.channel_id != "net.app.core.pm") { // PM for now continue; } if (!message.is_deleted) { ApnItem item = new ApnItem(message, this); item.receivingAccount = this; PrivateMessages.Add(item); } else { IEnumerable <ApnItem> existing_items = PrivateMessages.Where(item => item.Id.ToString() == message.id); if (existing_items != null) { if (existing_items.Count() > 0) { List <ApnItem> cache = new List <ApnItem>(); foreach (ApnItem item in existing_items) { cache.Add(item); } foreach (ApnItem item in cache) { PrivateMessages.Remove(item); } cache = null; } } } } } }
private void SaveSearchInfo_Click(object sender, EventArgs e) { #region 指定条件进行短消息消除 if (this.CheckCookie()) { string sqlstring = PrivateMessages.GetDeletePrivateMessagesCondition(isnew.Checked, postdatetime.Text, msgfromlist.Text, lowerupper.Checked, subject.Text, message.Text, isupdateusernewpm.Checked); AdminVistLogs.InsertLog(this.userid, this.username, this.usergroupid, this.grouptitle, this.ip, "批量清除短消息", "删除条件是:" + sqlstring); base.RegisterStartupScript("PAGE", "window.location.href='forum_searchsm.aspx';"); } #endregion }
public virtual void Dispose(bool disposing) { if (this._disposed) { return; } if (disposing) { Context.Dispose(); UserManager.Dispose(); ChatMessages.Dispose(); ChatRooms.Dispose(); ChatRoomUsers.Dispose(); Friends.Dispose(); PrivateMessages.Dispose(); } this._disposed = true; }
/// <summary> /// 创建短消息 /// </summary> /// <param name="folder">所属文件夹(0:收件箱,1:发件箱,2:草稿箱)</param> /// <param name="saveToSendBox">是否保存到发件箱</param> /// <param name="url">跳转链接</param> /// <param name="msg">提示信息</param> private void CreatePM(int folder, int saveToSendBox, string url, string msg) { if (folder != 2) { UserInfo touser = Users.GetUserInfo(msgtoid); // 检查接收人的短消息是否已超过接收人用户组的上限,管理组不受接收人短消息上限限制 int radminId = UserGroups.GetUserGroupInfo(usergroupid).Radminid; if (!(radminId > 0 && radminId <= 3) && PrivateMessages.GetPrivateMessageCount(msgtoid, -1) >= UserGroups.GetUserGroupInfo(touser.Groupid).Maxpmnum) { AddErrLine("抱歉,接收人的短消息已达到上限,无法接收"); return; } if (!Utils.InArray(Convert.ToInt32(touser.Newsletter).ToString(), "2,3,6,7")) { AddErrLine("抱歉,接收人拒绝接收短消息"); return; } } // 检查发送人的短消息是否已超过发送人用户组的上限 if (url != "usercpinbox.aspx" && PrivateMessages.GetPrivateMessageCount(userid, -1) >= usergroupinfo.Maxpmnum) { AddErrLine("抱歉,您的短消息已达到上限,无法保存到发件箱"); return; } pm.Folder = folder; if (CreditsFacade.SendPM(userid) == -1) { AddErrLine("您的积分不足, 不能发送短消息"); return; } pm.Pmid = PrivateMessages.CreatePrivateMessage(pm, saveToSendBox); //发送邮件通知 if (DNTRequest.GetString("emailnotify") == "on") { SendNotifyEmail(Users.GetUserInfo(msgtoid).Email.Trim(), pm); } SetUrl(url); SetMetaRefresh(); SetShowBackLink(true); MsgForward("usercppostpm_succeed"); AddMsgLine(msg); }
private void DelRec_Click(object sender, EventArgs e) { #region 除公共消息 if (this.CheckCookie()) { if (DNTRequest.GetString("id") != "") { PrivateMessages.DeletePrivateMessage(0, Utils.SplitString(DNTRequest.GetString("id"), ",")); DNTCache.GetCacheService().RemoveObject("/Forum/AnnouncePrivateMessageCount"); Response.Redirect("global_announceprivatemessage.aspx"); } else { base.RegisterStartupScript("", GetMessageScript("您未选中任何选项")); } } #endregion }
/// <summary> /// 加载用户当前请求页数的短消息列表并装入DataTable中 /// </summary> private void BindItems() { //得到当前用户请求的页数 pageid = DNTRequest.GetInt("page", 1); //获取主题总数 pmcount = PrivateMessages.GetPrivateMessageCount(userid, 1); //获取总页数 pagecount = pmcount % 16 == 0 ? pmcount / 16 : pmcount / 16 + 1; if (pagecount == 0) { pagecount = 1; } //修正请求页数中可能的错误 if (pageid < 1) { pageid = 1; } if (pageid > pagecount) { pageid = pagecount; } //取得用户所有短消息总数,第二个参数就传-1 usedmsgcount = PrivateMessages.GetPrivateMessageCount(userid, -1); maxmsg = usergroupinfo.Maxpmnum; if (maxmsg <= 0) { usedmsgbarwidth = 0; unusedmsgbarwidth = 0; } else { usedmsgbarwidth = usedmsgcount * 100 / maxmsg; unusedmsgbarwidth = 100 - usedmsgbarwidth; } pmlist = PrivateMessages.GetPrivateMessageCollection(userid, 1, 16, pageid, 2); pagenumbers = Utils.GetPageNumbers(pageid, pagecount, "usercpsentbox.aspx", 8); }
public void PackMailRecord() { var user = DataService.PerThread.BaseUserSet.OfType <User>().SingleOrDefault(x => x.Id == _userId); if (user == null) { return; } var groupfeed = (from _group in user.SubscriptionGroups join content in DataService.PerThread.ContentSet on _group.Id equals content.GroupId where content.State == (byte)ContentState.Approved && _beginDate <= content.PublishDate && content.PublishDate < _endDate && !user.BlackList.Contains(content.Author) where user.Id != content.AuthorId select content).ToList(); var userfeed = (from _user in user.SubscriptionUsers join content in DataService.PerThread.ContentSet on _user.Id equals content.AuthorId where content.State == (byte)ContentState.Approved && _beginDate <= content.PublishDate && content.PublishDate < _endDate where user.Id != content.AuthorId select content).ToList(); var feed = groupfeed.Union(userfeed).Distinct().Where(x => x.PublishDate.HasValue).OrderBy(x => x.GroupId).ThenByDescending(c => c.PublishDate); _content.AddRange(feed.Select(x => new SubscriptionContent(x))); Groups = _content.Select(x => new GroupSchema { Name = x.GroupName, Url = x.GroupUrl }).Distinct().OrderBy(x => x.Name).ToList(); var messages = user.InboxMessages.Where(m => !m.IsRead && !m.IsDeletedByRecipient && _beginDate <= m.Date && m.Date < _endDate).ToList(); CommentNotices.AddRange(messages.Where(m => m.Type == (byte)MessageType.CommentNotice).Select(x => new MessageUpdate(x)).OrderByDescending(x => x.Date)); GroupMemberNotices.AddRange(messages.Where(m => m.Type == (byte)MessageType.GroupMemberNotice).Select(x => new MessageUpdate(x)).OrderByDescending(x => x.Date)); GroupModeratorNotices.AddRange(messages.Where(m => m.Type == (byte)MessageType.GroupModeratorNotice).Select(x => new MessageUpdate(x)).OrderByDescending(x => x.Date)); PollNotices.AddRange(messages.Where(m => m.Type == (byte)MessageType.PollNotice).Select(x => new MessageUpdate(x)).OrderByDescending(x => x.Date)); SurveyNotices.AddRange(messages.Where(m => m.Type == (byte)MessageType.SurveyNotice).Select(x => new MessageUpdate(x)).OrderByDescending(x => x.Date)); ElectionNotices.AddRange(messages.Where(m => m.Type == (byte)MessageType.ElectionNotice).Select(x => new MessageUpdate(x)).OrderByDescending(x => x.Date)); PetitionNotices.AddRange(messages.Where(m => m.Type == (byte)MessageType.PetitionNotice).Select(x => new MessageUpdate(x)).OrderByDescending(x => x.Date)); SystemMessages.AddRange(messages.Where(m => m.Type == (byte)MessageType.SystemMessage).Select(x => new MessageUpdate(x)).OrderByDescending(x => x.Date)); PrivateMessages.AddRange(messages.Where(m => m.Type == (byte)MessageType.PrivateMessage).Select(x => new PrivateMessageUpdate(x)).OrderByDescending(x => x.Date)); }
private void AddNewRec_Click(object sender, EventArgs e) { #region 添加公共消息 if (subject.Text == "") { base.RegisterStartupScript("", GetMessageScript("公共消息标题不能为空")); return; } if (message.Text == "") { base.RegisterStartupScript("", GetMessageScript("公共消息内容不能为空")); return; } try { PrivateMessageInfo pm = new PrivateMessageInfo(); pm.Message = message.Text; pm.Subject = subject.Text; pm.Msgto = ""; pm.Msgtoid = 0; pm.Msgfrom = ""; pm.Msgfromid = 0; pm.New = 1; pm.Postdatetime = DateTime.Now.ToString(); PrivateMessages.CreatePrivateMessage(pm, 0); BindData(); DNTCache.GetCacheService().RemoveObject("/Forum/AnnouncePrivateMessageCount"); base.RegisterStartupScript("PAGE", "window.location.href='global_announceprivatemessage.aspx';"); return; } catch { base.RegisterStartupScript("", GetMessageScript("无法更新数据库.")); return; } #endregion }
/// <summary> /// Monitor inbox for new unread messages. /// </summary> /// <param name="messages">PrivateMessages instance</param> /// <param name="from">Sender's username</param> /// <param name="subject">Message subject</param> /// <param name="body">Message body</param> /// <param name="timeoutMs">How long to wait for the message to arrive before giving up</param> /// <returns>Whether the requested message was found.</returns> private bool MonitorForMessage(PrivateMessages messages, string from, string subject, string body, int timeoutMs = 30000) { messages.MonitorUnread(); messages.UnreadUpdated += C_UnreadMessagesUpdated; DateTime start = DateTime.Now; bool res = false; while (!res && start.AddMilliseconds(timeoutMs) > DateTime.Now) { if (E != null) { res = CheckMessages(E.NewMessages, from, subject, body); } } messages.UnreadUpdated -= C_UnreadMessagesUpdated; messages.MonitorUnread(); return(res); }
void backgroundWorkerMessages_ProgressChanged(object sender, ProgressChangedEventArgs e) { if (e != null) { switch (e.ProgressPercentage) { case 20: // Channel list KnownChannels = e.UserState as List <Channel>; if (KnownChannels != null) { foreach (Channel channel in KnownChannels) { if (KnownChannelIds.Contains(channel.id)) { KnownChannelIds.Add(channel.id); } } } break; case 50: ApnItem item = e.UserState as ApnItem; PrivateMessages.Add(item); // || true muss raus if (showNotifications) { AppController.Current.sendNotification("App.net " + username + " private messages", item.AuthorName, item.Text, item.Avatar, item); } break; case 99: streamMarkerPrivateMessagesUpdateComplete = true; InitialUpdateForMessages = true; break; } } }
protected override void ShowPage() { pagetitle = "短消息发件箱"; if (userid == -1) { AddErrLine("你尚未登录"); return; } user = Discuz.Forum.Users.GetUserInfo(userid); if (DNTRequest.IsPost()) { if (ForumUtils.IsCrossSitePost()) { AddErrLine("您的请求来路不正确,无法提交。如果您安装了某种默认屏蔽来路信息的个人防火墙软件(如 Norton Internet Security),请设置其不要禁止来路信息后再试。"); return; } string[] pmitemid = Utils.SplitString(DNTRequest.GetFormString("pmitemid"), ","); int retval = PrivateMessages.DeletePrivateMessage(userid, pmitemid); if (retval == -1) { AddErrLine("参数无效<br />"); return; } SetShowBackLink(false); AddMsgLine("删除完毕"); } else { BindItems(); } }
/// <summary> /// 发送通知 /// </summary> /// <returns></returns> public string Send() { if (Signature != GetParam("sig").ToString()) { ErrorCode = (int)ErrorType.API_EC_SIGNATURE; return(""); } //如果是桌面程序则需要验证用户身份 if (this.App.ApplicationType == (int)ApplicationType.DESKTOP) { if (Uid < 1) { ErrorCode = (int)ErrorType.API_EC_SESSIONKEY; return(""); } } if (CallId <= LastCallId) { ErrorCode = (int)ErrorType.API_EC_CALLID; return(""); } if (!CheckRequiredParams("subject,message,to_ids")) { ErrorCode = (int)ErrorType.API_EC_PARAM; return(""); } string ids = GetParam("to_ids").ToString(); if (!CheckRequiredParams("to_ids") || !Utils.IsNumericArray(ids.Split(','))) { ErrorCode = (int)ErrorType.API_EC_PARAM; return(""); } if ((!CheckRequiredParams("from_id") || !Utils.IsNumeric(GetParam("from_id"))) && Uid < 1) { ErrorCode = (int)ErrorType.API_EC_PARAM; return(""); } int fromId = TypeConverter.ObjectToInt(GetParam("from_id"), Uid); string message = UBB.ParseUrl(Utils.EncodeHtml(GetParam("message").ToString())); string[] to_ids = ids.Split(','); string successfulIds = string.Empty; foreach (string id in to_ids) { if (TypeConverter.StrToInt(id) < 1) { continue; } PrivateMessageInfo pm = new PrivateMessageInfo(); pm.Folder = 0; pm.Message = message; pm.Msgfrom = Discuz.Forum.Users.GetShortUserInfo(fromId).Username; pm.Msgfromid = fromId; pm.Msgto = "";//可能需要查询具体的收件人姓名 pm.Msgtoid = TypeConverter.StrToInt(id); pm.New = 1; pm.Postdatetime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); pm.Subject = GetParam("subject").ToString(); successfulIds += (PrivateMessages.CreatePrivateMessage(pm, 0) > 0) ? (id + ",") : ""; } successfulIds = successfulIds.Length > 0 ? successfulIds.Remove(successfulIds.Length - 1) : successfulIds; if (Format == FormatType.JSON) { return(string.Format("\"{0}\"", successfulIds)); } MessageSendResponse nsr = new MessageSendResponse(); nsr.Result = successfulIds; return(SerializationHelper.Serialize(nsr)); }
/// <summary> /// 获取短消息列表 /// </summary> /// <returns></returns> public string Get() { if (Signature != GetParam("sig").ToString()) { ErrorCode = (int)ErrorType.API_EC_SIGNATURE; return(""); } //如果是桌面程序则需要验证用户身份 if (this.App.ApplicationType == (int)ApplicationType.DESKTOP && Uid < 1) { //if (Uid < 1) //{ ErrorCode = (int)ErrorType.API_EC_SESSIONKEY; return(""); //} } if (CallId <= LastCallId) { ErrorCode = (int)ErrorType.API_EC_CALLID; return(""); } if (!CheckRequiredParams("uid,page_size,page_index")) { ErrorCode = (int)ErrorType.API_EC_PARAM; return(""); } int uid = GetIntParam("uid"); int pageSize = GetIntParam("page_size", 10); int pageIndex = GetIntParam("page_index", 1); List <PrivateMessageInfo> list = PrivateMessages.GetPrivateMessageCollection(uid, 0, pageSize, pageIndex, 1); List <Message> newList = new List <Message>(); foreach (PrivateMessageInfo pm in list) { Message m = new Message(); m.MessageId = pm.Pmid; m.From = pm.Msgfrom; m.FromId = pm.Msgfromid; m.MessageContent = pm.Message; m.PostDateTime = pm.Postdatetime; m.Subject = pm.Subject; newList.Add(m); } MessageGetResponse mgr = new MessageGetResponse(); mgr.Count = PrivateMessages.GetPrivateMessageCount(uid, 0, 1); mgr.List = true; mgr.Messages = newList.ToArray(); if (Format == FormatType.JSON) { return(JsonConvert.SerializeObject(mgr)); } return(Util.AddMessageCDATA(SerializationHelper.Serialize(mgr))); }