Esempio n. 1
0
 protected void btnAdd_Click(object sender, EventArgs e)
 {
     try {
         if (lbxUserLookup.Items.Count > 0)
         {
             if (IsAdmin || IsTrngAdmin || TrngCourseAdmin.IsAdmin(Int32.Parse(lbxCourses.SelectedValue), CurrentUser.ID))
             {
                 foreach (ListItem li in lbxUserLookup.Items)
                 {
                     if (li.Selected)
                     {
                         TrngCourseAdmin membership = new TrngCourseAdmin(int.Parse(li.Value), Int32.Parse(lbxCourses.SelectedValue));
                         membership.CourseID   = Int32.Parse(lbxCourses.SelectedValue);
                         membership.UserID     = int.Parse(li.Value);
                         membership.CreatedBy  = CurrentUser.DisplayName;
                         membership.ModifiedBy = CurrentUser.DisplayName;
                         if (membership.ID == 0)
                         {
                             if (!membership.Insert())
                             {
                                 Transaction xAction = new Transaction();
                                 xAction.Action    = string.Format("Failed to add {0} from {1} admin role", li.Text, lbxCourses.SelectedItem.Text);
                                 xAction.Category  = "Application Administration";
                                 xAction.Type      = Transaction.TYPE_FAILURE;
                                 xAction.CreatedBy = CurrentUser.DisplayName;
                                 xAction.Insert();
                             }
                             else
                             {
                                 Transaction xAction = new Transaction();
                                 Action.Write(string.Format("Added {0} as a [{1}] administrator", li.Text, lbxCourses.SelectedItem.Text), CurrentUser.DisplayName);
                                 xAction.Action    = string.Format("Successfully added user {0} from {1} admin role", li.Text, lbxCourses.SelectedItem.Text);
                                 xAction.Category  = "Application Administration";
                                 xAction.Type      = Transaction.TYPE_SUCCESS;
                                 xAction.CreatedBy = CurrentUser.DisplayName;
                                 xAction.Insert();
                             }
                         }
                     }
                 }
                 FillMembers(Int32.Parse(lbxCourses.SelectedValue));
             }
             else
             {
                 ScriptManager.RegisterClientScriptBlock(Page, Page.GetType(), Guid.NewGuid().ToString(), "alert('You do not have permission to manage administrators for this course!');", true);
             }
         }
     } catch (Exception ex) {
         SPA.Error.WriteError(ex);
         if (ShowDebug)
         {
             lblErrorMessage.Text = ex.ToString();
         }
     }
 }
Esempio n. 2
0
 private void SetupContribute()
 {
     if (IsTrngAdmin || TrngCourseAdmin.IsAdmin(CourseID, CurrentUser.ID))
     {
         item = (ItemID == 0) ? new SPA.TrngQuestion() : new SPA.TrngQuestion(ItemID);
     }
     else
     {
         Script("window.frameElement.commitPopup('');");
     }
 }
Esempio n. 3
0
 private void SetupContribute()
 {
     if (IsTrngAdmin || TrngCourseAdmin.IsAdmin(CourseID, CurrentUser.ID))
     {
         gvData.Columns[0].Visible = true;
     }
     else
     {
         Script("window.frameElement.commitPopup('');");
     }
 }
Esempio n. 4
0
 private void SetupContribute()
 {
     if (IsAdmin || IsTrngAdmin || TrngCourseAdmin.IsAdmin(CourseID, CurrentUser.ID))
     {
         // do something
     }
     else
     {
         Response.Redirect(string.Format("{0}/{1}?code={2}", SPContext.Current.Web.Url, Message.URL_USERMESSAGE, Message.Code.MngrAccessReq), false);
     }
 }
