public IHttpActionResult Get(string strAccess) { var requestData = JsonConvert.DeserializeObject <Infrastructure.ViewModel.Base.BackendBaseRequest>(strAccess); var requestService = new Service.Utility.RequestDataHelper <Infrastructure.ViewModel.Base.BackendBaseRequest>(); var checkColumnKeys = new string[2] { "icantoken", "account" }; var checkEmpty = requestService.CheckColumnEmpty(requestData, checkColumnKeys); var response = new Infrastructure.ViewModel.Base.BaseResponse <List <Infrastructure.ViewModel.School.GetLearningMapDataResponse> >(); response.Success = false; response.Data = new List <Infrastructure.ViewModel.School.GetLearningMapDataResponse>(); if (checkEmpty == false) { response.Message = "遺漏參數"; response.State = Infrastructure.ViewModel.Base.LogState.RequestDataError; return(Content(HttpStatusCode.BadRequest, response)); } var tokenService = new TokenService(); var tokenInfo = tokenService.GetTokenInfo(requestData.ICanToken).Result; if (tokenInfo == null) { response.Success = false; response.State = Infrastructure.ViewModel.Base.LogState.Logout; response.Message = "已登出"; return(Ok(response)); } var learningMapService = new SceLearningMapService(); var responseData = learningMapService.GetData(requestData.ICanToken); if (responseData != null) { response.Success = true; response.Message = "查詢成功"; response.Data.Add(responseData); } else { response.Success = true; response.Message = "老師無學習地圖資料"; } return(Ok(response)); }
/// <summary> /// 驗證是否為有效的登入 /// </summary> /// <param name="deviceKey">登入裝置</param> /// <param name="loginMemberInfo">登入者資訊</param> /// <returns></returns> private LoginResponse SetLoginResponse(string requestSystem, Member loginMemberInfo, string code = null) { var db = _uow.DbContext; //驗證是否為有效的登入 var checkSuccess = (requestSystem != null && requestSystem != string.Empty) ? CheckLoginSuccess(loginMemberInfo.Id, requestSystem.ToLower()) : CheckLoginSuccess(loginMemberInfo.Id, null, code.ToLower()) ; if (checkSuccess == null) { return(null); } else { int?nil = null; var result = new LoginResponse() { AcpdId = loginMemberInfo.Account, AcpdName = loginMemberInfo.Name, Code = checkSuccess.DeviceKey, Email = loginMemberInfo.Email, ICanToken = checkSuccess.Token, ShowMail = loginMemberInfo.IsShowEmail, Photo = loginMemberInfo.Photo, IsOrgAdmin = loginMemberInfo.IsOrgAdmin, OrgId = loginMemberInfo.OrgId }; var extraInfo = new LoginLearningMapBasic(); //塞院系名稱 if (loginMemberInfo.DeptId.HasValue && loginMemberInfo.DeptId >= 0) { var deptInfo = db.Depts.Find(loginMemberInfo.DeptId.Value); if (deptInfo != null) { extraInfo.Name_coll = deptInfo.Name; result.ManColl = deptInfo.DeptCode; result.CollName = deptInfo.Name; if (loginMemberInfo.OrganizationRoleId.HasValue) { var organizationRoleInfo = (from or in db.OrganizationRole join m in db.Members on or.Id equals m.OrganizationRoleId where m.Id == loginMemberInfo.Id select or).FirstOrDefault(); if (organizationRoleInfo != null && organizationRoleInfo.Level < 3) { result.CollBrief = organizationRoleInfo.Name; } else //塞該學生的目前年級 if (loginMemberInfo.Grade.HasValue) { result.CollBrief = string.Format("{0}{1}年級", deptInfo.ShortName, loginMemberInfo.Grade.Value); extraInfo.Stud_Grade = loginMemberInfo.Grade.Value; } } else { result.CollBrief = "系統管理員"; } } } extraInfo.ID_MainDoma = loginMemberInfo.IDMainDoma; extraInfo.Name_MainDoma = loginMemberInfo.NameMainDoma; if (loginMemberInfo.Grade.HasValue) { extraInfo.Stud_Grade = loginMemberInfo.Grade; } //塞該學生的在學狀態 if (loginMemberInfo.GraduationStatus.HasValue) { switch (loginMemberInfo.GraduationStatus.Value) { case 10: extraInfo.StudStatus = "在學"; break; case 20: extraInfo.StudStatus = "畢業"; break; case 30: extraInfo.StudStatus = "退學"; break; case 40: extraInfo.StudStatus = "休學"; break; default: break; } } //塞該學生的入學年 if (loginMemberInfo.SchoolRoll != null && loginMemberInfo.SchoolRoll != string.Empty) { extraInfo.Stud_SchlInYear = Convert.ToInt32(loginMemberInfo.SchoolRoll); } //塞所屬班級的起始年 if (loginMemberInfo.ClassGrade.HasValue) { extraInfo.Coll_SemeGrade = loginMemberInfo.ClassGrade.Value; } //塞學制資料 if (loginMemberInfo.SemesterGradeId.HasValue) { var semesterGradeInfo = db.SemesterGrade.Find(loginMemberInfo.SemesterGradeId.Value); if (semesterGradeInfo != null) { extraInfo.ID_syst = semesterGradeInfo.Code; extraInfo.GradeYears = semesterGradeInfo.GradeYears; } } //塞目前總共幾學期 if (loginMemberInfo.OrgId > 0) { var orgInfo = db.Organizations.Find(loginMemberInfo.OrgId); if (orgInfo != null && orgInfo.SemesterLength.HasValue) { extraInfo.SemesterLength = orgInfo.SemesterLength.Value; } } var sectionInfo = db.Sections.FirstOrDefault(t => t.IsNowSeme == true && t.OrgId == loginMemberInfo.OrgId); if (sectionInfo != null) { extraInfo.cour_year = Convert.ToInt32(sectionInfo.FullName); extraInfo.cour_seme = Convert.ToInt32(sectionInfo.Serial); } var checkIsTeacher = db.OrganizationRole.FirstOrDefault(t => t.Id == loginMemberInfo.OrganizationRoleId.Value); if (checkIsTeacher != null) { result.IsTeacher = checkIsTeacher.IsAdmin; } else { if (extraInfo.Stud_SchlInYear.HasValue && extraInfo.Stud_Grade.HasValue && (extraInfo.StudStatus != null || extraInfo.StudStatus != string.Empty) && (extraInfo.ID_syst != null && extraInfo.ID_syst != string.Empty) && (extraInfo.Coll_SemeGrade.HasValue)) { result.IsTeacher = false; } else { result.IsTeacher = true; } } var isSce = Convert.ToBoolean(ConfigurationManager.AppSettings["isSce"].ToString()); //假設是文大 if (isSce) { var learningMapService = new SceLearningMapService(); var learningMapResponseData = learningMapService.GetData(checkSuccess.Token); if (learningMapResponseData != null) { extraInfo.Coll_SemeGrade = learningMapResponseData.Coll_SemeGrade; extraInfo.goalCredit = (learningMapResponseData.GradCredit.HasValue) ? learningMapResponseData.GradCredit.Value : 0; extraInfo.correspondCredit = (learningMapResponseData.Colls != null && learningMapResponseData.Colls.FirstOrDefault() != null) ? learningMapService.GetCorrespondCredit(learningMapResponseData.Colls) : 0; } } result.ManType = (loginMemberInfo.RoleName != null && loginMemberInfo.RoleName != string.Empty) ? Convert.ToInt32(loginMemberInfo.RoleName) : nil; result.ExtraInfo = extraInfo; return(result); } }