Exemplo n.º 1
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (_courseId > 0 && _enrollmentId > 0 && _session)
            {
                cCourse course = _business.GetMyCourseStatus(_login.userId, _courseId, _enrollmentId);

                string namePag = course.modules.Where(x => (_moduleId != 0 && _resourceId == 0) && x.moduleId == _moduleId).Select(x => x.page).FirstOrDefault();
                if (string.IsNullOrEmpty(namePag))
                {
                    namePag = course.modules.Where(x => _resourceId != 0 && x.moduleId == _moduleId).Select(x => x.resource.page).FirstOrDefault();
                    if (string.IsNullOrEmpty(namePag))
                    {
                        namePag = course.modules.SelectMany(x => x.blocks.Where(y => _blockId != 0 && y.blockId == _blockId).Select(y => y.page)).FirstOrDefault();
                    }
                }

                Response.Redirect(namePag + "?credential=" + cWebCrypto.Encrypt(cSerialize.XmlSerialize(new cCredential()
                {
                    enterpriseId = _enterpriseId,
                    userId       = _login.userId,
                    enrollmentId = _enrollmentId,
                    courseId     = _courseId
                })));
            }
        }
Exemplo n.º 2
0
        public int GetMyCoursePerformance(long courseId, long enrollmentId)
        {
            cCourse       course           = GetMyCourseStatus(_userId, courseId, enrollmentId);
            List <cBlock> blocks           = course.modules.SelectMany(x => x.blocks).ToList();
            int           countBlock       = blocks.Count();
            int           countBlockFinish = blocks.Where(x => x.status == cEnum.statusBlock.Finalized).Count();

            List <cEnum.statusTest> tests = course.modules.Select(x => x.statusTest).ToList();
            int countTest       = tests.Count();
            int countTestFinish = tests.Count(x => x == cEnum.statusTest.Okay);

            return((countBlockFinish + (countTestFinish * 2)) * 100 / (countBlock + (countTest * 2)));
        }
Exemplo n.º 3
0
 protected void Page_Load(object sender, EventArgs e)
 {
     if (!IsPostBack)
     {
         cCourse course = _business.GetMyCourse(_courseId, _enrollmentId);
         if (course != null)
         {
             ltCourse.Text     = course.name;
             ltCourseHead.Text = course.name;
         }
         rptModule.DataSource = course.modules;
         rptModule.DataBind();
     }
 }
Exemplo n.º 4
0
        protected void rptTabContent_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                cCourse item = (cCourse)e.Item.DataItem;

                HyperLink hyCourse = (HyperLink)e.Item.FindControl("hyCourse");
                hyCourse.Text        = item.name;
                hyCourse.NavigateUrl = "Course.aspx?c=" + cWebCrypto.Encrypt(item.courseId.ToString());

                Image imgCourse = (Image)e.Item.FindControl("imgCourse");
                imgCourse.ImageUrl = "assets/" + _enterpriseId.ToString() + "/courses/course-thumb-" + item.courseId.ToString() + ".jpg";
            }
        }
Exemplo n.º 5
0
        public cCourse GetStatusCourse(string credential)
        {
            cCourse     course = new cCourse();
            cCredential access = (cCredential)cSerialize.XmlDeserialize(typeof(cCredential), cWebCrypto.Decrypt(credential));

            try
            {
                cBusinessWeb business = new cBusinessWeb(access.enterpriseId);
                return(business.GetMyCourseStatus(access.userId, access.courseId, access.enrollmentId));
            }
            catch
            {
            }
            return(course);
        }
Exemplo n.º 6
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                cCourse course = _business.GetCourse(_courseId);
                if (course != null)
                {
                    ltCourseName.Text         = course.name;
                    ltCourseNameLocal.Text    = course.name;
                    imgCourseContent.ImageUrl = "assets/" + _enterpriseId.ToString() + "/courses/course-" + course.courseId.ToString() + ".jpg";


                    ltCourseContent.Text = course.description;
                    if (course.value == 0)
                    {
                        ltCourseValue.Text = "Com Código de Matrícula";
                        ltObs.Text         = "Para se matricular neste curso é necessário possuir um Código de Matrícula válido.";
                    }
                    else
                    {
                        ltCourseValue.Text = string.Format("{0} {1}", cEnum.GetEnumDescription((cEnum.TypeMoney)Enum.Parse(typeof(cEnum.TypeMoney), course.coin, true)), course.value);
                        ltObs.Text         = "Para se matricular neste curso será necessário adquirir um Código de Matrícula válido.";
                    }

                    if (course.userId == 0)
                    {
                        ltEnrollment.Text        = "Inscreva-se";
                        hyEnrollment.NavigateUrl = "Login.aspx";
                        hyEnrollment.CssClass    = "baseQueryString btn btn-theme";
                    }
                    else if (course.enrollmentId > 0)
                    {
                        ltCourseValue.Visible    = false;
                        ltEnrollment.Text        = "Já Matriculado";
                        ltObs.Visible            = false;
                        hyEnrollment.NavigateUrl = "MyCourses.aspx";
                        hyEnrollment.CssClass    = "espQueryString btn btn-theme";
                    }
                    else
                    {
                        ltEnrollment.Text        = "Inscreva-se";
                        hyEnrollment.NavigateUrl = "javascript:void(0)";
                        hyEnrollment.CssClass    = "btn btn-theme";
                        hyEnrollment.Attributes.Add("onclick", "SetEnrollment();");
                    }
                }
            }
        }
