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 }))); } }
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))); }
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(); } }
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"; } }
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); }
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();"); } } } }
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; } } }
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); }