/// <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);
            }
        }
        /// <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);
                }
            }
        }
Exemple #3
0
        /// <summary>
        /// 按讚推播
        /// </summary>
        /// <param name="circleKey">學習圈代碼</param>
        /// <param name="eventId">活動 | 留言代碼</param>
        /// <param name="eventName">按讚資訊</param>
        /// <param name="likeMan">按讚人資訊</param>
        /// <param name="beLikeManId">被按讚人的編號(留言按讚) / 按讚者編號(主題討論按讚)</param>
        /// <param name="isMsg">是否為留言</param>
        /// <param name="isReply">是否為回覆</param>
        /// <returns></returns>
        public async Task PushLikeAsync(string circleKey, Guid eventId, string eventName, Infrastructure.Entity.Member likeMan, int beLikeManId, bool isMsg, bool?isReply = false)
        {
            var memberService = new MemberService();

            //取得長度10以下的內容
            eventName = eventName.Count() > 10 ? eventName.Substring(0, 9) + "..." : eventName;
            var pushMessage = string.Empty;
            var noticeMsg   = string.Empty;
            var listAccount = memberService.UserIdToAccount(beLikeManId);
            var pushService = new PushService();
            var memberInfo  = likeMan.Id != beLikeManId ? new string[1] {
                listAccount.Account
            } : new string[0];

            if (isMsg)
            {
                if (isReply != false)
                {
                    noticeMsg   = string.Format("{0}覺得你在主題討論中的回覆很讚:「{1}」", likeMan.Name, eventName);
                    pushMessage = string.Format("{0}覺得你在主題討論中的回覆很讚", likeMan.Name);
                }
                else
                {
                    noticeMsg   = string.Format("{0}覺得你在主題討論中的留言很讚:「{1}」", likeMan.Name, eventName);
                    pushMessage = string.Format("{0}覺得你在主題討論中的留言很讚", likeMan.Name);
                }


                if (memberInfo.Count() > 0)
                {
                    //AddNotice(circleKey, eventId, beLikeManId, noticeMsg);
                    noticeService.AddNoticeSaveChange(circleKey, beLikeManId, eventId, noticeMsg);
                    SendNotice(beLikeManId, circleKey);
                    await pushService.PushMsgAsync("ToDiscussionActivity", circleKey, eventId, "推播_查看主題討論-留言被按讚", memberInfo, pushMessage);
                }
            }
            else
            {
                pushMessage = string.Format("{0}覺得一則主題討論很讚", likeMan.Name);
                noticeMsg   = string.Format("{0}覺得一則主題討論很讚:「{1}」", likeMan.Name, eventName);
                if (memberInfo.Count() > 0)
                {
                    noticeService.AddNoticeSaveChange(circleKey, beLikeManId, eventId, noticeMsg);
                    SendNotice(beLikeManId, circleKey);
                    await pushService.PushMsgAsync("ToDiscussionActivity", circleKey, eventId, "推播_查看主題討論-被按讚", memberInfo, pushMessage);
                }
            }
        }