public IHttpActionResult Get([FromUri] string strAccess) { var requestData = JsonConvert.DeserializeObject <GetAllMyCourseRequest>(strAccess); if (requestData.Account == null || requestData.ICanToken == null) { return(Content(HttpStatusCode.BadRequest, "遺漏參數")); } requestData.Token = requestData.ICanToken; var response = new Infrastructure.ViewModel.Base.ResultBaseModel <Infrastructure.ViewModel.School.GetCampusEventGetResponse>(); response.Success = false; var calendarService = new CalendarService(); var responseData = calendarService.GetList(requestData); if (responseData != null) { response.Success = true; response.Message = "查詢成功"; response.Data = responseData.ToArray(); } else { response.Success = true; response.Data = new Infrastructure.ViewModel.School.GetCampusEventGetResponse[0]; response.Message = "查無資料"; } return(Ok(response)); }
/// <summary> /// Post /// </summary> /// <param name="requestData"></param> /// <returns></returns> public IHttpActionResult Post([FromBody] BackendBaseRequest requestData) { var response = new Infrastructure.ViewModel.Base.ResultBaseModel <string>(); if (requestData.Account == null || requestData.ICanToken == null) { response.Success = false; response.Message = "遺漏資訊"; return(Content(HttpStatusCode.BadRequest, response)); } var logoutService = new LoginService(); var logoutscuuess = logoutService.LogOut(requestData.ICanToken); if (logoutscuuess == false) { response.Success = false; response.Message = "登出失敗"; return(Ok(response)); } FormsAuthentication.SignOut(); response.Message = "登出成功"; response.Success = true; return(Ok(response)); }
/// <summary> /// 進入留言內頁 /// </summary> /// <param name="token">使用者代碼</param> /// <param name="outerKey">留言代碼</param> /// <param name="maxResult"></param> /// <returns></returns> public Infrastructure.ViewModel.Base.ResultBaseModel <DiscussionCommentDetail> LoadCommentDetail(Guid token, string outerKey, int?maxResult = 10) { var response = new Infrastructure.ViewModel.Base.ResultBaseModel <DiscussionCommentDetail>(); response.Success = false; response.Data = new DiscussionCommentDetail[0]; var checkToken = CheckToken(token.ToString()); if (checkToken == null) { response.Message = "身分驗證失敗"; } var data = discussionMsgService.GetCommentDetail(token, outerKey, maxResult); if (data != null) { response.Data = new DiscussionCommentDetail[1] { data }; response.Success = true; response.Message = "查詢成功"; // 將訊息發送給群組 Clients.Caller.loadCommentDetail(data); } else { response.Success = false; response.Message = "查詢失敗"; } return(response); }
public IHttpActionResult Post(Infrastructure.ViewModel.School.SignInSynchronize.SignSyncClientRequest requestData) { // var requestData = JsonConvert.DeserializeObject<Infrastructure.ViewModel.School.SignInSynchronize.SignSyncClientRequest>(strAccess); var requestService = new Service.Utility.RequestDataHelper <Infrastructure.ViewModel.School.SignInSynchronize.SignSyncClientRequest>(); var checkColumnKeys = new string[4] { "icantoken", "classid", "syll_id", "times" }; var checkEmpty = requestService.CheckColumnEmpty(requestData, checkColumnKeys); var response = new Infrastructure.ViewModel.Base.ResultBaseModel <string>(); response.Success = false; response.Data = new string [0]; if (checkEmpty == false) { response.State = Infrastructure.ViewModel.Base.LogState.RequestDataError; return(Content(HttpStatusCode.BadRequest, response)); } requestData.Token = requestData.ICanToken; var tokenService = new TokenService(); var tokenInfo = tokenService.GetTokenInfo(requestData.Token).Result; if (tokenInfo == null) { response.Data = new string[0]; response.Message = "已登出"; response.State = Infrastructure.ViewModel.Base.LogState.Logout; return(Content(HttpStatusCode.Forbidden, response)); } var signInSyncService = new SignInSyncService(); var responseData = signInSyncService.SyncToiCan(requestData); if (responseData == Infrastructure.ViewModel.Base.LogState.Suscess) { response.Success = true; response.Data = new string[1] { "同步成功" }; response.Message = "同步成功"; } else { response.Message = responseData.ToString(); response.State = responseData; } return(Ok(response)); }
public IHttpActionResult Post([FromBody]Infrastructure.ViewModel.CourseManage.GetAllMyCourseRequest value) { if (value.Account == null || value.ICanToken == null) return Content(HttpStatusCode.BadRequest, "遺漏參數"); var result = new Infrastructure.ViewModel.Base.ResultBaseModel<Infrastructure.ViewModel.CourseManage.GetAllMyCourseResponse>(); var service = new LearningCircleService(); var response = service.APPGetAllMyCourse(value.ICanToken); if (response == null) { result.Success = false; result.Message = "查詢失敗"; result.State = Infrastructure.ViewModel.Base.LogState.Error; return Ok(response); } result.Success = true; result.Message = "查詢成功"; result.Data = response.ToArray(); return Ok(result); }
/// <summary> /// 取得版本資訊 /// </summary> /// <param name="strAccess">裝置系統 - IOS | Android</param> /// <returns></returns> public IHttpActionResult Get([FromUri] string strAccess) { var service = new AppVersionService(); var result = new Infrastructure.ViewModel.Base.ResultBaseModel <Infrastructure.ViewModel.AppVersionViewModel>(); var data = service.GetData(strAccess); if (data == null) { result.Success = false; result.Message = "查詢失敗"; result.State = Infrastructure.ViewModel.Base.LogState.Error; return(Ok(result)); } result.Success = true; result.Message = "查詢成功"; result.Data = new Infrastructure.ViewModel.AppVersionViewModel[1] { data }; return(Ok(result)); }
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 IHttpActionResult Get([FromUri] string strAccess) { var requestData = JsonConvert.DeserializeObject <Infrastructure.ViewModel.CourseManage.GetCourseSyllabusRequest>(strAccess); if (requestData.ClassID == null || requestData.Account == null || requestData.ICanToken == null) { return(Content(HttpStatusCode.BadRequest, "遺漏參數")); } var service = new SyllabusService(); var result = new Infrastructure.ViewModel.Base.ResultBaseModel <Infrastructure.ViewModel.CourseManage.GetCourseSyllabusResponse>(); var tokenService = new TokenService(); var checkToken = tokenService.GetTokenInfo(requestData.ICanToken).Result; if (checkToken == null) { result.Success = false; result.Message = "已登出"; result.State = Infrastructure.ViewModel.Base.LogState.Logout; return(Content(HttpStatusCode.BadRequest, result)); } var data = service.APPGetCourSyllabus(requestData.ICanToken, requestData.ClassID); if (data == null) { result.Success = false; result.Message = "查詢錯誤"; result.State = Infrastructure.ViewModel.Base.LogState.Error; return(Ok(result)); } result.Success = true; result.Data = data.ToArray(); result.Message = "查詢成功"; return(Ok(result)); }
/// <summary> /// Get /// </summary> /// <param name="strAccess"></param> /// <returns></returns> public IHttpActionResult Get([FromUri] string strAccess) { var requestData = JsonConvert.DeserializeObject <BackendBaseRequest>(strAccess); var response = new Infrastructure.ViewModel.Base.ResultBaseModel <string>(); if (requestData.Account == null || requestData.ICanToken == null) { response.Success = false; response.Message = "遺漏資訊"; return(Content(HttpStatusCode.BadRequest, response)); } var tokenService = new TokenService(); var checkToken = tokenService.GetTokenInfo(requestData.ICanToken).Result; if (checkToken == null) { response.Success = false; response.Message = "已登出"; response.State = Infrastructure.ViewModel.Base.LogState.Logout; return(Content(HttpStatusCode.BadRequest, response)); } var logoutService = new LoginService(); var logoutscuuess = logoutService.LogOut(requestData.ICanToken); if (logoutscuuess == false) { response.Success = false; response.Message = "登出失敗"; response.State = Infrastructure.ViewModel.Base.LogState.Error; return(Ok(response)); } FormsAuthentication.SignOut(); response.Message = "登出成功"; response.Success = true; return(Ok(response)); }
public IHttpActionResult Post([FromBody] Infrastructure.ViewModel.CourseManage.GetCourseSyllabusRequest value) { if (value.ClassID == null || value.Account == null || value.ICanToken == null) { return(Content(HttpStatusCode.BadRequest, "遺漏參數")); } var service = new SyllabusService(); var data = service.APPGetCourSyllabus(value.ICanToken, value.ClassID); var result = new Infrastructure.ViewModel.Base.ResultBaseModel <Infrastructure.ViewModel.CourseManage.GetCourseSyllabusResponse>(); if (data == null) { result.Success = false; result.Message = "查無資料"; return(Ok(result)); } result.Success = true; result.Data = data.ToArray(); result.Message = "查詢成功"; return(Ok(result)); }
/// <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)); }
public IHttpActionResult Get([FromUri] string strAccess) { var requestData = JsonConvert.DeserializeObject <Infrastructure.ViewModel.ActivityFunction.Leave.SetAbsenceFormStatusRequest>(strAccess); if (requestData.Account == null || requestData.ClassID == null || requestData.ICanToken == null || requestData.OuterKey == null) { return(Content(HttpStatusCode.BadRequest, "遺漏參數")); } var response = new Infrastructure.ViewModel.Base.ResultBaseModel <Infrastructure.ViewModel.ActivityFunction.Leave.SetAbsenceFormStatusResponse>(); var tokenService = new TokenService(); var checkToken = tokenService.GetTokenInfo(requestData.ICanToken).Result; if (checkToken == null) { response.Success = false; response.Message = "已登出"; response.State = Infrastructure.ViewModel.Base.LogState.Logout; return(Ok(response)); } var learningService = new LearningCircleService(); var learningId = learningService.GetDetailByOuterKey(requestData.ClassID).Id; var authService = new AuthService(); // 是否有審核請假單的權限 var reviewLeave = authService.CheckFunctionAuth(learningId, ParaCondition.LeaveFunction.Review, checkToken.MemberId); var activityService = new ActivityService(); var service = new LeaveService(); var pushService = new PushService(); var signalrService = new SignalrService(); var signInLogService = new SignInLogService(); var reViewData = new List <Infrastructure.ViewModel.ActivityFunction.Leave.SetAbsenceFormStatusResponse>(); //設定審核狀態 var status = string.Empty; switch (requestData.status) { case Infrastructure.ValueObject.enumAbsenceFormStatus.Invalid: status = "00"; break; case Infrastructure.ValueObject.enumAbsenceFormStatus.Pass: status = "10"; break; case Infrastructure.ValueObject.enumAbsenceFormStatus.Wait: status = "20"; break; case Infrastructure.ValueObject.enumAbsenceFormStatus.Recall: status = "30"; break; case Infrastructure.ValueObject.enumAbsenceFormStatus.Reject: status = "40"; break; default: break; } foreach (var leave in requestData.OuterKey) { var eventId = Service.Utility.OuterKeyHelper.CheckOuterKey(leave); if (eventId.HasValue == false) { continue; } //修改狀態 var data = service.Update(eventId.Value, null, null, requestData.reason, status); //修改點名狀態 //老師審核 if (reviewLeave) { var compareDay = activityService.GetActivitys(requestData.ClassID, data.LeaveDate); if (requestData.status == enumAbsenceFormStatus.Pass) { response.Message = "審核成功"; foreach (var _signInInfo in compareDay) { var resReviewData = new Infrastructure.ViewModel.ActivityFunction.Leave.SetAbsenceFormStatusResponse(); var signInOuterKey = OuterKeyHelper.GuidToPageToken(_signInInfo.OuterKey); // 更新點名紀錄為請假 { 0, "未開放您參加此活動"}, { 1, "出席"}, { 2, "缺席"}, { "3", "遲到"}, { "4", "早退"},{"5", "請假"} var signInlogInfo = signInLogService.GetSignInLog(checkToken.MemberId, _signInInfo.OuterKey, data.StudId); if (signInlogInfo.Status == "2") { var updateSignInLog = signInLogService.UpdateLog(checkToken.MemberId, _signInInfo.OuterKey, data.StudId, "5"); //var mylog = _logService.GetLogs(eventId); updateSignInLog.LeaveStatus = requestData.status.ToString(); SignalrClientHelper.SignIn_StatusChanged(requestData.ClassID, signInOuterKey, updateSignInLog); if (_signInInfo.StartDate.Value != null) { resReviewData.SignInOuterKey = signInOuterKey; resReviewData.SignInDateTime = _signInInfo.StartDate.Value; reViewData.Add(resReviewData); } } else { var mylog = signInLogService.GetSignInLog(Convert.ToInt32(_signInInfo.CreateUser.ToString()), _signInInfo.OuterKey, data.StudId); if (_signInInfo.StartDate.Value != null) { resReviewData.SignInOuterKey = signInOuterKey; resReviewData.SignInDateTime = _signInInfo.StartDate.Value; reViewData.Add(resReviewData); } SignalrClientHelper.SignIn_StatusChanged(requestData.ClassID, signInOuterKey, mylog); } //_array.SetValue(signInOuterKey, _index); // _index++; } response.Success = true; //推播 pushService.PushOnUpdatedLeave(requestData.ClassID, eventId.Value, data.StudId, data.LeaveDate.ToLocalTime(), "已通過"); var noticeMsg = string.Format("您在({0:yyyy/MM/dd})的請假單「{1}」", data.LeaveDate.ToLocalTime(), "已通過", requestData.ClassID, DateTime.Now); // 將通知寫入資料庫 activityService.AddNotice(requestData.ClassID.ToLower(), data.StudId, data.EventId, noticeMsg); //發通知給學生 var connectIdAndNoticeData = signalrService.GetConnectIdAndData(requestData.ClassID, data.StudId, SignalrConnectIdType.One, SignalrDataType.Notice); SignalrClientHelper.SendNotice(connectIdAndNoticeData); } //駁回 else if (requestData.status == enumAbsenceFormStatus.Reject) { response.Message = string.Format("駁回,原因:{0}", requestData.reason); foreach (var _signInInfo in compareDay) { var resReviewData = new Infrastructure.ViewModel.ReviewDataModel(); // var signInLog = _logService.GetLogs(_signInInfo.EventId); var mylog = signInLogService.GetSignInLog(Convert.ToInt32(_signInInfo.CreateUser.ToString()), _signInInfo.OuterKey, data.StudId); mylog.LeaveStatus = requestData.status.ToString(); var signInOuterKey = Service.Utility.OuterKeyHelper.GuidToPageToken(_signInInfo.OuterKey); //var mylog = _logService.GetLogs(eventId); SignalrClientHelper.SignIn_StatusChanged(requestData.ClassID, signInOuterKey, mylog); //if (_signInInfo.Updated != null) //{ // resReviewData.SignInOuterKey = signInOuterKey; // resReviewData.SignInDateTime = _signInInfo.Updated.Local.Value; // reViewData.Add(resReviewData); //} // _array.SetValue(signInOuterKey, _index); // _index++; } response.Success = true; //推播 pushService.PushOnUpdatedLeave(requestData.ClassID, eventId.Value, data.StudId, data.LeaveDate.ToLocalTime(), "未通過"); var noticeMsg = string.Format("您在({0:yyyy/MM/dd})的請假單「{1}」", data.LeaveDate.ToLocalTime(), "未通過", requestData.ClassID, DateTime.Now); // 將通知寫入資料庫 activityService.AddNotice(requestData.ClassID, data.StudId, eventId.Value, noticeMsg); //發通知給學生 var connectIdAndNoticeData = signalrService.GetConnectIdAndData(requestData.ClassID, data.StudId, SignalrConnectIdType.One, SignalrDataType.Notice); SignalrClientHelper.SendNotice(connectIdAndNoticeData); } }//學生抽回 else { if (requestData.status == enumAbsenceFormStatus.Recall) { response.Message = "已抽回"; if (data != null) { response.Success = true; } else { response.State = Infrastructure.ViewModel.Base.LogState.Error; response.Success = false; response.Message = "查無此請假單"; } } else { response.State = Infrastructure.ViewModel.Base.LogState.Error; response.Message = "無審核權限"; response.Success = false; } } //發送推播 } var _finalReviewData = new List <Infrastructure.ViewModel.ActivityFunction.Leave.SetAbsenceFormStatusResponse>(); foreach (var _item in reViewData) { var che = _finalReviewData.Where(t => t.SignInOuterKey == _item.SignInOuterKey); if (!che.Any()) { _finalReviewData.Add(_item); } } response.Data = _finalReviewData.ToArray(); 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> /// <param name="token"></param> /// <param name="circleKey"></param> /// <param name="activityOuterKey"></param> /// <param name="commentOuterKey"></param> /// <param name="maxResult"></param> /// <returns></returns> public Infrastructure.ViewModel.Base.ResultBaseModel <DiscussionLoadComment> LoadNewerComments(Guid token, string circleKey, string activityOuterKey, string commentOuterKey, int maxResult = 10) { var response = new Infrastructure.ViewModel.Base.ResultBaseModel <DiscussionLoadComment>(); response.Success = false; response.Data = new DiscussionLoadComment[0]; var checkToken = CheckToken(token.ToString()); if (checkToken == null) { response.Message = "身分驗證失敗"; } try { var msgData = new List <DiscussionMessage>(); var resultData = new DiscussionLoadComment(); // 是否為合法使用者 int memberId = checkToken.MemberId; if (memberId > 0) { var replyOuterKey = Guid.Empty; var eventId = Service.Utility.OuterKeyHelper.CheckOuterKey(activityOuterKey); if (eventId.HasValue == false) { response.Message = "outerKey格式錯誤"; return(response); } //如果要查中間 if (commentOuterKey != null) { var commentEventId = Service.Utility.OuterKeyHelper.CheckOuterKey(commentOuterKey); if (commentEventId.HasValue == false) { response.Message = "outerKey格式錯誤"; return(response); } replyOuterKey = commentEventId.Value; resultData.OuterKey = commentOuterKey; msgData = discussionMsgService.GetMessageList(eventId.Value, replyOuterKey).OrderByDescending(t => t.CreateTime).Take(maxResult).Reverse().ToList(); msgData.Remove(msgData.FirstOrDefault(t => t.EventId == replyOuterKey)); } //查全部 // else // { // msgData = service.GetMessageList(eventId).OrderBy(t => t.CreateTime).ToList(); //resultData.OuterKey = activityOuterKey; // } if (msgData != null) { resultData.Comments = msgData; response.Success = true; response.Message = "查詢成功"; response.Data = new DiscussionLoadComment[1] { resultData }; // 將訊息發送給群組 Clients.Group(circleKey.ToLower()).loadNewerComments(resultData); } else { response.Success = false; response.Message = "查詢失敗"; } } else { Clients.Caller.onError("loadNewerComments", "身分驗證失敗,請重新登入!token:[" + token + "]"); } return(response); } catch (Exception ex) { var msg = string.Format("{0}\n\n{1}", ex.Message, ex.StackTrace); Clients.Caller.onError("loadNewerComments", "取得新留言發生意外: " + msg); response.Success = false; response.Message = "取得新留言發生意外: " + msg; return(response); } }
public Infrastructure.ViewModel.Base.ResultBaseModel <DiscussionLoadComment> Get(Guid token, string circleKey, string activityOuterKey, string commentOuterKey, int maxResult = 10, bool?isNewer = true) { var response = new Infrastructure.ViewModel.Base.ResultBaseModel <DiscussionLoadComment>(); response.Success = false; response.Data = new DiscussionLoadComment[0]; try { //訊息列表 var msgData = new List <DiscussionMessage>(); //回應資訊 var resultData = new DiscussionLoadComment(); memberService = new MemberService(); // 是否為合法使用者 var checkMember = memberService.TokenToMember(token); discussionMsgService = new DiscussionFuncMsg(); if (checkMember != null) { var replyOuterKey = Guid.Empty; var eventId = Service.Utility.OuterKeyHelper.CheckOuterKey(activityOuterKey); if (eventId.HasValue == false) { response.Message = "outerKey格式錯誤"; return(response); } //如果要查中間 if (commentOuterKey != null) { var replyEventId = Service.Utility.OuterKeyHelper.CheckOuterKey(activityOuterKey); if (replyEventId.HasValue == false) { response.Message = "outerKey格式錯誤"; return(response); } replyOuterKey = replyEventId.Value; resultData.OuterKey = commentOuterKey; msgData = discussionMsgService.GetMessageList(eventId.Value, replyOuterKey, isNewer).OrderByDescending(t => t.CreateTime).Take(maxResult).Reverse().ToList(); } //查全部 else { msgData = discussionMsgService.GetMessageList(eventId.Value, null, isNewer).OrderBy(t => t.CreateTime).ToList(); resultData.OuterKey = activityOuterKey; } if (msgData != null) { resultData.Comments = msgData; response.Success = true; response.Message = "查詢成功"; response.Data = new DiscussionLoadComment[1] { resultData }; } else { response.Success = false; response.Message = "查詢失敗"; } } return(response); } catch (Exception ex) { var msg = string.Format("{0}\n\n{1}", ex.Message, ex.StackTrace); response.Success = false; response.Message = "取得留言發生意外: " + msg; return(response); } }
/// <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)); }