/// <summary> /// 在水道頁長出新增活動之後的主題討論活動 /// </summary> /// <param name="eventId"></param> /// <param name="memberId"></param> /// <param name="circleKey"></param> /// <returns></returns> private Infrastructure.ViewModel.ActivitysViewModel addPanelInfo(Guid eventId, int memberId, string circleKey) { var db = _uow.DbContext; var data = new Infrastructure.ViewModel.ActivitysViewModel(); var activityInfo = db.Activitys.FirstOrDefault(t => t.OuterKey == eventId); if (activityInfo != null) { DateTime dt = DateTime.UtcNow; // 回傳給APP的物件 var me = db.Members.SingleOrDefault(x => x.Id == memberId); var photoInfo = me.Photo; if (me != null) { data = new Infrastructure.ViewModel.ActivitysViewModel() { Id = 0, CreatorAccount = me.Account, CreatorName = me.Name, CreatorPhoto = photoInfo, ToRoomId = circleKey.ToLower(), ModuleKey = "discussion", Created_Utc = dt, ReadMark = false, PositionMark = false, OuterKey = eventId, Publish_Utc = activityInfo.Publish_Utc }; } } return(data); }
/// <summary> /// 在水道頁長出新增活動之後的檔案活動 /// </summary> /// <param name="eventId"></param> /// <param name="memberId"></param> /// <param name="circleKey"></param> /// <returns></returns> public Infrastructure.ViewModel.ActivitysViewModel addPanelInfo(Guid eventId, int memberId, string circleKey) { var data = new Infrastructure.ViewModel.ActivitysViewModel(); var db = _uow.DbContext; var activityInfo = db.Activitys.Where(t => t.OuterKey == eventId).FirstOrDefault(); if (activityInfo != null) { DateTime dt = DateTime.UtcNow; // 回傳給APP的物件 var me = db.Members.SingleOrDefault(x => x.Id == memberId); if (me != null) { data = new Infrastructure.ViewModel.ActivitysViewModel() { Id = 0, CreatorAccount = me.Account, // CreatorPhoto = _uow.IThinkVmRepo.GetTempMemberByAccountId(memberId).Photo, CreatorPhoto = me.Photo, CreatorName = me.Name, ToRoomId = circleKey.ToLower(), ModuleKey = Utility.ParaCondition.ModuleType.Material, Created_Utc = dt, ReadMark = false, PositionMark = false, OuterKey = eventId, Publish_Utc = activityInfo.Publish_Utc, sOuterKey = Utility.OuterKeyHelper.GuidToPageToken(eventId) }; } } return(data); }
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)); }