/// <summary> /// 某個留言被回覆的推播 /// </summary> /// <param name="circleKey">學習圈代碼</param> /// <param name="eventId">主題討論代碼</param> /// <param name="eventName">主題討論名稱</param> /// <param name="replyMember">回覆者資訊</param> /// <param name="beReplyMemberInfo">被回覆的人資訊</param> /// <param name="isTag">是否為回覆</param> /// <returns></returns> private async Task PushMsgReplyAsync(string circleKey, Guid eventId, string eventName, Infrastructure.Entity.Member replyMember, Infrastructure.Entity.Member beReplyMemberInfo, bool?isTag = false) { var eventMessage = isTag.Value ? (string.Format("{0}回應了一則主題討論的回覆", replyMember.Name)) : (string.Format("{0}回應了一則主題討論的留言", replyMember.Name)); var noticeMsg = isTag.Value ? string.Format("{0}回應了一則主題討論的回覆:「{1}」", replyMember.Name, eventName) : string.Format("{0}回應了一則主題討論的留言:「{1}」", replyMember.Name, eventName); discussionMsgService = new DiscussionFuncMsg(); // var pushMember =replyMember.Id!= beReplyMemberInfo.Id ? new string[1] { beReplyMemberInfo.Account } : new string[0]; var replyMembers = discussionMsgService.GetReplyMemberList(eventId, replyMember).ToList(); if (replyMembers.Count() > 0) { noticeService = new NoticeService(); //新增多筆訊息資料 noticeService.AddMultipleNotice(replyMembers, eventId, circleKey, noticeMsg); //廣播訊息資訊 SendNotice(replyMembers, circleKey); var pushService = new PushService(); if (isTag.Value) { await pushService.PushMsgAsync("ToDiscussionActivity", circleKey, eventId, "推播_查看主題討論-回覆被回覆", replyMembers.Select(t => t.Account).ToArray(), eventMessage); } else { await pushService.PushMsgAsync("ToDiscussionActivity", circleKey, eventId, "推播_查看主題討論-留言被回覆", replyMembers.Select(t => t.Account).ToArray(), eventMessage); } } }
/// <summary> /// 編輯主題討論活動推播 /// </summary> /// <param name="members"></param> /// <param name="circleKey"></param> /// <param name="eventId"></param> /// <param name="eventName"></param> /// <param name="myId"></param> /// <returns></returns> public async Task PushDiscussionOnUpdateAsync(List <Infrastructure.BusinessObject.MemberCacheData> members, string circleKey, Guid eventId, string eventName, int myId) { //刪除自己 members.Remove(members.FirstOrDefault(t => t.Id == myId)); var creatorName = memberService.UserIdToAccount(myId).Name; var eventMessage = string.Format("[{0}]內容已更新", eventName); var noticeMsg = string.Format("{0} 更新了主題討論 : 「{1} 」", creatorName, eventName); //新增多筆訊息資料 noticeService.AddMultipleNotice(members, eventId, circleKey, noticeMsg); if (members.Count() > 0) { //推播 await PushMsgAsync("ToDiscussionActivity", circleKey, eventId, "推播_查看更新的主題討論", members.Select(t => t.Account).ToArray(), eventMessage); } }
/// <summary> /// 主題討論留言推播 /// </summary> /// <param name="circleKey"></param> /// <param name="eventId"></param> /// <param name="eventName"></param> /// <param name="replyMemberInfo"></param> /// <returns></returns> private async Task PushDiscussionSendMsgAsync(string circleKey, Guid eventId, string eventName, Infrastructure.Entity.Member replyMemberInfo) { discussionMsgService = new DiscussionFuncMsg(); var eventMessage = string.Format("{0}回應了一則主題討論", replyMemberInfo.Name); var noticeMsg = string.Format("{0}回應了一則主題討論:「 {1}」", replyMemberInfo.Name, eventName); var replyMembers = discussionMsgService.GetReplyMemberList(eventId, replyMemberInfo).ToList(); noticeService = new NoticeService(); //新增多筆訊息資料 noticeService.AddMultipleNotice(replyMembers, eventId, circleKey, noticeMsg); //廣播訊息資訊 SendNotice(replyMembers, circleKey); var pushMembers = replyMembers.Select(t => t.Account).ToArray(); var pushService = new PushService(); if (replyMembers.Count > 0) { await pushService.PushMsgAsync("ToDiscussionActivity", circleKey, eventId, "推播_查看主題討論-被留言", pushMembers, eventMessage); } }