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));
        }
Exemplo n.º 2
0
        /// <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));
        }
Exemplo n.º 3
0
        /// <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);
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 6
0
        /// <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));
        }
Exemplo n.º 7
0
        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));
        }
Exemplo n.º 9
0
        /// <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));
        }
Exemplo n.º 12
0
        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));
        }
Exemplo n.º 13
0
        /// <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, "錯誤的查詢"));
            }
        }
Exemplo n.º 14
0
        /// <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);
            }
        }
Exemplo n.º 15
0
        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);
            }
        }
Exemplo n.º 16
0
        /// <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));
        }