Esempio n. 5
0
        protected void gvData_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            try {
                switch (e.Row.RowType)
                {
                case DataControlRowType.DataRow:
                    e.Row.Attributes.Add("onmouseover", "this.originalstyle = this.style.backgroundColor; this.style.backgroundColor = 'rgba( 156,206,240,0.5 )'; this.style.color = 'White'");
                    e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=this.originalstyle;this.style.color=this.originalstyle;");
                    e.Row.Attributes["style"] = "cursor:pointer";

                    Label     lblItemID      = (Label)e.Row.FindControl("lblItemID");
                    int       id             = int.Parse(lblItemID.Text);
                    Label     lblSlideCount  = (Label)e.Row.FindControl("lblSlideCount");
                    HyperLink hlURL          = (HyperLink)e.Row.FindControl("hlURL");
                    Label     lblIsCBT       = (Label)e.Row.FindControl("lblIsCBT");
                    Label     lblIsExternal  = (Label)e.Row.FindControl("lblIsExternal");
                    Label     lblExternalURL = (Label)e.Row.FindControl("lblExternalURL");
                    bool      releaseCbt     = bool.Parse(lblIsCBT.Text);
                    bool      externalCourse = bool.Parse(lblIsExternal.Text);

                    if (int.Parse(lblSlideCount.Text) > 0 && releaseCbt && !externalCourse)
                    {
                        hlURL.Text = "Start Course";
                        string jsActionStartCourse = string.Format("openModalDialog('{0}','{1}/{2}?courseid={3}', 'true'); return false;", "CBT Viewer", SPContext.Current.Web.Url, Pages.Course.PAGE_URL, id);
                        hlURL.Attributes.Add("onclick", jsActionStartCourse);
                    }
                    if (releaseCbt && externalCourse)
                    {
                        hlURL.Text = "Start Course";
                        string jsActionStartCourse = string.Format("window.location.replace('{0}'); return false;", lblExternalURL.Text.ToLower());
                        //string jsActionStartCourse = string.Format("openModalDialog('{0}','{1}?courseid={2}', 'true'); return false;", "CBT Viewer", lblExternalURL.Text.Trim(), id);
                        hlURL.Attributes.Add("onclick", jsActionStartCourse);
                    }
                    ImageButton ibtnEdit = (ImageButton)e.Row.FindControl("ibtnEdit");
                    ibtnEdit.Visible = false;
                    if (IsTrngAdmin || IsAdmin || TrngCourseAdmin.IsAdmin(id, CurrentUser.ID))
                    {
                        ibtnEdit.Visible = true;
                    }

                    break;

                case DataControlRowType.Header:
                    SetupSort(gvData, e);
                    break;
                }
            } catch (Exception ex) {
                SPA.Error.WriteError(ex);
                if (ShowDebug)
                {
                    lblErrorMessage.Text = ex.ToString();
                }
            }
        }
Esempio n. 6
0
        private void BuildDisplay()
        {
            try {
                this.Controls.Clear();
                _updatePnl = new UpdatePanel();
                _updatePnl.ChildrenAsTriggers = true;
                _updatePnl.UpdateMode         = UpdatePanelUpdateMode.Conditional;
                Table MainTable = new Table();
                MainTable.CellPadding = 2;
                MainTable.CellSpacing = 0;
                //MainTable.BorderStyle = BorderStyle.Solid;
                //MainTable.BorderWidth = Unit.Pixel(1);
                //MainTable.BorderColor = System.Drawing.Color.Gainsboro;
                MainTable.Width = Unit.Percentage(100);
                TableRow tr = new TableRow();

                TableCell td = new TableCell();
                //td.Font.Name = "tahoma,sans-serif";
                //td.Font.Size = new FontUnit(8);

                SPA.User currentUser       = new SPA.User(Context.User.Identity.Name);
                bool     IsAdmin           = currentUser.InRole(RoleType.Administrator.ToString());
                bool     IsManager         = currentUser.InRole(RoleType.Manager.ToString());
                bool     IsTrngAdmin       = currentUser.InRole(RoleType.TrngAdmin.ToString());
                bool     IsTrngCourseAdmin = TrngCourseAdmin.IsAdmin(currentUser.ID);

                DataTable courseCatalog = TrngCourse.ReleasedItems().Tables[0];
                foreach (DataRow dr in courseCatalog.Rows)
                {
                    if (TrngRecord.AssignedCourse(currentUser.ID, int.Parse(dr["ID"].ToString())))
                    {
                        dr.Delete();
                    }
                }

                _dt                  = courseCatalog;
                _dt.PrimaryKey       = new DataColumn[] { _dt.Columns["ID"] };
                _dt.DefaultView.Sort = ViewState["MyCatalogSortExpression"].ToString() + (ViewState["MyCatalogSortDirection"].ToString() == SortDirection.Ascending.ToString() ? " ASC" : " DESC");
                _gridView.DataSource = _dt;
                _gridView.DataBind();
                td.Controls.Add(_gridView);
                tr.Controls.Add(td);
                MainTable.Controls.Add(tr);
                _updatePnl.ContentTemplateContainer.Controls.Add(MainTable);
                if (IsAdmin || IsManager || IsTrngAdmin || IsTrngCourseAdmin)
                {
                    _updatePnl.ContentTemplateContainer.Controls.Add(BuildFooterTable());
                }
                this.Controls.Add(_updatePnl);
            } catch (Exception ex) {
                Error.WriteError(ex);
            }
        }