Exemplo n.º 7
0
        protected void rptMyCourses_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                cCourse item = (cCourse)e.Item.DataItem;

                HyperLink hyCourse = (HyperLink)e.Item.FindControl("hyCourse");
                hyCourse.Text        = item.name;
                hyCourse.NavigateUrl = "Course.aspx?c=" + cWebCrypto.Encrypt(item.courseId.ToString());

                Literal ltPerformance = (Literal)e.Item.FindControl("ltPerformance");
                ltPerformance.Text = _business.GetMyCoursePerformance(item.courseId, item.enrollmentId).ToString();

                Literal ltSummary = (Literal)e.Item.FindControl("ltSummary");
                ltSummary.Text = item.summary;

                HiddenField hddEnrollmentId = (HiddenField)e.Item.FindControl("hddEnrollmentId");
                hddEnrollmentId.Value = cWebCrypto.Encrypt(item.enrollmentId.ToString());

                HiddenField hddCourseId = (HiddenField)e.Item.FindControl("hddCourseId");
                hddCourseId.Value = cWebCrypto.Encrypt(item.courseId.ToString());

                HyperLink   hyMyCourse = (HyperLink)e.Item.FindControl("hyMyCourse");
                PlaceHolder phSendCode = (PlaceHolder)e.Item.FindControl("phSendCode");

                if (!string.IsNullOrEmpty(item.codeTrasaction))
                {
                    hyMyCourse.NavigateUrl = "MyCourse.aspx?enroll=" + cWebCrypto.Encrypt(item.enrollmentId.ToString()) + "&c=" + cWebCrypto.Encrypt(item.courseId.ToString());
                }
                else
                {
                    hyMyCourse.Visible = false;
                    phSendCode.Visible = true;
                }
            }
        }
