コード例 #1
0
        public void TestMethod_MoveUnit()
        {
            LessonUnitBll bll  = new LessonUnitBll();
            var           unit = bll.SelectUnit(10000, 1);

            bll.MoveUnit(10000, 5);
        }
コード例 #2
0
        public void TestMethod_Insert()
        {
            LessonUnitBll bll = new LessonUnitBll();

            for (int i = 0; i < 10; i++)
            {
                DtoLessonUnit unit = new DtoLessonUnit();
                unit.CourseId   = 9999;
                unit.LessonId   = 9999;
                unit.Index      = i;
                unit.Name       = $"第{i + 1}页";
                unit.Screenshot = "";
                unit.Status     = 0;
                unit.Steps      = new List <Step>();
                unit.Steps.Add(new Step
                {
                    id      = 0,
                    StepNum = 0,
                    Actions = new List <StepAction>()
                    {
                        new SetTitle()
                        {
                            Actionid = "asdfgh", Text = "test", Align = "left", Color = "#000000", ActionNum = 0, InType = "none", Size = "big", X = 102.3435, Y = 123.2342
                        }
                    }
                });
                bll.Add(unit);
            }
        }
コード例 #3
0
        public void TestMethod_Update()
        {
            LessonUnitBll bll = new LessonUnitBll();

            DtoLessonUnit unit = new DtoLessonUnit();

            unit.Id         = 10000;
            unit.CourseId   = 9999;
            unit.LessonId   = 9999;
            unit.Index      = 100;
            unit.Name       = $"测试内容了";
            unit.Screenshot = "testurl";
            unit.Status     = 0;
            unit.Steps      = new List <Step>();
            unit.Steps.Add(new Step
            {
                id      = 0,
                StepNum = 0,
                Actions = new List <StepAction>()
                {
                    new SetTitle()
                    {
                        Actionid = "asdfgh", Text = "test", Align = "left", Color = "#ffffff", ActionNum = 0, InType = "none", Size = "small", X = 102.3435, Y = 123.2342
                    }
                }
            });
            bll.Update(unit);
        }
コード例 #4
0
        public JsonResult MovePage(int unitid, int index)
        {
            LessonUnitBll bll = new LessonUnitBll();

            bll.MoveUnit(unitid, index);
            return(Json(new JsonResponse <string> {
                State = true, ErrorCode = 0, ErrorMsg = "", Data = ""
            }));
        }
コード例 #5
0
        public JsonResult DeletePage(int pageid)
        {
            LessonUnitBll bll = new LessonUnitBll();

            bll.Delete(pageid);
            return(Json(new JsonResponse <string> {
                State = true, ErrorCode = 0, ErrorMsg = "", Data = ""
            }));
        }
コード例 #6
0
        public JsonResult GetUnitPage(int unitid, bool isshow, string jy)
        {
            if (Encrypt.MD5Hash(unitid.ToString(), "jzxd") == jy)
            {
                DtoLessonUnit p   = null;
                LessonUnitBll bll = new LessonUnitBll();
                if (!isshow)
                {
                    p = bll.SelectUnit(unitid, 0);
                }
                else
                {
                    p = bll.GetUnitFromRadis(unitid);
                }
                List <int> mediaIDs = new List <int>();
                List <int> textIDs  = new List <int>();
                var        page     = new Page()
                {
                    pageId   = p.Id,
                    pageNum  = p.Index,
                    pageName = p.Name,
                    coinsKey = Encrypt.EncryptQueryString($"{p.Coins}_{p.Id}_{p.LessonId}_{p.CourseId}"),//金币加密串(加密内容为"单元金币数_单元id_课时id_课程id")//Remark1
                    steps    = p.Steps.Select(s => new Step()
                    {
                        stepNum = s.StepNum,
                        actions = s.Actions.Select(a => ActionTranslator.DataToViewData(a, mediaIDs, textIDs)).ToList()
                    }).ToList()
                };
                //如果媒体id或文本id有值的话
                if (mediaIDs.Count > 0 || textIDs.Count > 0)
                {
                    ResourceBll rbll   = new ResourceBll();
                    var         medias = rbll.GetMediaObjectByIdList(mediaIDs.Distinct().ToList(), true); //获取所有的媒体对象字典
                    var         texts  = rbll.GetTextObjectByIdList(textIDs.Distinct().ToList());         //获取文本对象字典

                    page.steps.ForEach(s =>
                    {
                        s.actions.ForEach(a =>
                        {
                            ActionTranslator.SetViewDataMedia(a, medias, texts);
                        });
                    });
                }
                return(Json(new JsonResponse <Page>
                {
                    State = true,
                    ErrorCode = 0,
                    ErrorMsg = "",
                    Data = page
                }));
            }
            else
            {
                throw new Exception("GetUnitPage服务端校验失败");
            }
        }
        public void TestMethod1()
        {
            int page     = 1;
            int pagesize = 5;
            int courseid = 10016;
            int lessonid = 10047;

            LessonUnitBll bll   = new LessonUnitBll();
            var           pager = new Code.Common.PagingObject()
            {
                PageIndex  = page,     //开始页(包含)
                PageSize   = pagesize, //条数
                TotalCount = 0
            };
            var pages = bll.SelectUnitByNext(new Domain.Dto.Request.DtoLessonUnitSearch()
            {
                CourseID   = courseid,
                LessonID   = lessonid,
                StudentID  = 10000,
                Pagination = pager
            });
            List <int> mediaIDs = new List <int>();
            List <int> textIDs  = new List <int>();
            var        list     = pages.Select(p => new Page()
            {
                pageId   = p.Id,
                pageNum  = p.Index,
                pageName = p.Name,
                steps    = p.Steps.Select(s => new Step()
                {
                    stepNum = s.StepNum,
                    actions = s.Actions.Select(a => ActionTranslator.DataToViewData(a, mediaIDs, textIDs)).ToList()
                }).ToList()
            }).ToList();

            //如果媒体id或文本id有值的话
            if (mediaIDs.Count > 0 || textIDs.Count > 0)
            {
                ResourceBll rbll   = new ResourceBll();
                var         medias = rbll.GetMediaObjectByIdList(mediaIDs.Distinct().ToList()); //获取所有的媒体对象字典
                var         texts  = rbll.GetTextObjectByIdList(textIDs.Distinct().ToList());   //获取文本对象字典

                list.ForEach(p =>
                {
                    p.steps.ForEach(s =>
                    {
                        s.actions.ForEach(a =>
                        {
                            ActionTranslator.SetViewDataMedia(a, medias, texts);
                        });
                    });
                });
            }
            var str = JsonConvert.SerializeObject(list);
        }