Esempio n. 7
0
 private void SetupContribute()
 {
     if (IsTrngAdmin || IsAdmin)
     {
         jsActionNewItem = string.Format("window.location.replace('{0}/{1}?View=New&ID=0'); return false;", SPContext.Current.Web.Url, CourseCatalogItem.PAGE_URL);
         lbtnNew.Visible = true;
     }
     if (IsTrngAdmin || IsAdmin || TrngCourseAdmin.IsAdmin(CurrentUser.ID))
     {
         gvData.Columns[0].Visible = true;
     }
 }
Esempio n. 8
0
 protected override void Fill()
 {
     TrainingSummary();
     if (TrngCourseAdmin.IsAdmin(CurrentUser.ID) || CurrentUser.InRole("TrngAdmin"))
     {
         CourseAdminSummary();
     }
     if (SPA.User.HasOrgRole("TrngAdmin", CurrentUser.ID) || SPA.User.HasOrgRole("TrngAuditor", CurrentUser.ID) || CurrentUser.InRole("TrngAdmin"))
     {
         //TrngOrgAdminSummary();
         //OrgTrainingSummary();
     }
 }
Esempio n. 9
0
 private void SetupContribute()
 {
     if (IsAdmin || IsTrngAdmin || TrngCourseAdmin.IsAdmin(CurrentUser.ID))
     {
         // do something
     }
     else
     {
         tdLookupHeader.Visible = false;
         tdLookup.Visible       = false;
         tdLookupFooter.Visible = false;
         btnRemove.Visible      = false;
     }
 }
Esempio n. 10
0
 private void SetupContribute()
 {
     if (IsAdmin || IsTrngAdmin || TrngCourseAdmin.IsAdmin(CurrentUser.ID))
     {
         jsActionNewItem              = string.Format("openModalDialog('Slide - New Item','{0}/{1}?View=New&ID=0&UserID=0&CourseID={2}&Filter={3}'); return false;", SPContext.Current.Web.Url, Pages.SlideItem.PAGE_URL, CourseID, Filter);
         jsActionQuickBuild           = string.Format("openModalDialog('Slide - Quick Build','{0}/{1}?View=New&ID=0&UserID=0&CourseID={2}&Filter={3}'); return false;", SPContext.Current.Web.Url, Pages.SlideQuickBuild.PAGE_URL, CourseID, Filter);
         lbtnNewSlide.OnClientClick   = jsActionNewItem;
         lbtnQuickBuild.OnClientClick = jsActionQuickBuild;
         gvData.Columns[0].Visible    = true;
     }
     else
     {
         //Response.Redirect(string.Format("{0}/{1}", SPContext.Current.Web.Url, Training.BASE_PAGES_URL), false);
     }
     //lblErrorMessage.Text = string.Format("IsAdmin: {0}<br>", IsAdmin);
     //lblErrorMessage.Text += string.Format("IsTrngAdmin: {0}<br>", IsTrngAdmin);
     //lblErrorMessage.Text += string.Format("IsTrngCourseAdmin: {0}<br>", TrngCourseAdmin.IsAdmin(CurrentUser.ID));
 }
