/// <summary> /// 取得個人主題討論紀錄 /// </summary> /// <param name="eventId"></param> /// <param name="memberId"></param> /// <returns></returns> public Infrastructure.ViewModel.DiscussionViewModel GetForMem(Guid eventId, int memberId) { //取得主題討論資訊 var db = _uow.DbContext; var adr = _uow.EntityRepository <ActDiscussion>().GetFirst(x => x.EventId == eventId); if (adr != null) { //取得留言資訊 //var msg = _msgRep.Get(x => x.ActDiscussionId == adr.Id && x.CreateUser == memberId); var msg = db.ActDiscussionMsg.Where(x => x.ActDiscussionId == adr.Id); //取得活動牆資訊 var ar = db.Activitys.Where(x => x.OuterKey == eventId).FirstOrDefault(); if (ar.CardisShow == true) { //取得建立主題討論者資訊 var memberInfo = _uow.MembersRepo.MemberInfo(adr.CreateUser.Value); //取得發言(登入)者的資訊 var me = _uow.MembersRepo.MemberInfo(memberId); //var fileInfo = googleService.GetFileList(systemManager,); var vm = new Infrastructure.ViewModel.DiscussionViewModel() { ActivityId = adr.Id, LearningId = adr.LearningId, EventId = eventId, OuterKey = eventId, GoogleDriveFolder = adr.GoogleDriveUrl, Creator = adr.CreateUser.Value.ToString(), CreateDate = Convert.ToDateTime(adr.Created.Local.ToString()), Created_Utc = Convert.ToDateTime(adr.Created.Utc.Value), Deleted_Utc = adr.Deleted.Utc, ModuleKey = Utility.ParaCondition.ModuleType.Discussion, CreatorAccount = memberInfo.Account, CreatorName = memberInfo.Name, Duration = ar.Duration, Name = adr.Name, CreatorPhoto = memberInfo.Photo, MsgSenderPhoto = me.Photo, Description = adr.Description, ToRoomId = ar.ToRoomId, FileCount = adr.FileCount, Publish_Utc = ar.Publish_Utc }; vm.Msg = new List <Infrastructure.BusinessObject.MsgContent>(); vm.Like = new Infrastructure.BusinessObject.LikeCount(); //先查看本主題討論是否有點過讚 var discussionLike = likeService.CheckLikeInfo(eventId, adr.Name, false, memberId); if (discussionLike != null) { vm.Like = discussionLike; } #region //取得該主題討論區的所有留言 if (msg != null) { foreach (var _msg in msg) { var resMsg = new Infrastructure.BusinessObject.MsgContent(); resMsg.Like = new Infrastructure.BusinessObject.LikeCount(); var _info = db.ActModuleMessage.Where(t => t.ActivityId == ar.Id && t.Id == _msg.ActModuleMsgId && t.Visibility != false).FirstOrDefault(); //如果沒被刪除或有資料時 if (_info != null) { // var _msgMember = 0; resMsg.MsgInfo = _info; //取得建立主題討論者資訊 var msgMember = _uow.MembersRepo.MemberInfo(_info.CreateUser.Value); resMsg.MemberInfo = new Infrastructure.ValueObject.LearningCircleMemberInfo() { AccountId = msgMember.Account, MemberId = msgMember.Id, Email = msgMember.Email, MemberName = msgMember.Name, Picture = msgMember.Photo }; /* if (_info.CreateUser != null) * { * _msgMember = Convert.ToInt32(_info.CreateUser); * }*/ //查看是否有該留言的讚 var _likeInfo = likeService.CheckLikeInfo(_info.OuterKey, _info.Content, true, memberId); //塞讚資訊 if (_likeInfo != null) { resMsg.Like = _likeInfo; //vm.Like.Add(discussionLike); } //查看是否為自己留言 if (_info.CreateUser.Equals(memberId)) { resMsg.IsMy = true; } else { resMsg.IsMy = false; } vm.Msg.Add(resMsg); } } } #endregion return(vm); } else { return(null); } } else { return(null); } }