コード例 #8
0
        public JsonResult GetLessonPage(DtoLessonUnitSearch search, bool isApprove = false)
        {
            LessonUnitBll bll = new LessonUnitBll();

            search.StudentID = GetCurrentUser().StudentId;//设置当前学生id
            if (isApprove)
            {
                search.Pagination.PageSize = 1;
            }                                                 //如果是审批的情况,只返回一条数据
            var        pages    = bll.SelectUnitByNext(search);
            List <int> mediaIDs = new List <int>();
            List <int> textIDs  = new List <int>();
            var        list     = pages.Select(p => new Page()
            {
                pageId   = p.Id,
                pageNum  = p.Index,
                pageName = p.Name,
                coinsKey = Encrypt.EncryptQueryString($"{p.Coins}_{p.Id}_{p.LessonId}_{p.CourseId}"),//金币加密串(加密内容为"单元金币数_单元id_课时id_课程id")//Remark1
                steps    = p.Steps.Select(s => new Step()
                {
                    stepNum = s.StepNum,
                    actions = s.Actions.Select(a => ActionTranslator.DataToViewData(a, mediaIDs, textIDs)).ToList()
                }).ToList()
            }).ToList();

            //如果媒体id或文本id有值的话
            if (mediaIDs.Count > 0 || textIDs.Count > 0)
            {
                ResourceBll rbll   = new ResourceBll();
                var         medias = rbll.GetMediaObjectByIdList(mediaIDs.Distinct().ToList(), true); //获取所有的媒体对象字典
                var         texts  = rbll.GetTextObjectByIdList(textIDs.Distinct().ToList());         //获取文本对象字典

                list.ForEach(p =>
                {
                    p.steps.ForEach(s =>
                    {
                        s.actions.ForEach(a =>
                        {
                            ActionTranslator.SetViewDataMedia(a, medias, texts);
                        });
                    });
                });
            }

            return(Json(new JsonResponse <List <Page> >
            {
                State = true,
                ErrorCode = 0,
                ErrorMsg = "",
                Data = list
            }));
        }