Esempio n. 11
0
 protected override void Fill()
 {
     lblMessage.Visible = false;
     FillCourses();
     if (CourseID > 0)
     {
         trSlideHeader.Visible   = true;
         ddlCourse.SelectedIndex = -1;
         ddlCourse.Items.FindByValue(CourseID.ToString()).Selected = true;
         if (IsTrngAdmin || TrngCourseAdmin.IsAdmin(CourseID, CurrentUser.ID))
         {
             trSlideHeader.Visible = true;
             GetSlides(CourseID);
         }
         else
         {
             lblMessage.Visible    = true;
             trSlideHeader.Visible = false;
             lblMessage.Text       = "<br> You must be a course administrator for the selected course to modify.";
         }
     }
 }
Esempio n. 12
0
 private void FillMembers(int CourseID)
 {
     try {
         lbxMemberships.Items.Clear();
         DataSet  ds = TrngCourseAdmin.Items(CourseID);
         DataView dv = new DataView(ds.Tables[0]);
         dv.Sort = "DisplayName ASC";
         lbxMemberships.DataSource     = dv;
         lbxMemberships.DataTextField  = "DisplayName";
         lbxMemberships.DataValueField = "UserID";
         lbxMemberships.DataBind();
         //if (lbxMemberships.Items.Count > 0)
         //    btnRemove.Enabled = true;
         //else
         //    btnRemove.Enabled = false;
     } catch (Exception ex) {
         SPA.Error.WriteError(ex);
         if (ShowDebug)
         {
             lblErrorMessage.Text = ex.ToString();
         }
     }
 }
Esempio n. 13
0
 private void SetupContribute()
 {
     if (SPA.User.HasOrgRole("TrngAdmin", CurrentUser.ID) || SPA.User.HasOrgRole("Administrator", CurrentUser.ID) || CurrentUser.InRole("TrngAdmin") || TrngCourseAdmin.IsAdmin(CurrentUser.ID))
     {
         // do something
     }
     else
     {
         Response.Redirect(string.Format("{0}/{1}?code={2}", SPContext.Current.Web.Url, Message.URL_USERMESSAGE, Message.Code.MngrAccessReq), false);
     }
 }
