Exemplo n.º 1
0
        public IHttpActionResult Post(LearningCirclePostRequest requestData)
        {
            var result          = new Infrastructure.ViewModel.Base.BaseResponse <Infrastructure.Entity.LearningCircle>();
            var requestService  = new Service.Utility.RequestDataHelper <LearningCirclePostRequest>();
            var checkColumnKeys = new string[7] {
                "name", "description", "token", "startdate", "enddate", "weeks", "place"
            };
            var checkEmpty = requestService.CheckColumnEmpty(requestData, checkColumnKeys);

            if (checkEmpty == false)
            {
                result.Success = false;
                result.Message = "確認是否遺漏資訊";
                return(Content(HttpStatusCode.BadRequest, result));
            }
            var service = new LearningCircleService();
            var data    = service.CreateLearningCircle(requestData.Name,
                                                       requestData.CircleKey,
                                                       requestData.Description,
                                                       requestData.Token,
                                                       requestData.StartDate.Value,
                                                       requestData.EndDate.Value,
                                                       requestData.OrgId
                                                       );

            if (data == null)
            {
                result.Success = false;
                result.Message = "新增失敗";
                result.State   = Infrastructure.ViewModel.Base.LogState.Error;
                return(Ok(result));
            }
            result.Success = true;
            var learningRoleService = new LearningRoleService();
            var authService         = new AuthService();
            //建立老師角色身分
            var teacherRole = learningRoleService.AddLearningEditRole(data.CreateUser.Value, data.Id, "老師", true, false, 1);
            //建立助教角色身分
            var surpportTeacherRole = learningRoleService.AddLearningEditRole(data.CreateUser.Value, data.Id, "助教", true, false, 2);
            //建立學生角色身分
            var studentRole = learningRoleService.AddLearningEditRole(data.CreateUser.Value, data.Id, "學生", false);
            //建立學習圈內角色權限
            var insertAuthSuccess = authService.InsertLearningCircleAllRoleAuth(data.Id, data.CreateUser.Value);

            var weekService      = new WeekTableService();
            var weekDatas        = weekService.CreateWeekDatas(requestData.Token, data.LearningOuterKey, 0, requestData.Place, requestData.StartDate.Value, requestData.EndDate.Value, requestData.Weeks);
            var timeTableService = new TimeTableService();

            var timeTableDatas = requestData.ClassWeekType > 0 ? timeTableService.CreateByCircleKey(data.LearningOuterKey, requestData.ClassWeekType) : timeTableService.CreateByCircleKey(data.LearningOuterKey);

            result.Message = "新增成功";
            result.Data    = data;
            return(Ok(result));
        }
Exemplo n.º 2
0
        /// <summary>
        /// 新增單筆資訊
        /// </summary>
        /// <param name="circleKey"></param>
        /// <param name="account"></param>
        /// <param name="token"></param>
        /// <param name="roleId"></param>
        /// <returns></returns>
        public bool InsertCircleMemberRole(string circleKey, string account, string token, int roleId)
        {
            var memberService = new MemberService();
            var memberInfo    = memberService.TokenToMember(token).Result;

            if (memberInfo == null)
            {
                return(false);
            }

            var learningRoleService = new LearningRoleService();
            var learningRoleInfo    = learningRoleService.GetDetailById(roleId);

            if (learningRoleInfo == null)
            {
                return(false);
            }
            var learningCircleService = new LearningCircleService();
            var learningCircleInfo    = learningCircleService.GetDetailByOuterKey(circleKey.ToLower());

            if (learningCircleInfo == null)
            {
                return(false);
            }
            var accountInfo = memberService.AccountToMember(account, learningCircleInfo.OrgId);

            if (accountInfo == null)
            {
                return(false);
            }

            var entity = new CircleMemberRoleplay()
            {
                CircleId    = learningCircleInfo.Id,
                Enable      = true,
                MemberId    = accountInfo.Id,
                RoleId      = roleId,
                ResType     = 0,
                ExternalRid = null
            };

            _uow.DbContext.CircleMemberRoleplay.Add(entity);
            return(true);
        }
Exemplo n.º 3
0
        /// <summary>
        /// 修改多筆資料
        /// </summary>
        /// <param name="requestData"></param>
        /// <returns></returns>
        public bool UpdateMutiple(CircleMemberRolePutRequest requestData, bool?isAdmin = false)
        {
            var memberService = new MemberService();
            var updaterInfo   = memberService.TokenToMember(requestData.Token).Result;

            if (updaterInfo == null)
            {
                return(false);
            }
            if (requestData.Accounts == null || requestData.Accounts.FirstOrDefault() == null)
            {
                return(false);
            }

            var learningRoleService = new LearningRoleService();
            var updateRoleLevel     = learningRoleService.GetMyRole(requestData.Token, requestData.CircleKey.ToLower());

            if (updateRoleLevel == null)
            {
                return(false);
            }

            //判斷是否能改request的role
            var checkRoleLevel = learningRoleService.GetDetailById(requestData.RoleId);

            if (checkRoleLevel == null)
            {
                return(false);
            }

            if (isAdmin.Value == false)
            {
                //設定數字越小,權限越大;故如果level大於等於request的level,就不能修改
                if (updateRoleLevel.Level >= checkRoleLevel.Level)
                {
                    return(false);
                }
            }


            foreach (var updateAccount in requestData.Accounts)
            {
                //該成員已經有該角色
                var checkData = GetDataByAccountCircleKeyRoleId(updateAccount, requestData.CircleKey.ToLower(), requestData.RoleId).FirstOrDefault();
                if (checkData != null)
                {
                    checkData.Enable = true;
                    continue;
                }
                //修改該成員的角色
                var oldData = GetDataByAccountCircleKey(updateAccount, requestData.CircleKey.ToLower()).FirstOrDefault();

                if (oldData != null)
                {
                    oldData.RoleId = requestData.RoleId;
                }
                else
                { //沒有就新增一筆
                    InsertCircleMemberRole(requestData.CircleKey.ToLower(), updateAccount, requestData.Token, requestData.RoleId);
                }
            }
            _uow.SaveChanges();
            return(true);
        }