コード例 #9
0
        [ValidateInput(false)]//不做html验证
        public JsonResult ShowPage(string pagestr)
        {
            LessonUnitBll bll      = new LessonUnitBll();
            Page          pageInfo = new Page();
            JObject       obj      = JsonConvert.DeserializeObject(pagestr) as JObject;

            pageInfo.id      = Convert.ToInt32(obj["id"]);
            pageInfo.pageNum = Convert.ToInt32(obj["pageNum"]);
            pageInfo.name    = obj["name"].ToString();
            pageInfo.steps   = new List <Models.CurriculumSetViewModel.Step>();
            JArray steps = JsonConvert.DeserializeObject(obj["steps"].ToString()) as JArray;

            foreach (var s in steps)
            {
                Models.CurriculumSetViewModel.Step step = new Models.CurriculumSetViewModel.Step();
                step.stepNum = Convert.ToInt32(s["stepNum"]);
                step.actions = new List <ActionBase>();
                JArray actions = JsonConvert.DeserializeObject(s["actions"].ToString()) as JArray;
                foreach (var a in actions)
                {
                    step.actions.Add(ActionTranslator.JsonToViewData(a.ToString()));
                }
                pageInfo.steps.Add(step);
            }

            int coins     = 0;
            var stepsData = pageInfo.steps.Select(s => new Domain.JsonEntity.UnitStep.Step()
            {
                id      = s.id,
                StepNum = s.stepNum,
                Actions = s.actions.Select(a => ActionTranslator.ViewDataToData(a, ref coins)).ToList()
            }).ToList();

            //保存数据到Radis中
            bll.SaveUnitToRadis(new DtoLessonUnit
            {
                Id     = pageInfo.id,
                Index  = pageInfo.pageNum,
                Coins  = coins,
                Steps  = stepsData,
                Status = 0,
            });
            string key = Encrypt.EncryptQueryString($"{new Random().Next(0, 10000)}_{pageInfo.id}_{0}_{0}");

            return(Json(new JsonResponse <string> {
                State = true, ErrorCode = 0, ErrorMsg = "", Data = $"{ConfigurationManager.AppSettings["StudentClientDomain"]}LearningCenter/LessonApprove?ApproveKey={key}"
            }));
        }
コード例 #10
0
        public JsonResult SetUnitProcess(int courseId, int lessonId, int processId, int unitId, int status, string remark)
        {
            LessonUnitBll bll = new LessonUnitBll();
            int           i   = bll.SetUnitApprove(new Yw_CourseLessonUnitProcess()
            {
                Yup_CourseId        = courseId,
                Yup_LessonId        = lessonId,
                Yup_LessonProcessId = processId,
                Yup_UnitId          = unitId,
                Yup_Status          = status,
                Yup_Remark          = remark,
                Yup_Operator        = base.CurrentUserID
            });

            return(Json(new JsonResponse <int> {
                State = true, ErrorCode = 0, ErrorMsg = "", Data = i
            }));
        }
コード例 #11
0
        public JsonResult AddPage(Page page)
        {
            LessonUnitBll bll = new LessonUnitBll();
            //修改数据
            int id = bll.Add(new DtoLessonUnit
            {
                CourseId   = page.courseId,
                LessonId   = page.lessonId,
                Name       = "",
                Screenshot = "",
                Steps      = null,
                Index      = page.pageNum,
            });

            return(Json(new JsonResponse <int> {
                State = true, ErrorCode = 0, ErrorMsg = "", Data = id
            }));
        }
コード例 #12
0
        public JsonResult GetChapter(int chapterid)
        {
            LessonBll lbll = new LessonBll();

            var lesson = lbll.Select(chapterid);

            if (lesson != null)
            {
                LessonUnitBll bll = new LessonUnitBll();
                ChapterSet    set = new ChapterSet();
                set.courseId  = lesson.CourseId;
                set.id        = lesson.ID;
                set.name      = lesson.Name;
                set.setTime   = lesson.UpdateTime.ToString("yyyy-MM-dd HH:mm:ss");
                set.pages     = new List <Page>();
                set.status    = lesson.Status;
                set.processid = lesson.ProcessId;
                var units = bll.SelectUnitsByLesson(set.id, set.processid);
                if (units != null)
                {
                    set.pages = units.Select(u => new Page
                    {
                        courseId    = u.CourseId,
                        lessonId    = u.LessonId,
                        id          = u.Id,
                        name        = u.Name,
                        pageNum     = u.Index,
                        thumbnail   = string.IsNullOrEmpty(u.Screenshot) ? "" : (ConfigurationManager.AppSettings["OssHostUrl"] + u.Screenshot),
                        approveType = u.ApproveStatus
                    }).ToList();
                }
                return(Json(new JsonResponse <ChapterSet> {
                    State = true, ErrorCode = 0, ErrorMsg = "", Data = set
                }));
            }
            else
            {
                return(Json(new JsonResponse <ChapterSet> {
                    State = false, ErrorCode = 0, ErrorMsg = "没有此数据", Data = null
                }));
            }
        }