Esempio n. 14
0
        protected override void Fill()
        {
            try {
                bool isView = (IView == ItemView.View);
                bool isNew  = (IView == ItemView.New);
                bool isEdit = (IView == ItemView.Edit);
                if (ItemID != 0 && isView || ItemID != 0 && isEdit)
                {
                    TrngCourse chk = new TrngCourse(ItemID);
                    if (chk.ID == 0)
                    {
                        tblItem.Visible    = false;
                        tblMessage.Visible = true;
                    }
                    else
                    {
                        tblItem.Visible    = true;
                        tblMessage.Visible = false;
                    }
                }
                if (IsAdmin || IsTrngAdmin || TrngCourseAdmin.IsAdmin(ItemID, CurrentUser.ID))
                {
                    lbtnEdit.Visible   = isView;
                    lbtnView.Visible   = !isView && ItemID != 0;
                    lbtnDelete.Visible = !isView && ItemID != 0;
                    lblReqMsg.Visible  = !isView;
                }
                else
                {
                    isView = true;
                }

                if (!IsPostBack)
                {
                    ddlCategory.DataSource     = SPA.TrngCategory.Items();
                    ddlCategory.DataTextField  = "Name";
                    ddlCategory.DataValueField = "ID";
                    ddlCategory.DataBind();
                    ddlCategory.Items.Insert(0, new ListItem("Choose", "0"));
                }

                txtName.Text            = item.Name;
                txtName.Visible         = !isView;
                lblNameView.Text        = item.Name;
                lblNameView.Visible     = isView;
                lblNameRequired.Visible = !isView;

                txtDescription.Text        = item.Description.ToString();
                txtDescription.Visible     = !isView;
                lblDescriptionView.Text    = item.Description.ToString();
                lblDescriptionView.Visible = isView;

                txtCode.Text        = item.Code.ToString();
                txtCode.Visible     = !isView;
                lblCodeView.Text    = item.Code.ToString();
                lblCodeView.Visible = isView;

                ddlCategory.SelectedIndex = -1;
                ddlCategory.Items.FindByValue(item.TrngCategoryID.ToString()).Selected = true;
                ddlCategory.Visible     = !isView;
                lblCategoryView.Text    = new TrngCategory(item.TrngCategoryID).Name;
                lblCategoryView.Visible = isView;

                txtFrequency.Text            = item.Frequency.ToString();
                txtFrequency.Visible         = !isView;
                lblFrequencyView.Text        = item.Frequency.ToString();
                lblFrequencyView.Visible     = isView;
                lblFrequencyRequired.Visible = !isView;

                ckbxCBT.Checked    = item.IsCBT;
                ckbxCBT.Visible    = !isView;
                lblCBTView.Text    = item.IsCBT ? "Yes" : "No";
                lblCBTView.Visible = isView;

                ckbxGraded.Checked    = item.IsGraded;
                ckbxGraded.Visible    = !isView;
                lblGradedView.Text    = item.IsGraded ? "Yes" : "No";
                lblGradedView.Visible = isView;

                ckbxExternal.Checked    = item.IsExternal;
                ckbxExternal.Visible    = !isView;
                lblExternalView.Text    = item.IsExternal ? "Yes" : "No";
                lblExternalView.Visible = isView;

                txtExternalURL.Text        = item.ExternalURL.ToString();
                txtExternalURL.Visible     = !isView;
                lblExternalURLView.Text    = item.ExternalURL.ToString();
                lblExternalURLView.Visible = isView;

                txtMinimumScore.Text        = item.MinimumScore.ToString();
                txtMinimumScore.Visible     = !isView;
                lblMinimumScoreView.Text    = item.MinimumScore.ToString();
                lblMinimumScoreView.Visible = isView;

                lblCreatedInfo.Text    = string.Format("Created at {0} by {1}", SPA.Common.ConvertUTCToWebLocalTime(this.Web, item.CreatedOn), item.CreatedBy);
                lblCreatedInfo.Visible = (item.ID != 0);
                lblUpdatedInfo.Text    = string.Format("Last modified at {0} by {1}", SPA.Common.ConvertUTCToWebLocalTime(this.Web, item.ModifiedOn), item.ModifiedBy);
                lblUpdatedInfo.Visible = (item.ID != 0);

                btnSave.Visible = !isView;
                btnCancel.Text  = isView ? "Close" : "Cancel";
            } catch (Exception ex) {
                SPA.Error.WriteError(ex);
                if (ShowDebug)
                {
                    lblErrorMessage.Text = ex.ToString();
                }
            }
        }
