private void SetupContribute() { if (IsTrngAdmin || TrngCourseAdmin.IsAdmin(CourseID, CurrentUser.ID)) { item = (ItemID == 0) ? new SPA.TrngSlide() : new SPA.TrngSlide(ItemID); } else { Script("window.frameElement.commitPopup('');"); } }
private bool SaveItem() { bool success = false; try { bool isUpdate = (IView == ItemView.Edit); item = (isUpdate) ? new SPA.TrngSlide(ItemID) : new SPA.TrngSlide(); item.CourseID = CourseID; item.Name = txtName.Text.Trim(); item.Description = txtDescription.Text.Trim(); item.ContentURL = txtContentURL.Text.Trim(); item.RichText = txtRichText.Text.Trim(); item.SlideTypeID = int.Parse(ddlSlideType.SelectedItem.Value); item.IsActive = cbIsActive.Checked; item.ModifiedBy = CurrentUser.DisplayName; if (item.Number == 0) { item.Number = TrngCourse.SlideCount(CourseID) + 1; } if (!isUpdate) { item.CreatedBy = item.ModifiedBy; if (item.Insert()) { Action.Write(string.Format("Inserted Slide ID: {0}, Name: {1}", item.ID, item.Name), CurrentUser.DisplayName); success = true; } } else { if (item.Update()) { Action.Write(string.Format("Updated Slide ID: {0}, Name: {1}", item.ID, item.Name), CurrentUser.DisplayName); success = true; } } ItemID = (success) ? item.ID : 0; } catch (Exception ex) { SPA.Error.WriteError(ex); if (ShowDebug) { lblErrorMessage.Text = ex.ToString(); } } return(success); }
private bool SaveItem() { bool success = false; try { // verify valid values if (!Common.IsNumeric(txtNumberOfSlides.Text.Trim())) { txtNumberOfSlides.Text = "0"; } if (!Common.IsNumeric(txtStartingNumber.Text.Trim())) { txtNumberOfSlides.Text = "1"; } // create a slide for number of slides TrngCourse course = new TrngCourse(CourseID); int slidesToCreate = int.Parse(txtNumberOfSlides.Text); int startingNumber = int.Parse(txtStartingNumber.Text); for (int i = 0; i < slidesToCreate; i++) { TrngSlide slide = new TrngSlide(); slide.CourseID = CourseID; slide.Name = string.Format("Slide {0}", startingNumber); slide.Description = ""; slide.Number = TrngCourse.SlideCount(CourseID) + 1; slide.ContentURL = string.Format("{0}{1}.png", txtContentURL.Text.Trim(), startingNumber); slide.SlideTypeID = 1; slide.IsActive = true; slide.ModifiedBy = CurrentUser.DisplayName; if (slide.Insert()) { Action.Write(string.Format("AutoGenerated a slide [{0}] for {1}", slide.ContentURL, course.Name), CurrentUser.DisplayName); } startingNumber++; } success = true; } catch (Exception ex) { SPA.Error.WriteError(ex); if (ShowDebug) { lblErrorMessage.Text += "<br>" + ex.ToString(); } } return(success); }
private void GetSlides(int CourseID) { try { lbtnNewSlide.Visible = (CourseID > 0) ? true : false; lbtnQuickBuild.Visible = (CourseID > 0) ? true : false; DataView dv = new DataView(); gvData.EmptyDataText = Message.EMPTY_LIST; dv = new DataView(TrngSlide.Items(CourseID).Tables[0]); dv.Sort = (GridSortDirection == SortDirection.Ascending) ? GridSortExpression + " ASC" : GridSortExpression + " DESC"; gvData.PageSize = GridViewPageSize; gvData.PageIndex = PageIndex; ItemCount = dv.Table.Rows.Count; if (SetupPager()) { tablePager.Visible = true; string maxRecords = SPA.Configuration.AppSetting("MaxRecords"); if (ItemCount == int.Parse(maxRecords)) { lblPagingItemsTotal.Text = string.Format("<font color=red>{0}</font>", lblPagingItemsTotal.Text); lblPagingItemsTotal.ToolTip = string.Format("Maximum record threshold of {0} encounterd! The value can be adjusted by an application administrator.", maxRecords); } } else { tablePager.Visible = false; } gvData.DataSource = dv; gvData.DataBind(); if (SlideID > 0) { GetSlide(SlideID); } } catch (Exception ex) { SPA.Error.WriteError(ex); if (ShowDebug) { lblErrorMessage.Text = ex.ToString(); } } }
protected void gvData_RowCommand(object sender, GridViewCommandEventArgs e) { if (e.CommandName != "Sort" && e.CommandName != "Page") { try { if (e.CommandName == "ViewItem") { ItemID = int.Parse(e.CommandArgument.ToString()); SlideID = ItemID; Response.Redirect(string.Format("{0}/{1}?View=Edit&ID={2}&CourseID={3}&SlideID={4}&PageIndex={5}&Filter={6}", SPContext.Current.Web.Url, CourseBuilder.PAGE_URL, ItemID, CourseID, SlideID, PageIndex, Filter), false); //GetSlide(ItemID); } if (e.CommandName == "EditItem") { ItemID = int.Parse(e.CommandArgument.ToString()); Response.Redirect(string.Format("{0}/{1}?View=Edit&ID={2}&CourseID={3}&SlideID={4}&PageIndex={5}&Filter={6}", SPContext.Current.Web.Url, SlideItem.PAGE_URL, ItemID, CourseID, SlideID, PageIndex, Filter), false); } // Move Down if (e.CommandName == "MoveDown") { ItemID = int.Parse(e.CommandArgument.ToString()); TrngSlide.UpdateDisplayIndex(ItemID, "up", CourseID); GetSlides(CourseID); } // Move Up if (e.CommandName == "MoveUp") { ItemID = int.Parse(e.CommandArgument.ToString()); TrngSlide.UpdateDisplayIndex(ItemID, "down", CourseID); GetSlides(CourseID); } } catch (Exception ex) { SPA.Error.WriteError(ex); if (ShowDebug) { lblErrorMessage.Text = ex.ToString(); } } } }
protected override void Fill() { // if the course number does not exist, them bad course TrngCourse course = new TrngCourse(CourseID); Session["CourseID"] = course.ID.ToString(); Session["QuestionsCorrect"] = 0; //lblErrorMessage.Text += "Correct Answers: " + Session["QuestionsCorrect"].ToString(); if (course.ID == 0) { Response.Redirect(string.Format("{0}/{1}?code={2}", SPContext.Current.Web.Url, Message.URL_USERMESSAGE, Message.Code.TrainingCourseInvalid), false); } else if (TrngSlide.ActiveCount(CourseID) == 0) { Response.Redirect(string.Format("{0}/{1}?code={2}", SPContext.Current.Web.Url, Message.URL_USERMESSAGE, Message.Code.TrainingSlideCountZero), false); } else { Action.Write(string.Format("Started Course: {0}", course.Name), CurrentUser.DisplayName); BuildSlide(CourseID, SlideNumber); } }
private void GetSlide(int SlideID) { try { TrngSlide slide = new TrngSlide(SlideID); TrngSlideType type = new TrngSlideType(slide.SlideTypeID); int slideCount = TrngSlide.Count(CourseID); lblSlideName.Text = slide.Name; lblSlideDescription.Text = slide.Description; lblPager.Text = string.Format("Slide {0} of {1}", slide.Number, slideCount); trSlideInfo.Visible = true; if (type.Name.ToUpper() == "CONTENT") { trContent.Visible = true; trContentUrl.Visible = true; trQuestion.Visible = false; trAnswer.Visible = false; trFreeText.Visible = false; trVideo.Visible = false; imgContent.ImageUrl = slide.ContentURL.Length > 5 ? slide.ContentURL : "/_layouts/15/images/SPA/SlideNotFound.PNG"; //imgContent.Width = Unit.Percentage(int.Parse(Setting.KeyValue("CourseSlideWidth"))); imgContent.Width = Unit.Percentage(80); lblContentUrl.Text = slide.ContentURL; } else if (type.Name.ToUpper() == "FREETEXT") { trFreeText.Visible = true; trContent.Visible = false; trQuestion.Visible = false; trAnswer.Visible = false; trVideo.Visible = false; lblFreeText.Text = slide.RichText; } else if (type.Name.ToUpper() == "VIDEO") { trFreeText.Visible = false; trContent.Visible = false; trQuestion.Visible = false; trAnswer.Visible = false; trVideo.Visible = true; //string media = slide.ContentURL.Length > 5 ? slide.ContentURL : "https://sp16.portal.kes.dev/_layouts/15/spa/videoplayer/sample.wmv"; string media = slide.ContentURL.Length > 5 ? slide.ContentURL : string.Format("{0}/_layouts/15/spa/videoplayer/sample.wmv", SPContext.Current.Web.Url); html.Text = "<object data = 'data:application/x-silverlight-2,' type = 'application/x-silverlight-2' width = '640' height = '480'>" + Environment.NewLine; html.Text += "<param name = 'source' value = '/_layouts/15/spa/videoplayer/videoplayer.xap' />" + Environment.NewLine; html.Text += "<param name = 'background' value = 'white' />" + Environment.NewLine; html.Text += string.Format("<param name = 'initParams' value = 'm=/{0}' />", media) + Environment.NewLine; html.Text += "<param name = 'minruntimeversion' value = '2.0.31005.0' />" + Environment.NewLine; html.Text += "</object >" + Environment.NewLine; } else { trContent.Visible = false; trContentUrl.Visible = false; trFreeText.Visible = false; trQuestion.Visible = true; trAnswer.Visible = true; trVideo.Visible = false; // build question for slide number TrngQuestion question = new TrngQuestion(CourseID, SlideID); lblQuestion.Text = question.Question; QuestionID = question.ID; string jsActionEditQuestion = string.Format("openModalDialog('Question Editor','{0}/{1}?View=Edit&ID={2}&QuestionID={2}&CourseID={3}&SlideID={4}'); return false;", SPContext.Current.Web.Url, Pages.SlideQuestion.PAGE_URL, QuestionID, CourseID, SlideID); if (question.ID == 0) { jsActionEditQuestion = string.Format("openModalDialog('Question Editor','{0}/{1}?View=New&ID=0&QuestionID=0&CourseID={2}&SlideID={3}'); return false;", SPContext.Current.Web.Url, Pages.SlideQuestion.PAGE_URL, CourseID, SlideID); lbtnEditQuestion.Text = "[Create]"; } lbtnEditQuestion.OnClientClick = jsActionEditQuestion; // get answer(s) DataView dv = new DataView(TrngAnswer.Items(question.ID).Tables[0]); rbtnlAnswers.DataSource = dv; rbtnlAnswers.DataTextField = "Answer"; rbtnlAnswers.DataValueField = "ID"; rbtnlAnswers.DataBind(); foreach (ListItem li in rbtnlAnswers.Items) { TrngAnswer answer = new TrngAnswer(int.Parse(li.Value)); if (answer.IsCorrect) { li.Selected = true; } } rbtnlAnswers.Enabled = false; string jsActionEditAnswers = string.Format("openModalDialog('Answers','{0}/{1}?View=List&CourseID={2}&SlideID={3}&QuestionID={4}'); return false;", SPContext.Current.Web.Url, Pages.SlideAnswers.PAGE_URL, CourseID, SlideID, QuestionID); lbtnEditAnswers.OnClientClick = jsActionEditAnswers; } } catch (Exception ex) { SPA.Error.WriteError(ex); if (ShowDebug) { lblErrorMessage.Text = ex.ToString(); } } }
private void BuildSlide(int CourseID, int SlideNumber) { try { trFinished.Visible = false; int SlideCount = TrngSlide.ActiveCount(CourseID); btnPrevious.Enabled = SlideNumber > 1 ? true : false; //btnNext.Enabled = SlideNumber < SlideCount ? true : false; btnNext.Text = SlideNumber == SlideCount ? "Finish" : "Next"; TrngSlide slide = new TrngSlide(CourseID, SlideNumber); TrngSlideType type = new TrngSlideType(slide.SlideTypeID); TrngCourse course = new TrngCourse(CourseID); lblHeader.Text = course.Name; lblPageDescription.Text = course.Name; lblDescription.Text = slide.Description; trDescription.Visible = slide.Description.Length > 5 ? true : false; lblPager.Text = string.Format("Slide Number: {0} of {1}</br>", slide.Number.ToString(), SlideCount); int displayWith = int.Parse(Setting.KeyValue("CourseSlideWidth")); if (course.IsGraded) { btnPrevious.Enabled = false; } if (type.Name.ToUpper() == "CONTENT") { trContent.Visible = true; trQuestion.Visible = false; trFreeText.Visible = false; trVideo.Visible = false; imgContent.ImageUrl = slide.ContentURL.Length > 5 ? slide.ContentURL : "/_layouts/15/images/SPA/SlideNotFound.PNG"; imgContent.Width = Unit.Percentage(displayWith); } else if (type.Name.ToUpper() == "FREETEXT") { trFreeText.Visible = true; trContent.Visible = false; trQuestion.Visible = false; trVideo.Visible = false; lblRichText.Text = slide.RichText; lblRichText.Width = Unit.Percentage(displayWith); } else if (type.Name.ToUpper() == "VIDEO") { trFreeText.Visible = false; trContent.Visible = false; trQuestion.Visible = false; trVideo.Visible = true; string media = slide.ContentURL.Length > 5 ? slide.ContentURL : string.Format("{0}/_layouts/15/spa/videoplayer/sample.wmv", SPContext.Current.Web.Url); html.Text = "<object data = 'data:application/x-silverlight-2,' type = 'application/x-silverlight-2' width = '640' height = '480'>" + Environment.NewLine; html.Text += "<param name = 'source' value = '/_layouts/15/spa/videoplayer/videoplayer.xap' />" + Environment.NewLine; html.Text += "<param name = 'background' value = 'white' />" + Environment.NewLine; html.Text += string.Format("<param name = 'initParams' value = 'm=/{0},autostart=true' />", media) + Environment.NewLine; html.Text += "<param name = 'minruntimeversion' value = '2.0.31005.0' />" + Environment.NewLine; html.Text += "</object >" + Environment.NewLine; } else { //tblQuestion.Width = string.Format("{0}%", displayWith); trQuestion.Visible = true; trContent.Visible = false; trFreeText.Visible = false; trVideo.Visible = false; // build question for slide number scoredQuestions++; TrngQuestion question = new TrngQuestion(CourseID, slide.ID); lblQuestion.Text = question.Question; //lblQuestion.Width = Unit.Percentage(displayWith); //lblQuestionComment.Text = string.Format("<br>{0}<br>", question.Comment); //lblQuestionComment.Visible = question.Comment.Length > 5 ? true : false; //lblQuestionComment.Width = Unit.Percentage(displayWith); // get answer(s) DataView dv = new DataView(TrngAnswer.Items(question.ID).Tables[0]); rbtnlAnswers.DataSource = dv; rbtnlAnswers.DataTextField = "Answer"; rbtnlAnswers.DataValueField = "ID"; rbtnlAnswers.DataBind(); //rbtnlAnswers.Width = Unit.Percentage(displayWith - 10); } } catch (Exception ex) { SPA.Error.WriteError(ex); if (ShowDebug) { lblErrorMessage.Text = ex.ToString(); } } }