Esempio n. 1
0
 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('');");
     }
 }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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();
                }
            }
        }
Esempio n. 5
0
 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();
             }
         }
     }
 }
Esempio n. 6
0
        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);
            }
        }
Esempio n. 7
0
        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();
                }
            }
        }
Esempio n. 8
0
        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();
                }
            }
        }