Esempio n. 15
0
        protected void CourseAdminSummary()
        {
            try {
                if (IsTrngAdmin || IsAdmin || TrngCourseAdmin.IsAdmin(CurrentUser.ID))
                {
                    // Define Table
                    jsActionTrngRecord = string.Format("window.location.replace('{0}/{1}'); return false;", SPContext.Current.Web.Url, CourseCatalog.PAGE_URL);
                    Table tblCourse = new Table();
                    tblCourse.Attributes.Add("onmouseover", "this.originalstyle = this.style.backgroundColor; this.style.backgroundColor = 'rgba( 156,206,240,0.5 )'; this.style.color = 'black'");
                    tblCourse.Attributes.Add("onmouseout", "this.style.backgroundColor=this.originalstyle;this.style.color=this.originalstyle;");
                    tblCourse.Attributes.Add("onclick", jsActionTrngRecord);
                    tblCourse.Attributes.Add("border-collapse", "separate");
                    tblCourse.Attributes.Add("border-spacing", "0px 0px");
                    tblCourse.BorderStyle = BorderStyle.Solid;
                    tblCourse.BorderWidth = Unit.Pixel(1);
                    tblCourse.BorderColor = System.Drawing.Color.Gainsboro;
                    tblCourse.BackColor   = System.Drawing.Color.Gainsboro;
                    tblCourse.Width       = Unit.Pixel(250);
                    tblCourse.Height      = Unit.Pixel(5);

                    // define header
                    TableRow  trHeader = new TableRow();
                    TableCell tdHeader = new TableCell();
                    tdHeader.VerticalAlign   = VerticalAlign.Middle;
                    tdHeader.HorizontalAlign = HorizontalAlign.Left;
                    tdHeader.Style.Add("padding-left", "10px");
                    tdHeader.Style.Add("padding-right", "10px");
                    tdHeader.Style.Add("padding-top", "2px");
                    tdHeader.Style.Add("padding-bottom", "2px");
                    tdHeader.Style.Add("border-top-left-radius", "4px");
                    tdHeader.Style.Add("border-top-right-radius", "4px");
                    trHeader.BackColor = System.Drawing.Color.FromArgb(136, 117, 52);

                    // define header link
                    HyperLink hlHeader = new HyperLink();
                    hlHeader.Text           = "Course Administrator for";
                    hlHeader.NavigateUrl    = CourseCatalog.PAGE_URL;
                    hlHeader.ForeColor      = System.Drawing.Color.White;
                    hlHeader.Font.Size      = FontUnit.Point(9);
                    hlHeader.Font.Bold      = true;
                    hlHeader.Font.Underline = false;

                    // add header controls
                    tdHeader.Controls.Add(hlHeader);
                    trHeader.Controls.Add(tdHeader);

                    // define body
                    TableRow  trBody = new TableRow();
                    TableCell tdBody = new TableCell();
                    tdBody.VerticalAlign   = VerticalAlign.Top;
                    tdBody.HorizontalAlign = HorizontalAlign.Left;
                    tdBody.Style.Add("padding-left", "10px");
                    tdBody.Style.Add("padding-right", "10px");
                    tdBody.Style.Add("padding-top", "2px");
                    tdBody.Style.Add("padding-bottom", "2px");
                    trBody.BackColor = System.Drawing.Color.White;

                    Label    lblBody = new Label();
                    DataView dv      = new DataView();
                    if (IsTrngAdmin || IsAdmin)
                    {
                        dv = new DataView(SPA.TrngCourse.Items().Tables[0]);
                    }
                    else
                    {
                        dv = new DataView(SPA.TrngCourseAdmin.List(CurrentUser.ID).Tables[0]);
                    }
                    foreach (DataRowView drv in dv)
                    {
                        lblBody.Text += string.Format("<img src='/_layouts/15/images/BCCUR.GIF' />&nbsp;{0}<br>", drv["Name"].ToString());
                    }
                    lblBody.ForeColor = System.Drawing.Color.Black;

                    // add body controls
                    tdBody.Controls.Add(lblBody);
                    trBody.Controls.Add(tdBody);

                    // define footer
                    TableRow  trFooter = new TableRow();
                    TableCell tdFooter = new TableCell();
                    tdFooter.VerticalAlign   = VerticalAlign.Middle;
                    tdFooter.HorizontalAlign = HorizontalAlign.Left;
                    tdFooter.Style.Add("padding-left", "10px");
                    tdFooter.Style.Add("padding-right", "10px");
                    tdFooter.Style.Add("padding-top", "2px");
                    tdFooter.Style.Add("padding-bottom", "2px");
                    trFooter.BackColor = System.Drawing.Color.White;

                    Label lblFooter = new Label();
                    lblFooter.Text     += "Click to review the course catalog";
                    lblFooter.ForeColor = System.Drawing.Color.Black;

                    // add footer controls
                    tdFooter.Controls.Add(lblFooter);
                    trFooter.Controls.Add(tdFooter);

                    // add rows to table and table to placeholder
                    tblCourse.Controls.Add(trHeader);
                    tblCourse.Controls.Add(trBody);
                    tblCourse.Controls.Add(trFooter);
                    phTrngCourseSummary.Controls.Add(tblCourse);
                }
            } catch (Exception ex) {
                SPA.Error.WriteError(ex);
                if (ShowDebug)
                {
                    lblErrorMessage.Text = ex.ToString();
                }
            }
        }
