Example #1
0
        /// <summary>
        /// 建立新學習圈的固定角色 - 老師 + 學生
        /// </summary>
        /// <param name="learningId">學習圈代碼</param>
        /// <param name="memberId">管理者代碼</param>
        /// <returns></returns>
        public string[] AddNewLearningRole(int learningId, int memberId)
        {
            var db = _uow.DbContext;

            string[] roleIdArray = new string[2];
            //新增老師角色
            var entityRole = new LearningRole
            {
                IsAdminRole = true,
                LearningId  = learningId,
                Name        = "老師",
                IsFixed     = false,
                Created     = Infrastructure.Property.TimeData.Create(DateTime.UtcNow),
                CreateUser  = memberId,
                Enable      = true,
                UpdateUser  = null,
                DeleteUser  = null,
                Updated     = Infrastructure.Property.TimeData.Create(null),
                Deleted     = Infrastructure.Property.TimeData.Create(null),
                ExternalRid = 1
            };

            db.LearningRole.Add(entityRole);
            db.SaveChanges();
            roleIdArray[0] = entityRole.Id.ToString();
            //新增學生角色
            entityRole.Name        = "學生";
            entityRole.IsAdminRole = false;
            db.LearningRole.Add(entityRole);
            db.SaveChanges();
            roleIdArray[1] = entityRole.Id.ToString();
            return(roleIdArray);
        }
Example #2
0
        /// <summary>
        /// 建立課程組織預設角色 - 目前給同步API用
        /// </summary>
        /// <param name="orgId"></param>
        /// <returns></returns>
        public List <LearningRole> SetLearningCircleOrgnaizationRole(int orgId, int learningCircleId)
        {
            var db                = _uow.DbContext;
            var responseData      = new List <LearningRole>();
            var templateRoleDatas = db.LearningTemplateRoles.Where(t => t.OrgId == orgId);

            if (templateRoleDatas.FirstOrDefault() == null)
            {
                return(null);
            }
            foreach (var templateRole in templateRoleDatas)
            {
                var learningCircleRoleEntity = new LearningRole()
                {
                    ExternalRid = 1,
                    Created     = TimeData.Create(DateTime.UtcNow),
                    Deleted     = TimeData.Create(null),
                    Updated     = TimeData.Create(null),
                    CreateUser  = 1,
                    Enable      = true,
                    IsFixed     = true,
                    Ican5Memo   = templateRole.RoleKey,
                    LearningId  = learningCircleId,
                    Name        = templateRole.Name,
                    Level       = templateRole.Level
                };
                learningCircleRoleEntity.IsAdminRole = (templateRole.Level <= 2) ? true : false;
                db.LearningRole.Add(learningCircleRoleEntity);
                responseData.Add(learningCircleRoleEntity);
            }
            db.SaveChanges();
            return(responseData);
        }
Example #3
0
        /// <summary>
        /// 新增自訂角色
        /// </summary>
        /// <param name="memberId">管理者代碼</param>
        /// <param name="learningId">學習圈代碼</param>
        /// <param name="roleName">自訂角色名稱</param>
        /// <param name="isAdmin">是否為管理員</param>
        /// <returns></returns>
        public Infrastructure.Entity.LearningRole AddLearningEditRole(int memberId, int learningId, string roleName, bool isAdmin, bool?isFixed = false, int?level = 3)
        {
            var db   = _uow.DbContext;
            var info = new LearningRole
            {
                LearningId  = learningId,
                Name        = roleName,
                IsFixed     = isFixed.Value,
                IsAdminRole = isAdmin,
                Created     = Infrastructure.Property.TimeData.Create(DateTime.UtcNow),
                CreateUser  = memberId,
                Enable      = true,
                UpdateUser  = null,
                DeleteUser  = null,
                Updated     = Infrastructure.Property.TimeData.Create(null),
                Deleted     = Infrastructure.Property.TimeData.Create(null),
                Level       = level.Value,
                Ican5Memo   = "1000"
            };

            if (level.Value < 3)
            {
                info.Ican5Memo = level.Value == 1 ? "2000" : "2010";
            }
            db.LearningRole.Add(info);
            db.SaveChanges();
            return(info);
        }
Example #4
0
        /// <summary>
        /// 建立多筆
        /// </summary>
        /// <param name="requestData"></param>
        /// <returns></returns>
        public IEnumerable <LearningRole> CreateMutiple(LearningRolePostResquest requestData)
        {
            var db           = _uow.DbContext;
            var tokenService = new TokenService();
            var tokenInfo    = tokenService.GetTokenInfo(requestData.Token).Result;

            if (tokenInfo == null)
            {
                return(null);
            }
            var learningCircleService = new LearningCircleService();
            var learningCircleInfo    = learningCircleService.GetDetailByOuterKey(requestData.CircleKey.ToLower());

            if (learningCircleInfo == null)
            {
                return(null);
            }

            var responseData = new List <LearningRole>();

            foreach (var data in requestData.Roles)
            {
                var checkEmpty = db.LearningRole.FirstOrDefault(t => t.Name == data.Name && t.Level == data.Level && t.LearningId == learningCircleInfo.Id);
                if (checkEmpty != null)
                {
                    continue;
                }
                var entity = new LearningRole()
                {
                    Created     = TimeData.Create(DateTime.UtcNow),
                    Deleted     = TimeData.Create(null),
                    Updated     = TimeData.Create(null),
                    IsAdminRole = data.Level <= 2 ? true : false,
                    Name        = data.Name,
                    Level       = data.Level,
                    Enable      = true,
                    IsFixed     = true,
                    LearningId  = learningCircleInfo.Id,
                    CreateUser  = tokenInfo.MemberId
                };
                db.LearningRole.Add(entity);
                responseData.Add(entity);
            }
            db.SaveChanges();
            return(responseData);
        }