Beispiel #1
0
        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));
        }
Beispiel #2
0
        /// <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);
            }
        }