// ------------- Helper Method ------------------------ private DiscussionService NewDiscussionService() { var userId = Guid.Parse(User.Identity.GetUserId()); var service = new DiscussionService(userId); return(service); }
public ClassViewModel() { classDao = new ClassDao(); userDao = new UserDao(); discussionDao = new DiscussionDao(); discussionService = new DiscussionService(); classes = classDao.getClassesFromCourse(ContextUtil.Instance.Course); }
public override void Delete() { var authService = new AuthService(); var learningService = new LearningCircleService(); var learningCircleInfo = learningService.GetDetailByOuterKey(_parameters.CircleKey); bool _isAdmin = authService.CheckFunctionAuth(learningCircleInfo.Id, Service.Utility.ParaCondition.DiscussionFunction.Manage, _parameters.MemberId); var _service = new DiscussionService(); if (_isAdmin) { //刪除主題討論活動 _service.DeleteDiscussion(_parameters.EventId, _parameters.MemberId); } }
public IHttpActionResult Get(string outerKey, int?maxresult = 10) { discussionService = new DiscussionService(); var result = new Infrastructure.ViewModel.Base.ResultBaseModel <Infrastructure.ViewModel.ActivityFunction.Discussion.DiscussionDetail>(); var data = discussionService.GetDetailByOuterKey(outerKey, maxresult); if (data != null) { result.Success = true; result.Data = new Infrastructure.ViewModel.ActivityFunction.Discussion.DiscussionDetail[1] { data }; result.Message = "查詢成功"; } else { result.Success = false; result.Message = "查詢失敗"; } return(Ok(result)); }
public override ModulesListViewModel GetModulesListViewModel() { bool _isAdmin = IsAdmin(DiscussionFunction.Manage.ToString()); var _pages = System.Convert.ToInt32(_parameters.Pages); var db = _uow.DbContext; var moduleActs = db.Activitys.Where(t => t.ModuleKey.Equals(_parameters.ModuleKey) && t.ToRoomId.Equals(_parameters.CircleKey) && t.CardisShow == true); if (_parameters.Rows != null) { var _rows = System.Convert.ToInt32(_parameters.Rows); moduleActs = moduleActs.OrderByDescending(t => t.Publish_Utc).Skip((_pages - 1) * _rows).Take(_rows); } else { moduleActs = moduleActs.OrderByDescending(t => t.Publish_Utc); } _list.DiscussionList = new List <DiscussionViewModel>(); var _service = new DiscussionService(); foreach (var act in moduleActs) { var _discussion = _service.GetForMem(act.OuterKey, _parameters.MemberId); _discussion.Rows = _parameters.Rows; _discussion.Pages = _parameters.Pages; _list.DiscussionList.Add(_discussion); } _list.IsAdminRole = _isAdmin; _list.ModuleKey = _parameters.ModuleKey; _list.LearningId = _circle.Id; _list.CircleKey = _parameters.CircleKey; _list.CircleName = _circle.Name; return(_list); }
/// <summary> /// Конструктор с присваиванием сервиса. /// </summary> /// <param name="discussionService">Сервисы обсуждения.</param> /// <param name="voteService">Сервисы оценок.</param> /// <param name="cardService">Сервисы карт.</param> public DiscussionController(DiscussionService discussionService, VoteService voteService, CardService cardService) { this.discussionService = discussionService; this.voteService = voteService; this.cardService = cardService; }
/// <summary> /// 建立新的留言資訊 /// </summary> /// <returns></returns> public async Task <IHttpActionResult> Post() { var response = new Infrastructure.ViewModel.Base.ResultBaseModel <DiscussionSendMsg>(); var actModuleMessageService = new MessageService(); var discussionservice = new DiscussionService(); #region 將request值塞入model中 await SetFileData(); if (multipartFormDataStreamProvider.FormData == null) { response.Message = "遺漏參數"; response.State = Infrastructure.ViewModel.Base.LogState.RequestDataError; return(Content(HttpStatusCode.BadRequest, response)); } //設定參數 var token = multipartFormDataStreamProvider.FormData.Get("iCanToken") != null?multipartFormDataStreamProvider.FormData.GetValues("iCanToken")[0] : null; var circleKey = multipartFormDataStreamProvider.FormData.Get("classId") != null?multipartFormDataStreamProvider.FormData.GetValues("classId")[0] : null; var activityOuterKey = multipartFormDataStreamProvider.FormData.Get("activityOuterKey") != null?multipartFormDataStreamProvider.FormData.GetValues("activityOuterKey")[0] : null; var msg = multipartFormDataStreamProvider.FormData.Get("msg") != null?multipartFormDataStreamProvider.FormData.GetValues("msg")[0] : null; var commentOuterKey = multipartFormDataStreamProvider.FormData.Get("commentOuterKey") != null?multipartFormDataStreamProvider.FormData.GetValues("commentOuterKey")[0] : null; var replyOuterKey = multipartFormDataStreamProvider.FormData.Get("replyOuterKey") != null?multipartFormDataStreamProvider.FormData.GetValues("replyOuterKey")[0] : null; token = (token == null && multipartFormDataStreamProvider.FormData.Get("token") != null) ? multipartFormDataStreamProvider.FormData.GetValues("token")[0] : token; circleKey = (circleKey == null && multipartFormDataStreamProvider.FormData.Get("circleKey") != null) ? multipartFormDataStreamProvider.FormData.GetValues("circleKey")[0] : circleKey; multipartFormDataModel = new DiscussionSendMsgRequestModel() { ActivityOuterKey = activityOuterKey, CircleKey = circleKey, CommentOuterKey = commentOuterKey, Msg = msg, ReplyOuterKey = replyOuterKey, Token = Guid.Parse(token) }; #endregion memberService = new MemberService(); //驗證token var checkMember = memberService.TokenToMember(multipartFormDataModel.Token).Result; if (checkMember != null) { //查看主題討論是否存在 var discussionDBData = discussionservice.GetDBDiscussionInfo(multipartFormDataModel.ActivityOuterKey); if (discussionDBData != null) { discussionMsgService = new DiscussionFuncMsg(); var newMsg = discussionMsgService.AddMessage(multipartFormDataModel.CircleKey, multipartFormDataModel.Msg, checkMember.Id, multipartFormDataModel.ActivityOuterKey, multipartFormDataModel.CommentOuterKey, multipartFormDataModel.ReplyOuterKey); //新增成功 if (newMsg != null) { //是否有附加檔案 if (fileStreams != null && fileStreams.Count > 0) { var fileService = new FileService(); var discussionFileService = new DiscussionFuncFile(); // var files = await MutipartFileProxy(checkMember); var uploadFileInfo = fileService.UploadFiles(checkMember.Id, multipartFormDataFiles, fileStreams.ToArray()); newMsg.Comment.Photos = uploadFileInfo; //建立主題討論與檔案的關聯 var msgFileReference = discussionFileService.DiscussionFileReference(discussionDBData.Id, uploadFileInfo, newMsg.Id); } response.Success = true; response.Message = "成功建立留言"; objHub = GlobalHost.ConnectionManager.GetHubContext <SignalRHub.WiicoHub>(); objHub.Clients.Group(multipartFormDataModel.CircleKey.ToLower()).appendComment(newMsg); response.Data = new DiscussionSendMsg[1] { newMsg }; //推播給回覆者訊息 if (newMsg.Comment.Parent.HasValue) { //查出被回覆訊息資訊 var replyMsgInfo = actModuleMessageService.GetMsgDBInfoByOuterKey(newMsg.CommentOuterkey); memberService = new MemberService(); //查出被回覆者資訊 // var replyMemberInfo = memberService.GetMemberInfo(replyMsgInfo.CreateUser.Value); var replyMemberInfo = memberService.UserIdToAccount(replyMsgInfo.CreateUser.Value); if (newMsg.Comment.ReplyOuterKey == null) { //推播給被回覆者 PushMsgReplyAsync(multipartFormDataModel.CircleKey, newMsg.Comment.EventId, discussionDBData.Name, checkMember, replyMemberInfo, false); } else { PushMsgReplyAsync(multipartFormDataModel.CircleKey, newMsg.Comment.EventId, discussionDBData.Name, checkMember, replyMemberInfo, true); } } //推播給學習圈內所有人 else { PushDiscussionSendMsgAsync(multipartFormDataModel.CircleKey, newMsg.Comment.EventId, discussionDBData.Name, checkMember); } } else { response.Success = false; response.Message = "建立留言失敗"; response.State = Infrastructure.ViewModel.Base.LogState.Error; } } else { response.Success = false; response.Message = "主題討論不存在"; response.State = Infrastructure.ViewModel.Base.LogState.Error; } } else { response.Success = false; response.Message = "驗證身分失敗"; response.State = Infrastructure.ViewModel.Base.LogState.Logout; } return(Ok(response)); }
/// <summary> /// 取得列表 /// </summary> /// <param name="token">查詢者代碼</param> /// <param name="id">活動代號</param> /// <param name="strAccess">APPJsonStr</param> /// <param name="circleKey">學習圈代碼</param> /// <param name="rows">查詢數量</param> /// <param name="pages">查詢索引</param> /// <returns></returns> public IHttpActionResult Get(string strAccess = "", Guid?token = null, int?id = 3, string circleKey = "", int?rows = null, int?pages = 1) { //APP 呼叫 if (strAccess != "") { var requestData = JsonConvert.DeserializeObject <Infrastructure.ViewModel.ActivityFunction.ActivityListRequest>(strAccess); if (requestData.Account == null || requestData.CircleKey == null || requestData.ICanToken == null || (!requestData.Id.HasValue)) { var response = new Infrastructure.ViewModel.Base.BaseResponse <string>(); response.Success = false; response.Message = "遺漏參數"; response.Data = null; response.State = Infrastructure.ViewModel.Base.LogState.RequestDataError; return(Content(HttpStatusCode.BadRequest, response)); } id = (int)requestData.Id.Value; token = Guid.Parse(requestData.ICanToken); circleKey = requestData.CircleKey; pages = requestData.Pages.HasValue ? requestData.Pages : 1; rows = requestData.Rows.HasValue ? requestData.Rows : 20; } tokenService = new TokenService(); switch (id.Value) { //查詢主題討論的列表 case (int)activityEnum.Discussion: discussionService = new DiscussionService(); var discussionResponse = new Infrastructure.ViewModel.Base.ResultBaseModel <Infrastructure.ViewModel.ActivityFunction.Discussion.DiscussionModuleList>(); var discussionData = discussionService.GetDiscussionList(circleKey, pages, rows); if (discussionData != null && discussionData.FirstOrDefault() != null) { discussionResponse.Data = discussionData.ToArray(); discussionResponse.Success = true; return(Ok(discussionResponse)); } else { discussionResponse.Data = new Infrastructure.ViewModel.ActivityFunction.Discussion.DiscussionModuleList[0]; discussionResponse.Success = true; discussionResponse.Message = "查無資料"; return(Ok(discussionResponse)); } case (int)activityEnum.SignIn: try { var checkMember = tokenService.GetTokenInfo(token.Value.ToString()).Result; var signInResponse = new Infrastructure.ViewModel.Base.ResultBaseModel <Infrastructure.ViewModel.ActivityFunction.SignIn.SignInModuleList>(); signInService = new SignInService(); var signIndata = signInService.GetSignInList(checkMember.MemberId, circleKey, pages, rows); if (signIndata.FirstOrDefault() != null) { signInResponse.Data = signIndata.ToArray(); signInResponse.Success = true; signInResponse.Message = "查詢成功"; return(Ok(signInResponse)); } else { signInResponse.Success = true; signInResponse.Message = "查無資料"; signInResponse.Data = new Infrastructure.ViewModel.ActivityFunction.SignIn.SignInModuleList[0]; return(Ok(signInResponse)); } } catch (Exception ex) { return(Ok(ex.Message)); } case (int)activityEnum.Vote: var voteService = new VoteService(); var voteList = voteService.GetList(circleKey); var voteResponse = new Infrastructure.ViewModel.Base.ResultBaseModel <Infrastructure.ViewModel.ActivityFunction.Vote.VoteListResponse>(); if (voteList == null) { voteResponse.Message = "無資料"; } else { voteResponse.Message = "查詢成功"; voteResponse.Data = voteList.ToArray(); } voteResponse.Success = true; return(Ok(voteResponse)); case (int)activityEnum.Material: var materialService = new MaterialService(); try { var materialList = new List <MaterialViewModel>(); if (pages.HasValue && rows.HasValue) { materialList = materialService.GetFiles(circleKey, pages.Value, rows.Value); } else { materialList = materialService.GetFiles(circleKey); } var materialResponse = new Infrastructure.ViewModel.Base.ResultBaseModel <MaterialViewModel>(); if (materialList == null) { materialResponse.Message = "無資料"; } else { materialResponse.Message = "查詢成功"; materialResponse.Data = materialList.ToArray(); } materialResponse.Success = true; return(Ok(materialResponse)); } catch (Exception ex) { return(Ok(ex.Message)); } default: return(Content(HttpStatusCode.InternalServerError, "錯誤的查詢")); } }
/// <summary> /// 建立新的留言資訊 /// </summary> /// <returns></returns> public IHttpActionResult Post() { var result = new Infrastructure.ViewModel.Base.ResultBaseModel <DiscussionSendMsg>(); var requestFormData = HttpContext.Current.Request.Form; var actModuleMessageService = new MessageService(); var discussionservice = new DiscussionService(); #region 將request值塞入model中 var msgData = new Infrastructure.ViewModel.ActivityFunction.Discussion.DiscussionSendMsgRequestModel() { Token = Guid.Parse(requestFormData["token"].ToString()), CircleKey = requestFormData["circleKey"].ToString(), ActivityOuterKey = requestFormData["activityOuterKey"].ToString() }; if (requestFormData["commentOuterKey"] != null) { msgData.CommentOuterKey = requestFormData["commentOuterKey"].ToString(); } if (requestFormData["replyOuterKey"] != null) { msgData.ReplyOuterKey = requestFormData["replyOuterKey"].ToString(); } if (requestFormData["msg"] != null) { msgData.Msg = HttpUtility.UrlDecode(requestFormData["msg"].ToString()); } #endregion var msgFiles = HttpContext.Current.Request.Files; memberService = new MemberService(); //驗證token var checkMember = memberService.TokenToMember(msgData.Token).Result; if (checkMember != null) { //查看主題討論是否存在 var discussionDBData = discussionservice.GetDBDiscussionInfo(msgData.ActivityOuterKey); if (discussionDBData != null) { discussionMsgService = new DiscussionFuncMsg(); var newMsg = discussionMsgService.AddMessage(msgData.CircleKey, msgData.Msg, checkMember.Id, msgData.ActivityOuterKey, msgData.CommentOuterKey, msgData.ReplyOuterKey); //新增成功 if (newMsg != null) { //是否有附加檔案 if (msgFiles.Count > 0) { var fileService = new FileService(); var discussionFileService = new DiscussionFuncFile(); // var files = await MutipartFileProxy(checkMember); var uploadFileInfo = fileService.UploadFile(checkMember.Id, msgFiles); newMsg.Comment.Photos = uploadFileInfo; //建立主題討論與檔案的關聯 var msgFileReference = discussionFileService.DiscussionFileReference(discussionDBData.Id, uploadFileInfo, newMsg.Id); } result.Success = true; result.Message = "成功建立留言"; objHub = GlobalHost.ConnectionManager.GetHubContext <WiicoApi.SignalRHub.WiicoHub>(); objHub.Clients.Group(msgData.CircleKey.ToLower()).appendComment(newMsg); result.Data = new Infrastructure.ViewModel.ActivityFunction.Discussion.DiscussionSendMsg[1] { newMsg }; //推播給回覆者訊息 if (newMsg.Comment.Parent.HasValue) { //查出被回覆訊息資訊 var replyMsgInfo = actModuleMessageService.GetMsgDBInfoByOuterKey(newMsg.CommentOuterkey); memberService = new MemberService(); //查出被回覆者資訊 var replyMemberInfo = memberService.UserIdToAccount(replyMsgInfo.CreateUser.Value); if (newMsg.Comment.ReplyOuterKey == null) { //推播給被回覆者 PushMsgReplyAsync(msgData.CircleKey, newMsg.Comment.EventId, discussionDBData.Name, checkMember, replyMemberInfo, false); } else { PushMsgReplyAsync(msgData.CircleKey, newMsg.Comment.EventId, discussionDBData.Name, checkMember, replyMemberInfo, true); } } //推播給學習圈內所有人 else { PushDiscussionSendMsgAsync(msgData.CircleKey, newMsg.Comment.EventId, discussionDBData.Name, checkMember); } } else { result.Success = false; result.Message = "建立留言失敗"; } } else { result.Success = false; result.Message = "主題討論不存在"; } } else { result.Success = false; result.Message = "驗證身分失敗"; } return(Ok(result)); }
public async Task <IHttpActionResult> POST() { discussionService = new DiscussionService(); var result = new Infrastructure.ViewModel.Base.BaseResponse <string>(); result.Success = false; result.Data = ""; await SetFileData(); if (multipartFormDataStreamProvider.FormData == null) { result.Message = "遺漏參數"; result.State = Infrastructure.ViewModel.Base.LogState.RequestDataError; return(Content(HttpStatusCode.BadRequest, result)); } //設定參數 var token = multipartFormDataStreamProvider.FormData.Get("ICanToken") != null?multipartFormDataStreamProvider.FormData.GetValues("ICanToken")[0] : null; var circleKey = multipartFormDataStreamProvider.FormData.Get("ClassID") != null?multipartFormDataStreamProvider.FormData.GetValues("ClassID")[0] : null; var title = multipartFormDataStreamProvider.FormData.Get("Title") != null?multipartFormDataStreamProvider.FormData.GetValues("Title")[0] : null; var content = multipartFormDataStreamProvider.FormData.Get("Content") != null?multipartFormDataStreamProvider.FormData.GetValues("Content")[0] : null; if (token == null || circleKey == null || title == null) { result.Message = "遺漏參數"; result.State = Infrastructure.ViewModel.Base.LogState.RequestDataError; return(Content(HttpStatusCode.BadRequest, result)); } multipartFormDataModel = new DiscussionCreateRequestModel(); multipartFormDataModel.Token = Guid.Parse(token); multipartFormDataModel.CircleKey = circleKey.ToLower(); multipartFormDataModel.Title = title; multipartFormDataModel.Content = content; var activityOuterKey = streamProvider.FormData.Get("activityOuterKey") != null?streamProvider.FormData.GetValues("activityOuterKey")[0] : null; var commentOuterKey = streamProvider.FormData.Get("commentOuterKey") != null?streamProvider.FormData.GetValues("commentOuterKey")[0] : null; var replyOuterKey = streamProvider.FormData.Get("replyOuterKey") != null?streamProvider.FormData.GetValues("replyOuterKey")[0] : null; var msg = streamProvider.FormData.Get("msg") != null?streamProvider.FormData.GetValues("msg")[0] : null; multipartFormDataModel.ActivityOuterKey = activityOuterKey != null ? activityOuterKey : null; multipartFormDataModel.CommentOuterKey = commentOuterKey != null ? commentOuterKey : null; multipartFormDataModel.ReplyOuterKey = replyOuterKey != null ? replyOuterKey : null; multipartFormDataModel.Msg = msg != null ? msg : null; //驗證token var checkMember = tokenService.GetTokenInfo(multipartFormDataModel.Token.ToString()).Result; if (checkMember != null) { authService = new AuthService(); discussionFileService = new DiscussionFuncFile(); cacheService = new CacheService(); learingCircleService = new LearningCircleService(); var learningCircleInfo = learingCircleService.GetCourseLearningInfo(multipartFormDataModel.CircleKey); var hasAuth = authService.CheckFunctionAuth(learningCircleInfo.Id, DiscussionFunction.Manage, checkMember.MemberId); //老師新增主題討論活動 if (hasAuth) { var newDiscussion = new Infrastructure.Entity.ActDiscussion(); //建立有附加檔案的主題討論 if (fileStreams.Count > 0) { var fileService = new FileService(); var files = fileService.UploadFiles(checkMember.MemberId, multipartFormDataFiles, fileStreams.ToArray()); newDiscussion = discussionService.Add(multipartFormDataModel.CircleKey, checkMember.MemberId, multipartFormDataModel.Title, multipartFormDataModel.Content, files.Count(), 1); //建立主題討論與檔案的關聯 var discussionFileReference = discussionFileService.DiscussionFileReference(newDiscussion.Id, files, null); } else { newDiscussion = discussionService.Add(multipartFormDataModel.CircleKey, checkMember.MemberId, multipartFormDataModel.Title, multipartFormDataModel.Content, 0, 1); } var rtn = new Infrastructure.ViewModel.ActivitysViewModel(); if (newDiscussion != null) { result.Success = true; result.Message = "成功建立主題討論活動"; activityService = new ActivityService(); //顯示回傳app資訊 rtn = activityService.SignalrResponse(multipartFormDataModel.CircleKey, newDiscussion.EventId, ModuleType.Discussion, checkMember.MemberId, true); //新增主題討論活動 var objHub = GlobalHost.ConnectionManager.GetHubContext <WiicoHub>(); objHub.Clients.Group(multipartFormDataModel.CircleKey.ToLower()).appendActivity(rtn, ""); //為了推播與發通知查詢學習圈成員 var members = cacheService.GetCircleMember(multipartFormDataModel.CircleKey); if (members == null) { return(Ok(result)); } var signalrService = new SignalrService(); //發通知 var connectIdAndData = signalrService.GetConnectIdAndData(multipartFormDataModel.CircleKey, checkMember.MemberId, SignalrConnectIdType.All, SignalrDataType.Activity); SignalrClientHelper.ShowRecordListById(connectIdAndData); //發通知 // ShowRecordList(members, discussionData.CircleKey); // 推播 PushDiscussionOnCreatedAsync(members, multipartFormDataModel.CircleKey, rtn.OuterKey, multipartFormDataModel.Title, checkMember.MemberId); } else { rtn = null; result.Success = false; result.Message = "新增失敗"; } } else { result.Success = false; result.Message = "沒有權限"; } } return(Ok(result)); }
public async Task <IHttpActionResult> Put() { discussionService = new DiscussionService(); var response = new Infrastructure.ViewModel.Base.BaseResponse <string>(); response.Success = false; response.Data = ""; await SetFileData(); if (multipartFormDataStreamProvider.FormData == null) { response.Message = "遺漏參數"; response.State = Infrastructure.ViewModel.Base.LogState.RequestDataError; return(Content(HttpStatusCode.BadRequest, response)); } //設定參數 var token = multipartFormDataStreamProvider.FormData.Get("ICanToken") != null?multipartFormDataStreamProvider.FormData.GetValues("ICanToken")[0] : null; var circleKey = multipartFormDataStreamProvider.FormData.Get("ClassID") != null?multipartFormDataStreamProvider.FormData.GetValues("ClassID")[0] : null; var title = multipartFormDataStreamProvider.FormData.Get("Title") != null?multipartFormDataStreamProvider.FormData.GetValues("Title")[0] : null; var content = multipartFormDataStreamProvider.FormData.Get("Content") != null?multipartFormDataStreamProvider.FormData.GetValues("Content")[0] : null; var activityOuterKey = multipartFormDataStreamProvider.FormData.Get("activityOuterKey") != null?multipartFormDataStreamProvider.FormData.GetValues("activityOuterKey")[0] : null; var removeFiles = multipartFormDataStreamProvider.FormData.Get("removeFiles") != null?multipartFormDataStreamProvider.FormData.GetValues("removeFiles")[0] : null; if (token == null || circleKey == null || title == null || activityOuterKey == null) { response.Message = "遺漏參數"; response.State = Infrastructure.ViewModel.Base.LogState.RequestDataError; return(Content(HttpStatusCode.BadRequest, response)); } multipartFormDataModel = new DiscussionCreateRequestModel(); multipartFormDataModel.Token = Guid.Parse(token); multipartFormDataModel.CircleKey = circleKey.ToLower(); multipartFormDataModel.Title = title; multipartFormDataModel.Content = content; var commentOuterKey = multipartFormDataStreamProvider.FormData.Get("commentOuterKey") != null?multipartFormDataStreamProvider.FormData.GetValues("commentOuterKey")[0] : null; var replyOuterKey = multipartFormDataStreamProvider.FormData.Get("replyOuterKey") != null?multipartFormDataStreamProvider.FormData.GetValues("replyOuterKey")[0] : null; var msg = multipartFormDataStreamProvider.FormData.Get("msg") != null?multipartFormDataStreamProvider.FormData.GetValues("msg")[0] : null; multipartFormDataModel.ActivityOuterKey = activityOuterKey != null ? activityOuterKey : null; multipartFormDataModel.CommentOuterKey = commentOuterKey != null ? commentOuterKey : null; multipartFormDataModel.ReplyOuterKey = replyOuterKey != null ? replyOuterKey : null; multipartFormDataModel.Msg = msg != null ? msg : null; //驗證token var checkMember = tokenService.GetTokenInfo(multipartFormDataModel.Token.ToString()).Result; if (checkMember != null && activityOuterKey != null) { authService = new AuthService(); learingCircleService = new LearningCircleService(); var learningCircleInfo = learingCircleService.GetCourseLearningInfo(multipartFormDataModel.CircleKey); var hasAuth = authService.CheckFunctionAuth(learningCircleInfo.Id, DiscussionFunction.Manage, checkMember.MemberId); //老師編輯主題討論活動 if (hasAuth) { discussionFileService = new DiscussionFuncFile(); var updateDiscussion = new Infrastructure.Entity.ActDiscussion(); if (multipartFormDataFiles.Count > 0) { var fileService = new FileService(); var uploadFileInfo = fileService.UploadFiles(checkMember.MemberId, multipartFormDataFiles, fileStreams.ToArray()); updateDiscussion = discussionService.Update(multipartFormDataModel, checkMember.MemberId, uploadFileInfo.Count); //建立主題討論與檔案的關聯 var discussionFileReference = discussionFileService.DiscussionFileReference(updateDiscussion.Id, uploadFileInfo, null); } else { updateDiscussion = discussionService.Update(multipartFormDataModel, checkMember.MemberId, 0); } if (updateDiscussion != null) { cacheService = new CacheService(); //刪除檔案 if (removeFiles != null && removeFiles != string.Empty) { var removeFilesArray = removeFiles.Split(','); //刪除主題討論與檔案的關聯 discussionFileService.DeleteDiscussionFileReference(updateDiscussion.Id, removeFilesArray); } var rtn = discussionService.GetUpdateDetailByEventId(updateDiscussion.EventId); response.Success = true; response.Message = "成功編輯主題討論活動"; objHub.Clients.Group(multipartFormDataModel.CircleKey.ToLower()).updateDetail("discussion", rtn); //為了推播與發通知查詢學習圈成員 var members = cacheService.GetCircleMember(multipartFormDataModel.CircleKey); //為了單元測試用 if (members == null) { return(Ok(response)); } // 推播 PushDiscussionOnUpdateAsync(members, multipartFormDataModel.CircleKey, updateDiscussion.EventId, multipartFormDataModel.Title, checkMember.MemberId); var signalrService = new SignalrService(); //發通知 var connectIdAndData = signalrService.GetConnectIdAndData(multipartFormDataModel.CircleKey, checkMember.MemberId, SignalrConnectIdType.All, SignalrDataType.Activity); SignalrClientHelper.ShowRecordListById(connectIdAndData); //發通知 //ShowRecordList(members, discussionData.CircleKey); } else { response.Success = false; response.Message = "編輯失敗"; } } else { response.Success = false; response.Message = "沒有權限"; } } return(Ok(response)); }