/// <summary>
        /// 取得編輯學習圈的頁面框架資訊
        /// </summary>
        /// <param name="learningCircleId"></param>
        /// <param name="orgId"></param>
        /// <returns></returns>
        public Infrastructure.ViewModel.Backend.LearningCircleViewModel GetUpdateLearningCircleViewModelInformation(int learningCircleId, int orgId)
        {
            var db                 = _uow.DbContext;
            var backendService     = new Service.Backend.BackendService();
            var result             = new Infrastructure.ViewModel.Backend.LearningCircleViewModel();
            var learningCircleInfo = GetDetailByLearningCircleId(learningCircleId);

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

            result.LearningInfo = learningCircleInfo;

            var extensionColumns = backendService.GetExtensionColumns(orgId);

            result.ExtensionInfo = new List <Infrastructure.ViewModel.Backend.LearningCircleExt>();
            foreach (var column in extensionColumns)
            {
                var resExtInfo  = new Infrastructure.ViewModel.Backend.LearningCircleExt();
                var resExtValue = db.LCExtensionValue.FirstOrDefault(t => t.ColumnId == column.Id && t.DataId == learningCircleId);
                resExtInfo.Column = column;
                resExtInfo.Value  = resExtValue;
                result.ExtensionInfo.Add(resExtInfo);
            }

            return(result);
        }
        /// <summary>
        /// 取得新增學習圈的頁面框架資訊
        /// </summary>
        /// <param name="orgId"></param>
        /// <returns></returns>
        public Infrastructure.ViewModel.Backend.LearningCircleViewModel GetCreateLearningCircleViewModelInformation(int orgId)
        {
            var backendService   = new BackendService();
            var result           = new Infrastructure.ViewModel.Backend.LearningCircleViewModel();
            var extensionColumns = backendService.GetExtensionColumns(orgId);

            result.ExtensionInfo = new List <Infrastructure.ViewModel.Backend.LearningCircleExt>();
            foreach (var column in extensionColumns)
            {
                var resExtInfo = new Infrastructure.ViewModel.Backend.LearningCircleExt();
                resExtInfo.Column = column;
                result.ExtensionInfo.Add(resExtInfo);
            }
            return(result);
        }
        /// <summary>
        /// 建立學習圈 - [後臺管理-Area]
        /// </summary>
        /// <param name="data"></param>
        /// <param name="creator"></param>
        /// <returns></returns>
        public LearningCircle InsertLearningCircle(Infrastructure.ViewModel.Backend.LearningCircleViewModel data, int creator)
        {
            try
            {
                var learningRoleService = new LearningRoleService();
                var authService         = new AuthService();
                var db     = _uow.DbContext;
                var entity = data.LearningInfo;
                entity.Updated    = TimeData.Create(null);
                entity.Deleted    = TimeData.Create(null);
                entity.Created    = TimeData.Create(DateTime.UtcNow);
                entity.CreateUser = creator;
                entity.LCType     = 10;
                entity.Visibility = true;
                db.LearningCircle.Add(entity);
                db.SaveChanges();

                //建立老師角色身分
                var teacherRole = learningRoleService.AddLearningEditRole(creator, entity.Id, "老師", true, false, 1);
                //建立助教角色身分
                var surpportTeacherRole = learningRoleService.AddLearningEditRole(creator, entity.Id, "助教", true, false, 2);
                //建立學生角色身分
                var studentRole = learningRoleService.AddLearningEditRole(creator, entity.Id, "學生", false);
                //建立學習圈所有角色的權限
                var insertAuthSuccess = authService.InsertLearningCircleAllRoleAuth(entity.Id, creator);

                # region 新增擴充欄位資訊[目前只有文大有] - 如果是新的學校需要設定新增擴充欄位 [ExtensionColumns資料表]才會有
                if (data.ExtensionInfo != null)
                {
                    foreach (var row in data.ExtensionInfo)
                    {
                        var extValueEntity = new LCExtensionValue();
                        extValueEntity.DataId    = entity.Id;
                        extValueEntity.TextValue = row.Value.TextValue;
                        extValueEntity.ColumnId  = row.Column.Id;
                        db.LCExtensionValue.Add(extValueEntity);
                    }
                    db.SaveChanges();
                }

                #endregion

                return(entity);
            }