/// <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);
                }
            }
        }
예제 #2
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);
                }
            }
        }
예제 #3
0
 /// <summary>
 /// 老師新增教材
 /// </summary>
 /// <param name="circleKey"></param>
 /// <param name="eventId"></param>
 /// <param name="eventName"></param>
 /// <param name="myId"></param>
 /// <returns></returns>
 public async Task PushMaterialOnCreatedAsync(string circleKey, Guid eventId, string eventName, int?myId)
 {
     var cacheService  = new CacheService();
     var members       = cacheService.GetCircleMemberList(circleKey, myId);
     var memberService = new MemberService();
     var memberInfo    = memberService.UserIdToAccount(Convert.ToInt32(myId));
     var eventMessage  = string.Format("{0}傳送了圖片", memberInfo.Name, eventName);
     var pushService   = new PushService();
     await pushService.PushMsgAsync("ToEventCard", circleKey, eventId, "推播_查看新的-互動圖片", members.ToArray(), eventMessage);
 }
예제 #4
0
        public async Task PushOnChangedSignIn(string circleKey, Guid eventId, string studentId, string updateStatus)
        {
            var students = new List <string>()
            {
                studentId
            };
            var eventMessage = string.Format("您的狀態已更新:{0}", updateStatus);

            // 推播文字→ [點名活動({建立時間:yyyy/M/d hh:mm})]您的狀態已更新:{ 出席狀態}
            //  var message = string.Format("[點名活動(建立時間:{1:yyyy/M/d HH:mm})]{0}", eventMessage, DateTime.Now);
            var message     = string.Format("點名活動({1:yyyy/M/d HH:mm}){0}", eventMessage, DateTime.Now);
            var pushService = new PushService();
            await pushService.PushMsgAsync("ToSignInActivity", circleKey, eventId, "推播_查看點名-更新", students.ToArray(), message);
        }
예제 #5
0
        /// <summary>
        /// 新增主題討論活動推播
        /// </summary>
        /// <param name="members"></param>
        /// <param name="circleKey"></param>
        /// <param name="eventId"></param>
        /// <param name="eventName"></param>
        /// <param name="myId"></param>
        /// <returns></returns>
        private async Task PushDiscussionOnCreatedAsync(List <Infrastructure.BusinessObject.MemberCacheData> members, string circleKey, Guid eventId, string eventName, int myId)
        {
            //刪除自己
            members.Remove(members.FirstOrDefault(t => t.Id == myId));
            var memberService = new MemberService();

            var creator      = memberService.UserIdToAccount(myId);
            var eventMessage = string.Format("{1}新增了主題討論:{0}", eventName, creator.Name);
            var pushService  = new PushService();

            if (members.Count() > 0)
            {
                await pushService.PushMsgAsync("ToEventCard", circleKey, eventId, "推播_查看新的-主題討論", members.Select(t => t.Account).ToArray(), eventMessage);
            }
        }
예제 #6
0
        public async Task PushOnCreatedMessage(string circleKey, Guid eventId, string memberName, string text, int?myId)
        {
            var cacheService  = new CacheService();
            var memberService = new MemberService();
            var members       = myId.HasValue ? memberService.GetLearningCircleMembers(circleKey.ToLower(), myId) : memberService.GetLearningCircleMembers(circleKey.ToLower());
            //var members = cacheService.GetCircleMember(circleKey.ToLower()).Select(t=>t.Account);
            // new CacheCircle().GetCircleMemberList(circleKey, myId);
            // 推播文字→ {建立者姓名} :{留言內容}
            var message     = string.Format("{0} :{1}", memberName, text);
            var pushService = new PushService();

            if (members.Count() > 0)
            {
                await pushService.PushMsgAsync("ToEventCard", circleKey, eventId, "推播_查看新的-互動文字", members.Select(t => t.Account).ToArray(), message);
            }
        }
        /// <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);
            }
        }
예제 #8
0
        public async Task PushOnCreatedSignIn(string circleKey, Guid eventId, int?myId)
        {
            var creatorName   = string.Empty;
            var memberService = new MemberService();

            if (myId != null)
            {
                creatorName = memberService.UserIdToAccount(myId.Value).Name;
            }
            var learningcircleService = new LearningCircleService();
            var members      = learningcircleService.GetCircleMemberList(circleKey, myId);
            var eventMessage = string.Format("{0}新增了點名活動", creatorName);
            var pushService  = new PushService();
            // 推播文字:點名活動即將開始({日期} {時間})
            // var message = string.Format("{0}(建立時間:{1:yyyy/M/d HH:mm})", eventMessage, DateTime.Now);
            var message = string.Format("{0}", eventMessage);

            if (members.Count > 0)
            {
                await pushService.PushMsgAsync("ToEventCard", circleKey, eventId, "推播_查看點名-開始", members.ToArray(), message);
            }
        }
예제 #9
0
        /// <summary>
        /// 編輯主題討論活動推播
        /// </summary>
        /// <param name="members"></param>
        /// <param name="circleKey"></param>
        /// <param name="eventId"></param>
        /// <param name="eventName"></param>
        /// <param name="myId"></param>
        /// <returns></returns>
        private async Task PushDiscussionOnUpdateAsync(List <Infrastructure.BusinessObject.MemberCacheData> members, string circleKey, Guid eventId, string eventName, int myId)
        {
            noticeService = new NoticeService();
            //刪除自己
            members.Remove(members.FirstOrDefault(t => t.Id == myId));
            var memberService = new MemberService();
            var creator       = memberService.UserIdToAccount(myId);
            var eventMessage  = string.Format("[{0}]內容已更新", eventName);
            var noticeMsg     = string.Format("{0} 更新了主題討論 : 「{1} 」", creator.Name, eventName);

            //新增多筆訊息資料
            noticeService.AddMultipleNotice(members, eventId, circleKey, noticeMsg);
            var pushService = new PushService();

            //廣播訊息資訊
            SendNotice(members, circleKey);
            if (members.Count() > 0)
            {
                //推播
                await pushService.PushMsgAsync("ToDiscussionActivity", circleKey, eventId, "推播_查看更新的主題討論", members.Select(t => t.Account).ToArray(), eventMessage);
            }
        }