コード例 #13
0
        public JsonResult GetPage(int pageid, int processid)
        {
            LessonUnitBll bll  = new LessonUnitBll();
            var           unit = bll.SelectUnit(pageid, processid);
            var           page = new Page();

            page.courseId = unit.CourseId;
            page.lessonId = unit.LessonId;
            page.id       = unit.Id;
            page.name     = unit.Name;
            page.pageNum  = unit.Index;
            ////定义媒体资源id数组和文本资源id数组
            List <int> mediaids = new List <int>(), textids = new List <int>();

            page.steps = unit.Steps.Select(s => new Models.CurriculumSetViewModel.Step
            {
                id      = s.id,
                stepNum = s.StepNum,
                actions = s.Actions.Select(a => ActionTranslator.DataToViewData(a, mediaids, textids)).ToList()
            }).ToList();
            //如果媒体id或文本id有值的话
            if (mediaids.Count > 0 || textids.Count > 0)
            {
                ResourceBll rbll   = new ResourceBll();
                var         medias = rbll.GetMediaObjectByIdList(mediaids.Distinct().ToList()); //获取所有的媒体对象字典
                var         texts  = rbll.GetTextObjectByIdList(textids.Distinct().ToList());   //获取文本对象字典
                page.steps.ForEach((s) =>
                {
                    s.actions.ForEach((a) =>
                    {
                        ActionTranslator.SetViewDataMedia(a, medias, texts); //设置动作的媒体属性
                    });                                                      //遍历每一个动作
                });                                                          //遍历每一个步骤
            }
            page.approveType = unit.ApproveStatus;
            page.approve     = unit.Approve;
            return(Json(new JsonResponse <Page> {
                State = true, ErrorCode = 0, ErrorMsg = "", Data = page
            }));
        }
コード例 #14
0
 public void TestMethod_SelectUnits()
 {
     LessonUnitBll bll = new LessonUnitBll();
     var           s   = bll.SelectUnitsByLesson(9999, 1);
 }
コード例 #15
0
 public void TestMethod_SelectSteps()
 {
     LessonUnitBll bll = new LessonUnitBll();
     var           s   = bll.SelectUnit(10000, 1);
 }
コード例 #16
0
        [ValidateInput(false)]//不做html验证
        public JsonResult SetPage(string pagestr)
        {
            LessonUnitBll bll      = new LessonUnitBll();
            Page          pageInfo = new Page();

            #region 解析数据
            JObject obj       = JsonConvert.DeserializeObject(pagestr) as JObject;
            string  base64Str = obj["thumbnail"].ToString().Split(',')[1];
            pageInfo.id      = Convert.ToInt32(obj["id"]);
            pageInfo.pageNum = Convert.ToInt32(obj["pageNum"]);
            pageInfo.name    = obj["name"].ToString();

            string thumbnailPath     = "UnitThumbnail";          //文件路径
            string thumbnailFileName = $"unit{pageInfo.id}.png"; //文件名称

            new Thread(() =>
            {
                byte[] arr              = Convert.FromBase64String(base64Str);
                MemoryStream ms         = new MemoryStream(arr);
                FileManageClient client = new FileManageClient(ConfigurationManager.AppSettings["uploadUrl"]);
                var response            = client.UploadCoverage(thumbnailFileName, ms, ConfigurationManager.AppSettings["OssSubject"], thumbnailPath, true);
            }).Start();                                                   //开启线程上传缩略图片

            pageInfo.thumbnail = $"/{thumbnailPath}/{thumbnailFileName}"; //拼接存储路径
            pageInfo.steps     = new List <Models.CurriculumSetViewModel.Step>();

            JArray steps = JsonConvert.DeserializeObject(obj["steps"].ToString()) as JArray;
            foreach (var s in steps)
            {
                Models.CurriculumSetViewModel.Step step = new Models.CurriculumSetViewModel.Step();
                step.stepNum = Convert.ToInt32(s["stepNum"]);
                step.actions = new List <ActionBase>();

                JArray actions = JsonConvert.DeserializeObject(s["actions"].ToString()) as JArray;
                foreach (var a in actions)
                {
                    step.actions.Add(ActionTranslator.JsonToViewData(a.ToString()));
                }
                pageInfo.steps.Add(step);
            }

            #endregion 解析数据
            int coins     = 0;
            var stepsData = pageInfo.steps.Select(s => new Domain.JsonEntity.UnitStep.Step()
            {
                id      = s.id,
                StepNum = s.stepNum,
                Actions = s.actions.Select(a => ActionTranslator.ViewDataToData(a, ref coins)).ToList()
            }).ToList();
            //修改数据
            bll.Update(new DtoLessonUnit
            {
                Id         = pageInfo.id,
                Name       = pageInfo.name,
                Screenshot = pageInfo.thumbnail,
                Status     = 0,
                Index      = pageInfo.pageNum,
                Steps      = stepsData,
                Coins      = coins
            });
            return(Json(new JsonResponse <string> {
                State = true, ErrorCode = 0, ErrorMsg = "", Data = ""
            }));
        }