Exemplo n.º 8
0
        public cCourse GetMyCourseStatus(long userId, long courseId, long enrollmentId)
        {
            cCourse course = _context.ACAD_CURSOS.Include("ACAD_MODULOS")
                             .Where(x => x.CD_ACADEMIA == _enterpriseId &&
                                    x.CD_CURSO == courseId)
                             .Select(x => new cCourse()
            {
                courseId = x.CD_CURSO,
                name     = x.NM_CURSO,
                order    = x.NR_ORDEM,
                modules  = x.ACAD_MODULOS.Select(y => new cModule()
                {
                    moduleId = y.CD_MODULO,
                    name     = y.NM_MODULO,
                    page     = y.NM_PAGE,
                    status   = cEnum.statusModule.None,
                    order    = y.NR_ORDEM,
                    blocks   = y.ACAD_BLOCOS.Select(w => new cBlock()
                    {
                        blockId        = w.CD_BLOCO,
                        moduleId       = w.CD_MODULO,
                        name           = w.NM_BLOCO,
                        page           = w.NM_PAGE,
                        status         = cEnum.statusBlock.None,
                        order          = w.NR_ORDEM,
                        statusExercise = cEnum.statusExercise.None,
                    }).OrderBy(w => w.order).ToList(),
                    resource = y.ACAD_RECURSOS.Select(w => new cResource()
                    {
                        resourdeId = w.CD_RECURSO,
                        name       = w.NM_RECURSO,
                        page       = w.NM_PAGE,
                        status     = cEnum.statusResource.None
                    }).FirstOrDefault(),
                    statusTest = cEnum.statusTest.None
                }).OrderBy(y => y.order).ToList()
            })
                             .OrderBy(x => x.order)
                             .FirstOrDefault();

            cEnum.statusModule prevStatusModule = cEnum.statusModule.None;
            cEnum.statusBlock  prevStatusBlock  = cEnum.statusBlock.None;
            foreach (cModule module in course.modules)
            {
                if (course.modules.IndexOf(module) == 0 || (prevStatusModule == cEnum.statusModule.Finalized))
                {
                    module.status          = cEnum.statusModule.Open;
                    module.resource.status = cEnum.statusResource.Open;
                    module.statusTest      = cEnum.statusTest.Close;
                }
                else
                {
                    module.status          = cEnum.statusModule.Close;
                    module.resource.status = cEnum.statusResource.Close;
                    module.statusTest      = cEnum.statusTest.Close;
                }

                foreach (cBlock block in module.blocks)
                {
                    List <ACAD_USUARIOS_EXERCICIOS> exercises = _context.ACAD_USUARIOS_EXERCICIOS
                                                                .Where(x => x.ACAD_EXERCICIOS.CD_BLOCO == block.blockId &&
                                                                       x.CD_USUARIO == userId &&
                                                                       x.CD_MATRICULA == enrollmentId).ToList();

                    if (exercises.Count() > 0 && (exercises.Where(x => x.TX_RESPOSTA == null).Count() == 0 && exercises.Where(x => x.TX_OBS_CORRECAO == null).Count() == 0))
                    {
                        block.status         = cEnum.statusBlock.Finalized;
                        block.statusExercise = cEnum.statusExercise.Revised;
                        prevStatusBlock      = cEnum.statusBlock.Finalized;
                        if (module.blocks.IndexOf(block) == module.blocks.Count() - 1)
                        {
                            prevStatusModule = cEnum.statusModule.Finalized;
                        }
                    }
                    else if (exercises.Count() > 0 && exercises.Where(x => x.TX_RESPOSTA == null).Count() == 0)
                    {
                        block.status         = cEnum.statusBlock.Waiting;
                        block.statusExercise = cEnum.statusExercise.Correction;
                        prevStatusBlock      = cEnum.statusBlock.Waiting;
                    }
                    else if (course.modules.IndexOf(module) == 0 && module.blocks.IndexOf(block) == 0)
                    {
                        block.status         = cEnum.statusBlock.Open;
                        block.statusExercise = cEnum.statusExercise.Open;
                        prevStatusBlock      = cEnum.statusBlock.Open;
                    }
                    else if (prevStatusBlock == cEnum.statusBlock.Finalized)// && prevStatusModule == cEnum.statusModule.Finalized)
                    {
                        block.status         = cEnum.statusBlock.Open;
                        block.statusExercise = cEnum.statusExercise.Open;
                        prevStatusBlock      = cEnum.statusBlock.Open;
                        prevStatusModule     = cEnum.statusModule.None;
                    }
                    else
                    {
                        block.status         = cEnum.statusBlock.Close;
                        block.statusExercise = cEnum.statusExercise.Close;
                        prevStatusBlock      = cEnum.statusBlock.Close;
                    }
                }

                if (prevStatusBlock == cEnum.statusBlock.Finalized)
                {
                    List <ACAD_USUARIOS_PROVAS_QUESTOES> tests = _context.ACAD_USUARIOS_PROVAS_QUESTOES
                                                                 .Where(x => x.ACAD_QUESTOES.CD_MODULO == module.moduleId &&
                                                                        x.CD_USUARIO == userId &&
                                                                        x.CD_MATRICULA == enrollmentId).ToList();
                    if (tests.Count() > 0)
                    {
                        int nrRevisions = tests.Where(x => x.TX_OBS_CORRECAO == null).Count();

                        TimeSpan span = DateTime.Now.Subtract(tests.Max(x => x.DT_INICIO));
                        if (span.TotalMinutes > Convert.ToInt32(ConfigurationManager.AppSettings["TestTime"]))
                        {
                            module.status          = cEnum.statusModule.Open;
                            module.resource.status = cEnum.statusResource.Open;
                            module.statusTest      = cEnum.statusTest.Correction;

                            if (nrRevisions == 0)
                            {
                                if ((tests.Count(x => x.FL_ACERTO) * 100 / tests.Count()) >= 80)
                                {
                                    module.status          = cEnum.statusModule.Finalized;
                                    module.resource.status = cEnum.statusResource.Open;
                                    module.statusTest      = cEnum.statusTest.Okay;
                                    prevStatusModule       = cEnum.statusModule.Finalized;
                                }
                                else
                                {
                                    module.status          = cEnum.statusModule.Open;
                                    module.resource.status = cEnum.statusResource.Open;
                                    module.statusTest      = cEnum.statusTest.Failing;
                                }
                            }
                        }
                        else
                        {
                            module.status          = cEnum.statusModule.Open;
                            module.resource.status = cEnum.statusResource.Open;
                            module.statusTest      = cEnum.statusTest.Progress;
                        }
                    }
                    else
                    {
                        module.status          = cEnum.statusModule.Open;
                        module.resource.status = cEnum.statusResource.Open;
                        module.statusTest      = cEnum.statusTest.Open;
                    }
                }
            }

            return(course);
        }