Esempio n. 16
0
        private void BuildDisplay()
        {
            try {
                this.Controls.Clear();
                _updatePnl = new UpdatePanel();
                _updatePnl.ChildrenAsTriggers = true;
                _updatePnl.UpdateMode         = UpdatePanelUpdateMode.Conditional;
                Table MainTable = new Table();
                MainTable.CellPadding = 2;
                MainTable.CellSpacing = 0;
                MainTable.Width       = Unit.Percentage(100);
                TableRow tr = new TableRow();

                TableCell td = new TableCell();

                SPA.User currentUser       = new SPA.User(Context.User.Identity.Name);
                bool     IsAdmin           = currentUser.InRole(RoleType.Administrator.ToString());
                bool     IsManager         = currentUser.InRole(RoleType.Manager.ToString());
                bool     IsUserAdmin       = currentUser.InRole(RoleType.UserAdmin.ToString());
                bool     IsTrngAdmin       = currentUser.InRole(RoleType.TrngAdmin.ToString());
                bool     IsTrngCourseAdmin = TrngCourseAdmin.IsAdmin(currentUser.ID);

                int userID          = currentUser.ID;
                int coursesAssigned = TrngRecord.Assigned(userID);

                // assign default courses
                DataView dvCourses = new DataView(TrngSetMembership.CourseSetMembershipItems(1).Tables[0]);
                foreach (DataRowView drvCourse in dvCourses)
                {
                    int        courseID = int.Parse(drvCourse["TrngCourseID"].ToString());
                    TrngCourse course   = new TrngCourse(courseID);
                    TrngRecord record   = new TrngRecord(courseID, userID);
                    record.CourseName        = course.Name;
                    record.CourseDescription = course.Description;
                    record.CourseCode        = course.Code; if (record.ID == 0)
                    {
                        record.CourseID = courseID;
                        record.UserID   = userID;
                        if (record.Insert())
                        {
                        }
                    }
                }
                // assign orggroup courses if not exempt
                if (!currentUser.ExcludeOrgTrngAssignments)
                {
                    int userOrgGroupID = SPA.User.OrgGroupID(userID);
                    dvCourses = new DataView(TrngSetMembership.CourseSetMembershipItemsByOrgGroup(userOrgGroupID).Tables[0]);
                    foreach (DataRowView drvCourse in dvCourses)
                    {
                        int        courseID = int.Parse(drvCourse["TrngCourseID"].ToString());
                        TrngCourse course   = new TrngCourse(courseID);
                        TrngRecord record   = new TrngRecord(courseID, userID);
                        record.CourseName        = course.Name;
                        record.CourseDescription = course.Description;
                        record.CourseCode        = course.Code;
                        if (record.ID == 0)
                        {
                            record.CourseID = courseID;
                            record.UserID   = userID;
                            if (record.Insert())
                            {
                            }
                        }
                    }
                }

                _dt                  = TrngRecord.CBTItems(currentUser.ID).Tables[0];
                _dt.PrimaryKey       = new DataColumn[] { _dt.Columns["ID"] };
                _dt.DefaultView.Sort = ViewState["MyTrngSortExpression"].ToString() + (ViewState["MyTrngSortDirection"].ToString() == SortDirection.Ascending.ToString() ? " ASC" : " DESC");
                _gridView.DataSource = _dt;
                _gridView.DataBind();
                td.Controls.Add(_gridView);
                tr.Controls.Add(td);
                MainTable.Controls.Add(tr);
                _updatePnl.ContentTemplateContainer.Controls.Add(MainTable);
                if (IsAdmin || IsManager || IsUserAdmin || IsTrngAdmin || IsTrngCourseAdmin)
                {
                    _updatePnl.ContentTemplateContainer.Controls.Add(BuildFooterTable());
                }
                this.Controls.Add(_updatePnl);
            } catch (Exception ex) {
                Error.WriteError(ex);
            }
        }